Hello guys, we tried to supply our custom JAAS LoginModule to OpenEJB. It works beautifully, I have just one question. When the OpenEJB is created (using the new InitialContext(properties) construct), it invokes this LoginModule and the handler supplies an empty string as an username in NameCallback. This isn't surprising though: I do not provide any username nor credentials to the InitialContext. What should I do? - should I expect empty string in LoginModule and throw LoginException? - or should I provide some username/password? This is probably rather weird as no ejb method is being called...
Thanks! Martin ps: please see attached stack trace for quick reference.
3:23:05,472 INFO [main service] Creating SecurityService(id=Default Security Service) javax.security.auth.login.LoginException: User '' doesn't exist at com.whitestein.abpm.security.DefaultAbpmLoginModule.login(DefaultAbpmLoginModule.java:158) 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:585) at javax.security.auth.login.LoginContext.invoke(LoginContext.java:769) at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186) at javax.security.auth.login.LoginContext$4.run(LoginContext.java:683) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680) at javax.security.auth.login.LoginContext.login(LoginContext.java:579) at org.apache.openejb.core.security.SecurityServiceImpl.login(SecurityServiceImpl.java:71) at org.apache.openejb.core.security.SecurityServiceImpl.login(SecurityServiceImpl.java:33) at org.apache.openejb.core.security.AbstractSecurityService.login(AbstractSecurityService.java:97) at org.apache.openejb.core.security.SecurityServiceImpl.<init>(SecurityServiceImpl.java:49) at org.apache.openejb.core.security.SecurityServiceImpl.<init>(SecurityServiceImpl.java:36) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:494) at org.apache.xbean.recipe.ReflectionUtil$ConstructorFactory.create(ReflectionUtil.java:673) at org.apache.xbean.recipe.ObjectRecipe.internalCreate(ObjectRecipe.java:268) at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:96) at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:61) at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:49) at org.apache.openejb.assembler.classic.Assembler.createSecurityService(Assembler.java:1025) at org.apache.openejb.assembler.classic.Assembler.buildContainerSystem(Assembler.java:324) at org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:250) at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:149) at org.apache.openejb.OpenEJB.init(OpenEJB.java:288) at org.apache.openejb.OpenEJB.init(OpenEJB.java:267) 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:585) at org.apache.openejb.loader.OpenEJBInstance.init(OpenEJBInstance.java:36) at org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:62) at org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:51) at org.apache.openejb.client.LocalInitialContextFactory.getInitialContext(LocalInitialContextFactory.java:40) at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667) at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247) at javax.naming.InitialContext.init(InitialContext.java:223) at javax.naming.InitialContext.<init>(InitialContext.java:197) ... snip ...
signature.asc
Description: This is a digitally signed message part