Duvida no Acegi

3 respostas
MoacirRF

Pessoal estou implementando a segurança do Acegi na aplicação, e estou tendo um problema:

Eu tenho uma variavel String que retorna as minhas permissoes, por exemplo :
String regras ="Administracao";
depois eu valido ela na parte web com a tag do acegi:
authz:authorize ifAllGranted="Administracao">
                                <a href="link">Protegido</a>
                             
        </authz:authorize>

Desta forma funciona muito bem, se eu possuir a regra "Administracao", o problema ocorre quando eu tenho os seguinte valores na variavel:
String regras ="Administracao,Manutencao"; //duas regras para validar

Agora o codigo abaixo não funciona...
authz:authorize ifAllGranted="Administracao">
                                <a href="link">Protegido</a>
                             
        </authz:authorize>

Ja lí a documentação do Acegi o Spring in Action, mas não consigo fazer isso funcionar..

Valeu!

3 Respostas

Guilherme_Gomes

Ali não tem duas regras, tem apenas uma que tem uma virgula no meio. Eu uso Spring Security e sei que para cada permissão você cria um GrantedAuthority e liga ao usuário.

MoacirRF

hummmm… :frowning: :stuck_out_tongue:

Puxa vida, mas o problema é que esses valores eu trago como string de uma tela do Ext JS o “multselect” retorna esses valores separados por virgulas e armazena a string completa no banco.

Então terei, que “splitar” essa string e buscar cada um dos valores, antes, entre e após as virgulas, e armazenar individualmente em um tabela separada só para as regras.

Eu ja tenho tenhos as seguintes tabelas no Banco:

Usuario
Grupo
GrupoUsuario

Grupo tem um campo regras onde eu estava armazenando as regras. E a query do arquivo acegi “JdbcImpl” esta assim:

select distinct USUARIO.NOME as USERNAME, GRUPO.REGRAS as ROLE_NAME from USUARIO, GRUPO, GRUPOUSUARIO where USUARIO.NOME=? and USUARIO.IDUSUARIO = GRUPOUSUARIO.IDUSUARIO and GRUPO.IDGRUPO = GRUPOUSUARIO.IDGRUPO

Minha duvida é, eu teria que criar um tabela “Regras” e tambem uma “GrupoRegras” não é mesmo?

Obrigado !

Abraço!

Guilherme_Gomes

Isso, no meu caso eu tenho as tabelas:

  1. Grupo
  2. Usuario
  3. Relação entre Grupo e Usuario
  4. Funcionalidade (que seria a permissão, ou regra)
  5. Permissao Grupo -> relação entre grupo e funcionalidade
  6. Permissao Usuario-> relação entre usuario e funcionalidade
Criado 22 de abril de 2009
Ultima resposta 22 de abr. de 2009
Respostas 3
Participantes 2