We try to access a EJB stateless service inside a custom LoginModule. The 
problem is that the login() method is called again and again when the  the EJB 
stateless service is accessed.


  | public class DatabaseServerLoginModuleTm3 extends DatabaseServerLoginModule
  | {
  |     @Override
  |     public boolean login() throws LoginException
  |     {
  |         try {
  |             boolean successLogin = super.login();
  |             return successLogin;
  |         }
  |         catch ( LoginException e ) {
  |             increaseFailedLogins();
  |             throw e;
  |         }
  |     }
  | 
  |     private void increaseFailedLogins()
  |     {
  |         if ( this.getClaimedUsername() == null ) {
  |             return;
  |         }
  |         InitialContext ctx = new InitialContext();
  |         return (PersonServiceLocal) ctx.lookup( "PersonServiceBean/local" );
  | 
  |         PersonServiceLocal personService = lookupContactService();
  |         Person person = personService.getPersonByUsername( 
this.getClaimedUsername() );
  | 
  |         personService.increaseFailedLoginsForPerson( person );
  |     }
  | }
  | 

In jboss.xml we defined the security domain "TM3-security" for all beans:


  | <jboss>
  |     <security-domain>java:/jaas/TM3-security</security-domain>
  |     <unauthenticated-principal>guest</unauthenticated-principal>
  | </jboss>
  | 


In login-config.xml the used login-modules are defined:


  | <application-policy name = "TM3-security">
  |        <authentication>
  |                <login-module code = 
"org.jboss.security.auth.spi.RunAsLoginModule" flag = "required">
  |                             <module-option 
name="roleName">LoginModuleUser</module-option>
  |                </login-module>
  |                
  |                <login-module code = 
"com.tm3.erp.core.business.DatabaseServerLoginModuleTm3" flag = "required">
  |                             <module-option name = 
"unauthenticatedIdentity">guest</module-option>
  |                             <module-option name = 
"dsJndiName">java:/PostgresDS</module-option>
  |                             <module-option name = 
"ignorePasswordCase">false</module-option>
  |                             <module-option name = 
"principalsQuery">xy</module-option>               
  |                             <module-option name = 
"rolesQuery">xy</module-option>
  |                     </login-module>
  |                     
  |                     <login-module 
code="org.jboss.security.ClientLoginModule" flag="required">
  |                       <module-option 
name="multi-threaded">true</module-option>
  |                       <module-option 
name="restore-login-identity">true</module-option>
  |                     </login-module> 
  |        </authentication>
  |     </application-policy>
  | 

We tried to moved the called EJB (PersonService) to a different Security Domain 
using the annotions:
a) @org.jboss.ejb3.annotation.SecurityDomain("java:/jaas/other")
b) @org.jboss.security.annotation.SecurityDomain ("java:/jaas/other")

No success. Any ideas? Thank you.



View the original post : 
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4269747#4269747

Reply to the post : 
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4269747
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to