[RESOLVIDO] Autenticação com Roles e Usuários em "bases" distintas

2 respostas
bsl.lacerda

Bom dia pessoal!
Estou com uma dúvida em como seria possível implementar um tipo de autenticação e segurança acessando informações de usuário (login e senha) em um servidor LDAP e as informações de Roles deste mesmo usuário na base de dados da aplicação.

O cenário é mais ou menos o seguinte:
Na instituição onde trabalho, todos os usuários estão registrados no LDAP (usuário, senha, etc). Porém as roles destes usuários variariam de acordo com a aplicação que ele esteja efetuando login.
Exemplo: O usuário XPTO ao acessar a aplicação A possui a role ADMIN associado a ele. Este mesmo usuário ao acessar a aplicação B possui a role OPERADOR.

Deu pra entender?
Usuário e senha são os mesmos para qualquer aplicação da instituição (dados no LDAP), porém, as roles variam de acordo com o sistema que o usuário acessa (dados na base do sistema).

Obrigado!

2 Respostas

H

cara , tira a role do kra qnd ele der loggof e quando ele der login dependendo do lugar q ele se logga vc atribui o role a ele.
Se o usuario A se logar na Maquina X ele é Admin, da loggof tira o admin dele.
Quando o usuario A logar na Maquina Z vc atribui a role de Operador a ele, quando der loggf tira o operador dele e assim vai.

espero ter ajudado vlw se conseguir avisa

bsl.lacerda

Opa!
Na verdade eu fiz da seguinte forma:
Eu estendi a classe org.apache.catalina.realm.DataSourceRealm que fica configurada no arquivo server.xml (tomcat) e sobrescrevi o método public Principal authenticate(String login, String password){...}.
Desta forma eu consigo colocar a minha regra de negócio para fazer parte da autenticação gerenciada pelo container declarando a minha classe como sendo o DatasourceRealm que o container irá utilizar.

Ex: Acessar o LDAP, cadastrar usuário automaticamente na base da aplicação X caso ele estaja ativo no LDAP etc.

Valeu pela ajuda!

Criado 14 de dezembro de 2010
Ultima resposta 15 de dez. de 2010
Respostas 2
Participantes 2