Pessoal,
Estou desenvolvendo um sistema de autenticação que tem por objetivo unificar a forma por onde as aplicações WEB se autenticam, hoje a realidade é a seguinte, tenho para cada projeto WAR um jar no lib com a classe de conexão e as regras de negócio referente ao login e ao projeto em si.
O sistema de login hoje se autentica no banco de dados da seguinte maneira: O login e senha do usuário corresponde ao login e senha no banco de dados pois as permissões são feitas a nível de GRANT nas tabelas, após se logar no banco é preciso executar uma procedure para verificar alguns status do usuário.
Estou criando um projeto WAR que tem por objetivo autenticar o usuário e transferir a sessão para outro WAR.
A minha dúvida é a seguinte: Estou com dificuldades para gerenciar essa autenticação e transferência da sessão do usuário para os outros WAR’s. Vocês me indicariam alguma arquitetura onde eu possa gerenciar meus projetos WAR e ter um único canal de autenticação?
Pensei em partir para um projeto EAR porem acredito que usar EJB é bem complexo pois os projetos WEB não tem interligação então eu não precisaria ter comunicação entre classes de projetos diferentes.
Hoje utilizo o JBOSS como servidor de aplicação.
Pensei na seguinte arquitetura:
Web service
– Login
autenticar(Usuario usuario);
– Projeto 1
metodo1(Param param, usuario autenticacao);
– Projeto 2
metodo2(Param param, usuario autenticacao);
Disponibilizar um WS com método que autentica o usuário.
Disponibilizar um WS para cada projeto e sempre passar a autenticação disponibilizada na sessão, porem chega onde estou com dúvida que é a transferência da sessão do serviço de autenticação para um outro projeto.
Criar uma aplicação WEB que consuma esse WS e se autentique no servidor e disponibilize essa sessão para outra aplicação WEB no mesmo servidor.
Arquitetura atual:
projeto1 (WAR)
–lib
-----regraNegocioProjeto1 (JAR)
-------oracleConnectionUtil (JAR)
-------classeLogin (JAR)
projeto2 (WAR)
–lib
-----regraNegocioProjeto2 (JAR)
-------oracleConnectionUtil (JAR)
-------classeLogin (JAR)
Quero mudar essa realidade urgente pois não consigo trabalhar sem reuso de código.
De antemão agradeço a ajuda de vocês e desculpem o texto extenso.
Atenciosamente,