Duvida no Acegi

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… :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!

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