0 Replies Latest reply on Aug 22, 2007 9:51 AM by jpagera

    Custom Login Module Problem

    jpagera

      Hi im want to use Custom Login Module with JBoss 4.0.5

      that what i did

      My login module is :

      ______________________________

      public boolean login() throws LoginException {


      if(_callbackHandler_ == null){
      throw new LoginException("JPageraLoginModule Exception _callbackHandler_ is null ");
      }

      Callback callbackx[] = new Callback[2];

      callbackx[0] = new NameCallback("Username");
      callbackx[1] = new PasswordCallback("Password:",false);




      try {
      _callbackHandler_.handle(callbackx);

      driverDB_ = (String)options_.get("driverDB_");
      userDB_ = (String)options_.get("userDB_");
      passwordDB_ = (String)options_.get("passwordDB_");
      urlDB_ = (String)options_.get("urlDB_");


      userName = ((NameCallback) callbackx[0]).getName();

      loginResult = checkUserNameAndPassword(((NameCallback) callbackx[0]).getName(),((PasswordCallback) callbackx[1]).getPassword());

      System.out.println("IN LOGIN METHOD FINISH....."+loginResult);
      return loginResult;

      } catch (UnsupportedCallbackException e) {
      throw new LoginException("JPageraLoginModule Exception UnsupportedCallbackException ");
      } catch (IOException e) {
      throw new LoginException("JPageraLoginModule Exception IOException ");
      }
      }

      ................................................

      and this is what i wrot in login-config.xml in %JBOSS_HOME%/server/default/conf

      _________________________________________
      <!-- My Login Module -->

      <application-policy name="JPassivateSecurityDomain">

      <login-module code="com.jpagera.login.JPageraLoginModul" flag="required">
      <module-option name="debug">true</module-option>
      <module-option name="driverDB_">com.mysql.jdbc.Driver</module-option>
      <module-option name="userDB_">myusrName</module-option>
      <module-option name="passwordDB_">mypassword</module-option>
      <module-option name="urlDB_">jdbc:mysql://localhost:3306/jos_db</module-option>
      </login-module>

      </application-policy>
      ..............................
      and this is my jboss.xml in my ejb jar file
      ____________________________

      <security-domain>java:/jaas/JPassivateSecurityDomain</security-domain>
      <enterprise-beans>

      <ejb-name>JBossSessionEJB</ejb-name>
      <jndi-name>JBossSessionEJB</jndi-name>

      </enterprise-beans>

      .................................
      and im lookup session :
      Properties pro = new Properties();
      pro.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
      pro.put(Context.URL_PKG_PREFIXES,"org.jboss.naming:org.jnp.interfaces");
      pro.put(Context.PROVIDER_URL,"jnp://jpagera:1099");
      pro.put(Context.SECURITY_PRINCIPAL,"myusrName");
      pro.put(Context.SECURITY_CREDENTIALS,"mypassword");
      .........................
      when lookup it throw these exceptions ...

      javax.ejb.EJBAccessException: Authentication failure; nested exception is: javax.security.auth.login.FailedLoginException: Password Incorrect/Password Required
      javax.security.auth.login.FailedLoginException: Password Incorrect/Password Required
      at org.jboss.security.auth.spi.UsernamePasswordLoginModule.login(UsernamePasswordLoginModule.java:213)
      at org.jboss.security.auth.spi.UsersRolesLoginModule.login(UsersRolesLoginModule.java:152)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      at javax.security.auth.login.LoginContext.invoke(Unknown Source)
      at javax.security.auth.login.LoginContext.access$000(Unknown Source)
      at javax.security.auth.login.LoginContext$4.run(Unknown Source)
      at java.security.AccessController.doPrivileged(Native Method)
      at javax.security.auth.login.LoginContext.invokePriv(Unknown Source)
      at javax.security.auth.login.LoginContext.login(Unknown Source)
      at org.jboss.security.plugins.JaasSecurityManager.defaultLogin(JaasSecurityManager.java:601)
      at org.jboss.security.plugins.JaasSecurityManager.authenticate(JaasSecurityManager.java:535)
      at org.jboss.security.plugins.JaasSecurityManager.isValid(JaasSecurityManager.java:344)
      at org.jboss.aspects.security.AuthenticationInterceptor.authenticate(AuthenticationInterceptor.java:123)
      at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:66)
      at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:102)
      at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
      at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47)
      at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
      at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
      at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
      at org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(StatelessContainer.java:263)
      at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:106)
      at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82)
      at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:828)
      at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:681)
      at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:358)
      at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:398)
      at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:239)
      at org.jboss.remoting.RemoteClientInvoker.invoke(RemoteClientInvoker.java:190)
      at org.jboss.remoting.Client.invoke(Client.java:525)
      at org.jboss.remoting.Client.invoke(Client.java:488)
      at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:55)
      at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
      at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:61)
      at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
      at org.jboss.aspects.security.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:53)
      at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
      at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:77)
      at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
      at org.jboss.ejb3.stateless.StatelessRemoteProxy.invoke(StatelessRemoteProxy.java:102)
      at $Proxy0.queryTabsFindAll(Unknown Source)

      .................................................
      it never call login method at my JPageraLoginModule

      did i miss somthing or.. i dont know where is my problem

      can anyone help .....

      my login module is work perfectly in OC4J.......

      thankx for help