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:
[code]authz:authorize ifAllGranted=“Administracao”>
Protegido
</authz:authorize>[/code]
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…[code]
authz:authorize ifAllGranted=“Administracao”>
Protegido
</authz:authorize>[/code]
Ja lí a documentação do Acegi o Spring in Action, mas não consigo fazer isso funcionar…
Valeu!
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.
hummmm…

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!
Isso, no meu caso eu tenho as tabelas:
- Grupo
- Usuario
- Relação entre Grupo e Usuario
- Funcionalidade (que seria a permissão, ou regra)
- Permissao Grupo -> relação entre grupo e funcionalidade
- Permissao Usuario-> relação entre usuario e funcionalidade