Oi Amigo,
entendo o que você fala de ensinar o JBoss. Estou colocando a seguir o que já fiz na aplicação para buscar deixar mais claro o problema que estou enfrentando e se puder ajudar agradeceria e muito.
O JBoss que estou utilizando é o JBoss 4.0.5.GA com o jdk 1.4
Realizei as seguintes configurações:
1 - Arquivo web.xml
…
restricao
/restricao/a.do
/restricao/b.do
<http-method>POST</http-method>
<http-method>GET</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>restricao</role-name>
</auth-constraint>
FORM
/logon.do
/logon.do
Restricao
restricao
…
2 - No struts-config.xml mapeio o logon.do para chamar a action LoginAction
3 - No arquivo login-config.xml da pasta server\default\conf inseri as seguintes informações
…
jboss.jca:service=LocalTxCM,name=jdbc/fabrica
java:jdbc/teste
Select password from principal where user =?
Select role ‘Roles’, group ‘RoleGroups’ from roles where user =?
…
4 - Criei um arquivo jboss-web.xml no WEB-INF da aplicação com a seguinte informação
<?xml version="1.0" encoding="UTF-8"?>
java:/jaas/testejaas
5 - Na base adicionei um usuario teste ao role restricao
Agora estarei descrevendo os passos que estou executando nos testes:
1 - Tento acessar o link /restricao/a.do
A aplicação verifica que é uma página restrita e redireciona para o login.do, no qual chama LoginAction. A LoginAction verifica que o j_username e j_password está nulo e manda para a página login.jsp
2 - Informo o username e password e dou submit no form para o login.do
A classe LoginAction recebe estes parâmetros e realiza a autenticação. Até funcionando corretamente.
No struts-config.xml o sucesso da action login.do redireciona para a action a.do.
3 - Chamando a action b.do
Quando tento chamar a action b.do da página do a.do, novamente é redirecionado para o login.do para realizar autenticação. E é nesse ponto que acho que existe algum problema, pois acredito que como já realizei a autenticação o container deveria verificar que não necessito novamente chamar o login.do para acessar a action b.do. Ou seja, acredito que ele só deveria realizar a autorização e isso não está funcionando.
Tomará que esteja mais claro e que alguém consiga dar uma luz para este problema.
Desde já obrigado.