Boa tarde a todos…
Pessoal estou desenvolvendo o sistema controle de acesso e permissões genérico, ou seja, que eu possa usar este recurso em qualquer sistema.
Minha idéia seria implementar as regras de permissões na camada de negócio, ou seja, toda vez que métodos públicos destas classes fossem ser executados eu iria checar se o usuário em questão o pode fazer.
Eu andei estudando a API de Reflection, e eu sei que consigo analisar a classe e descobrir seu nome, métodos, parâmetros dos métodos e seus respectivos tipos, os construtores, etc…
Esse mecanismo me permitirá realizar o cadastro automático do nome da classe e seus métodos públicos para compor a estrutura de permissões.
Até ai beleza, mas o grande problema esta em descobrir o nome do método que esta sendo executado, para que faça um checagem das permissões.
Ex:
public class GerenciadorCliente {
private Usuario user;
public GerenciadorCliente(Usuario user) {
this.user = user;
}
public void salvarCliente throws GerenciadorClienteException {
Permissao permissao = new Permissao(this.user, <nome_da_classe>, <nome_deste_método>)
if (!permissao.OK) {
throw new GerenciadorClienteException("Acesso negado!!!");
} else {
//executa o método
}
}
}
Pessoal não sei se fui claro, vale observar que eu sou novo em Java.
E aceito qualquer crítica ou sugestão.
Agradeço a todos desde já
Renato Hernandez Alexandre
renato.fac@uol.com.br