Mestres do J2EE, helpemem hehehe
Olha so , to com a seguinte situacao…
Estou trabalhando em um projeto onde esta sendo feita a migração de uma aplicacao toda desenvolvida com servlets sem usar nenhum framework de mvc para uma outra onde estamos utilizando struts , ejb, spring etc etc
a situacao é a seguinte, a aplicacao velha controla o acesso dos usuarios atraves de uma tela de login.
como a migração será feita por módulos, o cliente quer q o login permaneça na aplicação antiga.
Pois, bem, criamos um servlet que fara integracao entre as aplicaoes passando atributos de sessao de uma aplicacao para a outra atraves de url.
O PROBLEMA é o seguinte:
eu criei a autenticacao e autiorizacao na aplicacao nova programaticamente extendendo a classe HttprequestWrapper.
o problema é que precisava propagar os roles para o servidor de aplicação, e nao estou conseguindo verificar os roles nos ejb atraves da segurancao declarativa. acredito que so consigo fazer isso criando meu proprio LoginModule e acredito que para isso seria necessario criar uma nova tela de login, coisa que o cliente nao quer.
Será que alguem entendeu alguma coisa?
se sim me judem, se nao prometo que farei um curso de redação
valeu
entendi ± (é cansaço do dia :roll: )
por acaso essas aplicações estão rodando em JVM diferentes?
se sim, você vai ter que mover a session.
Mas a aplicação antiga vai apenas logar o usuário? ou ela vai ser um módulo que vai ficar ativo que faz entre OUTRAS coisas a autenticação?
flw Hewerton
Hewerton,
as aplicacoes nao ficaram na mesma JVM.
mas esse problema vai ser sanado fazendo uma integracao bem cachorra atraves de servlets.
a aplicação antiga vai continuar funcionando disponibilizado os modulos ainda nao migrados.
a grande questao é como fazer uma autenticacao sem login e senha na aplicacao nova, onde as roles fiquem disponiveis nos ejbs
valeu
Passei por uma situação parecida há pouco tempo.
Modularizamos uma grande aplicação em várias aplicações Web e Ejb. O login é feito em uma e nós precisavamos que esse autenticação fosse passada para os outros módulos sempre que os mesmos fossem invocados.
A solução foi criar uma chave criptografada e passar via url para o outro módulo. Ao chegar nesse módulo, o mesmo descriptografa a chave e localiza o usuário que invocou e depois seta as suas permissões.
é essa situacao mesmo que estou passando. o fato de passar o login e senha pela url nao é problema isso se da um jetio. a questa é programaticamente mandar o Principal e as roles da aplicação web para o container ejb para que eu possa usa-la nas configuracoes de seguranca do contaiber ejb. como eu faria isso?
É, esse é um problema.
No meu caso, eu mesmo estou controlando as regras de acesso e permissão através de cadastro no banco de dados.
é isso que to querendo evitar: fazer conexao à banco diversas vezes so pra fazer controle de seguranca.
Talvez criar um statefull bean e criar um interceptador seria uma boa.
Po tentei de todo jeito fazer criando meu proprio LoginModule, mas nao deu certo de jeito nenhum…
bom mas obrigado ae pela força
O problema de criar um Stateful Session Bean é que você faz a autenticação na camada Web e cria seu Stateful.
Quando você chama outro módulo, a referência para o seu stateful está lá na aplicação que você faz a autenticação. Como vc vai transitar esse EJB entre aplicações Web? O problema seria por aí.