JAAS no Struts 2

7 respostas
N

Galera,

O Struts 2 tem uma pequena diferença em relação ao Struts 1. Ele utiliza Filter e não ActionServlet. Dessa forma eu não consigo, entre outros, fazer um role-mapping dentro da declaração do Servlet.

Outra, ele pega tudo que é .action. Até tentei mudar o ActionMapper default (workaround) para acatar algo diferente como .do mas ele não funcionou (acho q preciso tentar de novo, pq se a galera do jakarta diz q funciona entao o errado sou eu).

Preciso que meu login-form seja uma action, mas não pode ser barrada pelo JAAS, senão fica um ciclo acesso -> autentica -> acesso -> autentica …

Então, vem a pergunta…

Alguém já encontrou algum exemplo “funcionando” de JAAS com Struts 2 ?

Abraço

7 Respostas

W

Olá,
Use interceptors e veja ´link abaixo.
http://www.guj.com.br/posts/list/56714.java
http://struts.apache.org/2.0.11/docs/interceptors.html
http://www.vitarara.org/cms/struts_2_cookbook/creating_a_login_interceptor

Depois procure por ACEGI


sds.

N

Valeu William,

Mas não resolveu nada!

Eu tenho uma arquitetura já funcionando e que usa JAAS em Struts 1. Eu só queria colocar em Struts 2 e não usar uma implementação fora do padrão J2EE.

Já tinha consultado todos os links q vc me passou, com exceção do Acegi, mas todos abordam a mesma solução através de Interceptor ou Filter e não aplicam JAAS.

Por incrível q pareça eu não achei na internet nada relativo a JAAS e Struts 2. Devo ser um péssimo pesquisador.

Se eu conseguir, vou tratar de colocar um artigo por aí.

Abraço.

W

Eu tenho uma arquitetura já funcionando e que usa JAAS em Struts 1. Eu só queria colocar em Struts 2 e não usar uma implementação fora do padrão J2EE.
Vc. tem que colocar na cabeça que o S2 não segue o padrão/especificação J2EE, alias o pessoal do S2 nem participou da última especificação. A realidade é que ele segue o que podemos chamar de implementação “Umbrella” ou seja agrega (.JARs) que chamamos de plugins ( DWR,Freemarker,REST,Tiles,codebehind,Dojo,Spring, etc.) para extender algumas coisas, mais tome cuidado com a arquitetura que vc quer implementar, pois ele é um “Action Framework” ainda em construção, e não está 100% pronto para o consumers.Como ainda continua sendo o WebWork ainda faltam muitas coisas a serem melhoradas e a minha sugestão é que seja usado com “parcimônia”.

N

Ok William,

Vou tentar ler mais a respeito.

Só complementando entao minha dúvida.

Será que jogaram fora aquele esquema de autenticação baseado em: j_security_check, j_username e j_password?

Considerando que o Struts 2 ainda mantém disponíveis recursos como Principal no request, o web.xml ainda mantém roles e role-mappings. Ainda não consigo ver uma solução que não seja baseada em JAAS para identificar esses elementos.

Um interceptor conseguiria preencher um Principal no request ? De outra forma, utilizar um Realm para autenticação ?

Fica difícil acreditar que o Struts 2 não prevê nenhuma solução padrão para autenticação. Ficar utilizando soluções proprietárias baseadas em interceptors é realmente uma visão temerosa.

Imagina se eu tiver que programar a propagação de autenticação para EJB 2.1, como eu tenho atualmente funcionando no meu projeto automaticamente via JAAS.

Abraço e Obrigado

W


Fica difícil acreditar que o Struts 2 não prevê nenhuma solução padrão para autenticação. Ficar utilizando soluções proprietárias baseadas em interceptors é realmente uma visão temerosa.
Como disse acima ele preve autenticação via Spring/Acegi ou interceptors, há outras soluções mais todas elas a nível de “codificação” e competência dos próprios desenvolvedores.
Ps. pode haver outras mais …gostaria de conhecer.

N

Essas soluções via Spring e Acegi propagam o contexto de autenticação para o EJB ?

W

Essas soluções via Spring e Acegi propagam o contexto de autenticação para o EJB ?
Seu é EJB 2.1, dá uma pesquisada mais o melhor é analizar o que já foi discutido acima do quê ficar colocando mais uma camada de arquitetura em seu projeto.
sds.

Criado 2 de maio de 2008
Ultima resposta 4 de mai. de 2008
Respostas 7
Participantes 2