Olá…
Bom, essa dúvida eu acho até difícil explicar.
Estou precisando fazer uma segurança por role, por exemplo, suponha que eu tenha a seguinte classe:
@Permissao(role="USUARIO_CAD,USUARIO_CONS")
class CadastroUsuario {
public Usuario recuperar(String id) {
...
}
@Permissao(role="USUARIO_CAD")
public void atualizar(Usuario u) {
....
}
}
As anotações indicam que o usuário logado só pode instanciar um objeto do tipo CadastroUsuario se ele possuir a role USUARIO_CAD ou USUARIO_CONS. E o usuário só pode chamar o método atualizar se ele possuir a role USUARIO_CAD. Caso ele não possua as roles necessárias, é jogada uma SecurityException.
No .net, essas anotações seriam substituídas por: [PrincipalPermissionAttribute(SecurityAction.Demand, Role = “USUARIO_CAD”)], que caso o usuário que está executando o código não possua essas roles, ao chamar o método ou instanciar a classe é jogada uma SecurityException.
Existe algo já pronto para fazer isso??? Se não existe, eu tinha pensado em implementar utilizando anotações, mas não sei se é possível chamar um código quando é instanciado um objeto ou chamado um método de uma classe, para verificar as roles necessárias nessas anotações.
Obrigado,
Fabio