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 !