Multiplos LoginModules

2 respostas
derheimen

Estou com uma dúvida em relação a execução de mais de um LoginModule.
Como configura-los e executa-los ?

Implementei dois LoginModule:
1º (CiospOneLoginModule) - realiza autenticação(usuário e senha);
Este primeiro já esta ok, após autenticação(usuário e senha) é direcionado para uma segunda tela(autenticação por chave informada).

2º (CiospTwoLoginModule)- deve realizar autenticação por chave aleatória.
Após esta segunda autenticação, o usuário terá acesso ao sistema.

Mas como deve ficar estas configurações do arquivo jaas.config ?

Segue oque já estou utilizando:

Onde mais devo realizar as configurações?
Desde já agradeço.

2 Respostas

derheimen

Esotu pesquisando muito mais não estou encontrando nada, se ao menos eu soubesse onde realizar estas configurações, ficaria mais fácil.
Se alguém puder ajudar ficarei muito agradecido, pois estou tendo dificuldades.
valeusssssss.

derheimen

Vou postar aqui um passo a passo de que eu já implementei e esta funcionando

1º Devo realizar a autenticação do usuário informando (usuario e senha).

  • implementei um LoginModule para esta operação, junto com as classes LoginContext (Lê o arquivo de configuração jaas.config adicionado na pasta conf do tomcat), CallbackHandler e a Principal.
  • Configurei o arquivo web.xml
<!-- Restrições, todas JSPs adicionadas aqui, serão bloqueadas -->
<security-constraint>
   <web-resource-collection>
      <web-resource-name>Página Inicial</web-resource-name>
      <url-pattern>/pages/autenticaChave.jsp</url-pattern >
   </web-resource-collection>
   <auth-constraint>
      <role-name>Admin</role-name>
   </auth-constraint>
</security-constraint>

<login-config>
   <auth-method>FORM</auth-method>
   <realm-name>default</realm-name>
   <form-login-config>
      <form-login-page>/pages/autenticaLogin.jsp</form-login-page>
      <form-error-page>/pages/error.jsp</form-error-page>
   </form-login-config>
</login-config>
  • Criei a JSP corretamente com as propriedades: j_security_check, j_username e j_password.
<form action="/ciosp/j_security_check" method="POST">
   <table align="center">
      <tr>
         <td class="label">Nome de Usuário:</td>
         <td><input type="text" name="j_username" size="15" maxlength="15"/></td>
      </tr>
      <tr>
         <td class="label">Senha:</td>
         <td><input type="password" name="j_password" size="15" maxlength="15"/></td>
      </tr>
      <tr>
         <td>&nbsp;</td>
         <td><input type="submit" value="Entrar"/></td>
      </tr>
   </table>
</form>
  • Criei um arquivo de configuração jaas.config e adicionei na pasta C:\Java\tomcat-6.0.2\conf.
ciospLogin {
	br.com.ciosp.security.module.CiospOneLoginModule required 
	debug="true" 
	url="jdbc:hsqldb:file:C:/Des/Java/bd/scap"
	driver="org.hsqldb.jdbcDriver" 
	user="sa" 
	pass="";
};
  • Alterei o arquivo java.security das pasta C:\Java\jdk1.5.0_08\jre\lib\security, adicionando esta linha.
login.config.url.1=file:C:/Java/tomcat-6.0.2/conf/jaas.config
  • Criei um JAASRealm no server.xml da pasta conf do tomcat.
<Realm className="org.apache.catalina.realm.JAASRealm"
               appName="ciospLogin" 
        userClassNames="br.com.ciosp.security.principal.UsuarioPrincipal" 
        roleClassNames="br.com.ciosp.security.principal.RolePrincipal" 
	         debug="99"
 useContextClassLoader="false" />

Rodei a aplicação e loguei com sucesso na primeira tela, após isso é redirecionado para a segunda tela onde devo autenticar por uma chave informada essa segunda autenticação também deverá rodar no servidor de aplicação.

Mas esta segunda autenticação não estou sabendo como utilizar, implementei um LoginModule também para essa autenticação.

Como deve ficar minhas configurações?
Devo criar mais um JAASRealm, devo adicionar mais alguma coisa no arquivo de configuração(jaas.config), (java.security) ou (web.xml).

Caso alguém possa dar um help agradeço.



Criado 14 de fevereiro de 2007
Ultima resposta 15 de fev. de 2007
Respostas 2
Participantes 1