Hi jboss 4.0.2
I have written a custom LoginModule with a custom CallbackHandler, which I use to create a stateful session EJB. When my http session times out I would like to remove this EJB. Thus I have saved the actual callbackHandler in the http session and made a SessionListener: public void valueUnbound(HttpSessionBindingEvent event) { javax.security.auth.login.LoginContext loginContext = new javax.security.auth.login.LoginContext("tdc", savedCallbackHandler()); loginContext.login(); System.out.println("Logged in again"); savedEjbHandle.remove(); System.out.println("Cleaned up session"); } In the console log I can see that the sessionListener does a successful login using the savedCallbackHandler, but the subsequent call to savedEjbHandle.remove somehow initiates an extra call to my LoginModule with a callbackHandler with no information, ie username and credentials are not available. Any ideas? /Peter The stacktrace of the extra LoginModule call follows: 15:39:07,094 DEBUG [LogInterceptor] SecurityException in method: public abstract void javax.ejb.EJBObject.remove() throws java.rmi.RemoteException,javax.ejb.RemoveException: javax.security.auth.login.LoginException: Username not supplied. at dk.certifikat.jboss.security.CertLoginModule.getUserName(CertLoginModule.java:153) at dk.certifikat.jboss.security.CertLoginModule.login(CertLoginModule.java:83) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at javax.security.auth.login.LoginContext.invoke(LoginContext.java:675) at javax.security.auth.login.LoginContext.access$000(LoginContext.java:129) at javax.security.auth.login.LoginContext$4.run(LoginContext.java:610) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.login.LoginContext.invokeModule(LoginContext.java:607) at javax.security.auth.login.LoginContext.login(LoginContext.java:534) at org.jboss.security.plugins.JaasSecurityManager.defaultLogin(JaasSecurityManager.java:483) at org.jboss.security.plugins.JaasSecurityManager.authenticate(JaasSecurityManager.java:425) at org.jboss.security.plugins.JaasSecurityManager.isValid(JaasSecurityManager.java:251) at org.jboss.ejb.plugins.SecurityInterceptor.checkSecurityAssociation(SecurityInterceptor.java:180) at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:129) at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:185) at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:48) at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:105) at org.jboss.ejb.plugins.AbstractTxInterceptorBMT.invokeNext(AbstractTxInterceptorBMT.java:153) at org.jboss.ejb.plugins.TxInterceptorBMT.invoke(TxInterceptorBMT.java:62) at org.jboss.ejb.plugins.StatefulSessionInstanceInterceptor.invoke(StatefulSessionInstanceInterceptor.java:297) at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:192) at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122) at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:624) at org.jboss.ejb.Container.invoke(Container.java:873) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141) at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80) at org.jboss.mx.server.Invocation.invoke(Invocation.java:72) at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:249) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644) at org.jboss.invocation.local.LocalInvoker$MBeanServerAction.invoke(LocalInvoker.java:155) at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:104) at org.jboss.invocation.InvokerInterceptor.invokeLocal(InvokerInterceptor.java:179) at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:165) at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:46) at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:55) at org.jboss.proxy.ejb.StatefulSessionInterceptor.invoke(StatefulSessionInterceptor.java:106) at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:86) at $Proxy61.remove(Unknown Source) at infra.servlet.SessionListener.valueUnbound(SessionListener.java:54) at org.apache.catalina.session.StandardSession.removeAttributeInternal(StandardSession.java:1595) at org.apache.catalina.session.StandardSession.expire(StandardSession.java:727) at org.apache.catalina.session.StandardSession.isValid(StandardSession.java:567) at org.apache.catalina.session.ManagerBase.processExpires(ManagerBase.java:655) at org.apache.catalina.session.ManagerBase.backgroundProcess(ManagerBase.java:640) at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1283) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1568) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1577) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1577) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1557) at java.lang.Thread.run(Thread.java:534) 15:39:07,094 INFO [STDOUT] java.rmi.AccessException: SecurityException; nested exception is: javax.security.auth.login.LoginException: Username not supplied. 15:39:07,094 INFO [STDOUT] at org.jboss.ejb.plugins.LogInterceptor.handleException(LogInterceptor.java:370) 15:39:07,094 INFO [STDOUT] at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:196) 15:39:07,094 INFO [STDOUT] at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122) 15:39:07,094 INFO [STDOUT] at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:624) 15:39:07,094 INFO [STDOUT] at org.jboss.ejb.Container.invoke(Container.java:873) 15:39:07,094 INFO [STDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 15:39:07,094 INFO [STDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 15:39:07,094 INFO [STDOUT] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 15:39:07,094 INFO [STDOUT] at java.lang.reflect.Method.invoke(Method.java:324) 15:39:07,094 INFO [STDOUT] at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141) 15:39:07,094 INFO [STDOUT] at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80) 15:39:07,094 INFO [STDOUT] at org.jboss.mx.server.Invocation.invoke(Invocation.java:72) 15:39:07,094 INFO [STDOUT] at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:249) 15:39:07,094 INFO [STDOUT] at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644) 15:39:07,094 INFO [STDOUT] at org.jboss.invocation.local.LocalInvoker$MBeanServerAction.invoke(LocalInvoker.java:155) 15:39:07,094 INFO [STDOUT] at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:104) 15:39:07,094 INFO [STDOUT] at org.jboss.invocation.InvokerInterceptor.invokeLocal(InvokerInterceptor.java:179) 15:39:07,094 INFO [STDOUT] at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:165) 15:39:07,094 INFO [STDOUT] at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:46) 15:39:07,094 INFO [STDOUT] at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:55) 15:39:07,094 INFO [STDOUT] at org.jboss.proxy.ejb.StatefulSessionInterceptor.invoke(StatefulSessionInterceptor.java:106) 15:39:07,094 INFO [STDOUT] at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:86) 15:39:07,094 INFO [STDOUT] at $Proxy61.remove(Unknown Source) 15:39:07,094 INFO [STDOUT] at infra.servlet.SessionListener.valueUnbound(SessionListener.java:54) 15:39:07,094 INFO [STDOUT] at org.apache.catalina.session.StandardSession.removeAttributeInternal(StandardSession.java:1595) 15:39:07,094 INFO [STDOUT] at org.apache.catalina.session.StandardSession.expire(StandardSession.java:727) 15:39:07,094 INFO [STDOUT] at org.apache.catalina.session.StandardSession.isValid(StandardSession.java:567) 15:39:07,094 INFO [STDOUT] at org.apache.catalina.session.ManagerBase.processExpires(ManagerBase.java:655) 15:39:07,094 INFO [STDOUT] at org.apache.catalina.session.ManagerBase.backgroundProcess(ManagerBase.java:640) 15:39:07,104 INFO [STDOUT] at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1283) 15:39:07,104 INFO [STDOUT] at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1568) 15:39:07,104 INFO [STDOUT] at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1577) 15:39:07,104 INFO [STDOUT] at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1577) 15:39:07,104 INFO [STDOUT] at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1557) 15:39:07,104 INFO [STDOUT] at java.lang.Thread.run(Thread.java:534) 15:39:07,104 INFO [STDOUT] Caused by: javax.security.auth.login.LoginException: Username not supplied. 15:39:07,104 INFO [STDOUT] at dk.certifikat.jboss.security.CertLoginModule.getUserName(CertLoginModule.java:153) 15:39:07,104 INFO [STDOUT] at dk.certifikat.jboss.security.CertLoginModule.login(CertLoginModule.java:83) 15:39:07,104 INFO [STDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 15:39:07,104 INFO [STDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 15:39:07,104 INFO [STDOUT] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 15:39:07,104 INFO [STDOUT] at java.lang.reflect.Method.invoke(Method.java:324) 15:39:07,104 INFO [STDOUT] at javax.security.auth.login.LoginContext.invoke(LoginContext.java:675) 15:39:07,104 INFO [STDOUT] at javax.security.auth.login.LoginContext.access$000(LoginContext.java:129) 15:39:07,104 INFO [STDOUT] at javax.security.auth.login.LoginContext$4.run(LoginContext.java:610) 15:39:07,104 INFO [STDOUT] at java.security.AccessController.doPrivileged(Native Method) 15:39:07,104 INFO [STDOUT] at javax.security.auth.login.LoginContext.invokeModule(LoginContext.java:607) 15:39:07,104 INFO [STDOUT] at javax.security.auth.login.LoginContext.login(LoginContext.java:534) 15:39:07,104 INFO [STDOUT] at org.jboss.security.plugins.JaasSecurityManager.defaultLogin(JaasSecurityManager.java:483) 15:39:07,104 INFO [STDOUT] at org.jboss.security.plugins.JaasSecurityManager.authenticate(JaasSecurityManager.java:425) 15:39:07,104 INFO [STDOUT] at org.jboss.security.plugins.JaasSecurityManager.isValid(JaasSecurityManager.java:251) 15:39:07,104 INFO [STDOUT] at org.jboss.ejb.plugins.SecurityInterceptor.checkSecurityAssociation(SecurityInterceptor.java:180) 15:39:07,104 INFO [STDOUT] at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:129) 15:39:07,104 INFO [STDOUT] at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:185) 15:39:07,104 INFO [STDOUT] at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:48) 15:39:07,104 INFO [STDOUT] at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:105) 15:39:07,104 INFO [STDOUT] at org.jboss.ejb.plugins.AbstractTxInterceptorBMT.invokeNext(AbstractTxInterceptorBMT.java:153) 15:39:07,104 INFO [STDOUT] at org.jboss.ejb.plugins.TxInterceptorBMT.invoke(TxInterceptorBMT.java:62) 15:39:07,104 INFO [STDOUT] at org.jboss.ejb.plugins.StatefulSessionInstanceInterceptor.invoke(StatefulSessionInstanceInterceptor.java:297) 15:39:07,104 INFO [STDOUT] at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:192) 15:39:07,104 INFO [STDOUT] ... 34 more View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3888180#3888180 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3888180 ------------------------------------------------------- SF.Net email is sponsored by: Discover Easy Linux Migration Strategies from IBM. Find simple to follow Roadmaps, straightforward articles, informative Webcasts and more! Get everything you need to get up to speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click _______________________________________________ JBoss-user mailing list JBoss-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jboss-user