Valeu Galera ! eu pra resolver o problema estou usando o JAAS no tomcat 7
Aproveitando vou deixar aqui o Exemplo que o Autenticador peguei do próprio GUJ
Tutorial:
http://www.guj.com.br/articles/184
em Anexo contém o .jar (jaasGuj.jar) que já está o Tutorial do link acima já compilado, e só basta você copiar e colar no diretório
Tomcat7/lib/
2º Passo
No diretório
apache-tomcat-7\conf crie um arquivo chamado jaas.config
e nele contém o conteudo:
myApp_login {
br.com.infocontas.security.GujLoginModule required
dataSourceName="jdbc/myDataSource"
sqlUser="select password from users where user_name=?"
sqlRoles="select role_name from user_role where user_name=?";
};
3º Passo
No apache-tomcat-7\bin\catalina.bat
procure a variavel de ambiente set JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER%
Abaixo dela acrecente seu jaas.config
Depois no Server.xml ( apache-tomcat-7\conf ) insira seu context dentro da Tag conforme o exemplo abaixo:
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context path="/myApp docBase="myApp"
debug="1" reloadable="true" crossContext="true">
<Realm className="org.apache.catalina.realm.JAASRealm"
appName="myApp_login"
userClassNames="br.com.infocontas.security.principals.User"
roleClassNames="br.com.infocontas.security.principals.Role"
/>
</Context>
</Host>
4º Passo
Criaremos a tela de login.xhtml
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt-br" lang="pt-br">
</head>
</body>
<form id="formLista" action="#{request.contextPath}/j_security_check" method="post">
<table cellspacing="5">
<tr>
<td>Login:</td>
<td><input type="text" name="j_username" /> </td>
</tr>
<tr>
<td>Senha:</td>
<td><input type="password" name="j_password" /></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="Entrar"/>
</td>
</tr>
</table>
</form>
</body>
</html>
5º Passo ( último)
Vamos configurar o no web.xml de sua aplicação
<welcome-file-list>
<welcome-file>index.jsf</welcome-file>
</welcome-file-list>
<security-constraint>
<display-name>Página index protegida</display-name>
<web-resource-collection>
<web-resource-name>Protected Area</web-resource-name>
<url-pattern>/index.jsf</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>ADM</role-name>
</auth-constraint>
</security-constraint>
<security-role>
<description>ADM</description>
<role-name>ADM</role-name>
</security-role>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>ADM</realm-name>
<form-login-config>
<form-login-page>/login.jsf</form-login-page>
<form-error-page>/error.jsf</form-error-page>
</form-login-config>
</login-config>
FIM seu JAAS está configurado!
No exemplo acima, ao ser redirecionao para a página index.jsf sem estar logado
http://localhost:8080/myApp/
Você será redirecionado para a pela de login.jsf
Ao logar, você será redirecionado para o index.jsf ( página destino ) isso se tiver a permissão ADM em seu banco conforme
a query no arquivo [b]jaas.login /b
Agora para controlar a sessão se expirou ou não daí seria recomendável eu usar o Phase-Listener para isso ?
abrs a todos espero ter ajudado !