JAAS - @DeclaredRoles e @RolesAllowed

5 respostas
H

Gostaria de entender melhor essas anotação sei que a @RolesAllowed server para verificar o privilégio para execução de um método, mas e quanto @DeclaredRoles? eu não entendi sua aplicação pois, apesar de utiliza-la eu continuo tendo que colocar isso no meu deployment descriptor:

<security-role-mapping>
	<role-name>admin-role</role-name>
	<group-name>admins</group-name>
</security-role-mapping>

A linha acima pode ser substituída mesmo pelo @DeclaredRoles? se sim, como eu relacionaria o group com a role? se não, para que ela serve?

5 Respostas

H

Obrigado resolvido.

L

Responde ai sua própria duvida Helbert, pois, agora ela é minha!
Desde já obrigado!

D

As anotações acima servem somente para uso com EJB.

A anotação @DeclaredRoles especifica todas as roles que a aplicação irá utilizar até mesmo as roles que não estiver dentro da anotação @RollesAllowed.

Caso não esteja utilizando EJB essas anotações ficam fora de cena , a melhor maneira seria a implementação pelo descritor xml , mas para um entendimento melhor segue aqui uma documentação do próprio JavaEE6 que explica para que serve a mesma.

http://docs.oracle.com/javaee/6/tutorial/doc/bnbyl.html

Abs

L

Obrigado amigo pela explanação! Vou aproveitar e fazer uma outra pergunta na linha de segurança JAAS para aproveitar seu conhecimento, se for o caso:
Como faço para conseguir validar na interface web se um usuário logado tem uma determinada regra com o JAAS. Por exemplo: garantir que um botão só seja renderizado se o usuário tiver a regra “admin”. No sem eu fazia#{identity.hasRole(‘admin’)}.
Desde já, obrigado.

D

lupontes:
Obrigado amigo pela explanação! Vou aproveitar e fazer uma outra pergunta na linha de segurança JAAS para aproveitar seu conhecimento, se for o caso:
Como faço para conseguir validar na interface web se um usuário logado tem uma determinada regra com o JAAS. Por exemplo: garantir que um botão só seja renderizado se o usuário tiver a regra “admin”. No sem eu fazia#{identity.hasRole(‘admin’)}.
Desde já, obrigado.

Na sua jsp você pode usar o .isUserInRole(“role”) , ele só exibirá algo para determinado usuário caso ele esteja nesta role.

Abs

Criado 16 de maio de 2011
Ultima resposta 30 de out. de 2013
Respostas 5
Participantes 3