[jboss-user] [Security & JAAS/JBoss] - Re: Dynamic login config broken in JBoss 5 Beta4

jaikiran do-not-reply at jboss.com
Wed Sep 3 06:27:49 EDT 2008


I tried this on JBoss-5 CR1 and even JBoss-5 Beta4. Looks like something changed between Beta 4 and CR1. The application that works on Beta 4, does not work on CR1. However, i could get the application to work on CR1 too by placing the xml at a different location.

Here are the details. I have an EAR file which has a test-jboss-service.xml, a dynamic-login-config.xml, a jboss-app.xml and a WAR file. For JBoss-5 Beta 4, here's the EAR contents:

  | ZEJB3Persistence.ear
  |  |
  |  |--- META-INF
  |  |	|
  |  |	|--- application.xml
  |  |	|
  |  |	|--- jboss-app.xml
  |  |
  |  |
  |  |--- test-jboss-service.xml
  |  |
  |  |
  |  |--- MyApp.war
  |  |	|
  |  |	|--- WEB-INF
  |  |	|	|
  |  |	|	|--- classes
  |  |	|	|	|
  |  |	|	|	|--- dynamic-login-config.xml
  |  
  |   
  |  

The dynamic-login-config.xml was in the EAR/WAR/WEB-INF/classes folder. The jboss-app.xml pointed to the service file:

  | <jboss-app>
  | 
  |   <module>
  |      <service>test-jboss-service.xml</service>
  |  </module>
  | </jboss-app>

The test-jboss-service.xml looks like:

<server>
  |   <mbean code="org.jboss.security.auth.login.DynamicLoginConfig"
  |          name="jboss:service=DynamicLoginConfig">
  |     <attribute name="AuthConfig">dynamic-login-config.xml</attribute>
  |     <depends optional-attribute-name="LoginConfigService">jboss.security:service=XMLLoginConfig</depends>    
  |     <depends optional-attribute-name="SecurityManagerService">jboss.security:service=JaasSecurityManager</depends>
  |   </mbean>
  | </server>
  | 

This worked without any issues in Beta 4. I could see this in the server.log:

  | 2008-09-03 15:00:55,733 DEBUG [org.jboss.system.ServiceConfigurator] AuthConfig set to dynamic-login-config.xml in jboss:service=DynamicLoginConfig
  | 2008-09-03 15:00:55,733 DEBUG [org.jboss.system.ServiceConfigurator] LoginConfigService set to jboss.security:service=XMLLoginConfig in jboss:service=DynamicLoginConfig
  | 2008-09-03 15:00:55,733 DEBUG [org.jboss.system.ServiceConfigurator] SecurityManagerService set to jboss.security:service=JaasSecurityManager in jboss:service=DynamicLoginConfig
  | 2008-09-03 15:00:55,733 DEBUG [org.jboss.system.ServiceController] Creating service jboss:service=DynamicLoginConfig
  | 2008-09-03 15:00:55,733 DEBUG [org.jboss.security.auth.login.DynamicLoginConfig] Creating jboss:service=DynamicLoginConfig
  | 2008-09-03 15:00:55,733 DEBUG [org.jboss.security.auth.login.DynamicLoginConfig] Created jboss:service=DynamicLoginConfig
  | 2008-09-03 15:00:55,733 DEBUG [org.jboss.system.ServiceController] starting service jboss:service=DynamicLoginConfig
  | 2008-09-03 15:00:55,733 DEBUG [org.jboss.security.auth.login.DynamicLoginConfig] Starting jboss:service=DynamicLoginConfig
  | 2008-09-03 15:00:55,858 DEBUG [org.jboss.security.auth.login.DynamicLoginConfig] Using JAAS AuthConfig: vfsfile:/D:/jboss-5.0.0.Beta4/server/jaikiran/deploy/ZEJB3Persistence.ear/myapp.war/WEB-INF/classes/dynamic-login-config.xml
  | 2008-09-03 15:00:55,858 DEBUG [org.jboss.security.auth.login.XMLLoginConfigImpl] Try loading config as XML, url=vfsfile:/D:/jboss-5.0.0.Beta4/server/jaikiran/deploy/ZEJB3Persistence.ear/myapp.war/WEB-INF/classes/dynamic-login-config.xml
  | 2008-09-03 15:00:55,858 DEBUG [org.jboss.xb.binding.parser.sax.SaxJBossXBParser] Created parser: org.apache.xerces.jaxp.SAXParserImpl at f7b18, isNamespaceAware: true, isValidating: true, isXIncludeAware: true
  | 2008-09-03 15:00:55,858 DEBUG [org.jboss.xb.binding.parser.sax.SaxJBossXBParser] http://xml.org/sax/features/validation set to: true
  | 2008-09-03 15:00:55,858 DEBUG [org.jboss.xb.binding.parser.sax.SaxJBossXBParser] http://xml.org/sax/features/namespaces set to: true
  | 2008-09-03 15:00:55,858 DEBUG [org.jboss.xb.binding.parser.sax.SaxJBossXBParser] http://apache.org/xml/features/validation/dynamic set to: true
  | 2008-09-03 15:00:55,858 DEBUG [org.jboss.xb.binding.parser.sax.SaxJBossXBParser] Created parser: org.apache.xerces.jaxp.SAXParserImpl at f7b18, isNamespaceAware: true, isValidating: true, isXIncludeAware: true
  | 2008-09-03 15:00:55,858 DEBUG [org.jboss.security.auth.login.DynamicLoginConfig] Loaded config: simple-security-domain
  | 2008-09-03 15:00:55,858 DEBUG [org.jboss.security.auth.login.DynamicLoginConfig] Started jboss:service=DynamicLoginConfig
  | 

This same application fails with the following exception on JBoss 5 CR1:

  | 15:24:02,470 ERROR [AbstractKernelController] Error installing to Start: name=jboss:service=DynamicLoginConfig state=Create mode=Manual requiredState=Installed
  | org.jboss.deployment.DeploymentException: Failed to find authConf as resource: dynamic-login-config.xml
  |         at org.jboss.security.auth.login.DynamicLoginConfig.startService(DynamicLoginConfig.java:236)
  |         at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:376)
  |         at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:322)
  |         at sun.reflect.GeneratedMethodAccessor65.invoke(Unknown Source)
  |         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |         at java.lang.reflect.Method.invoke(Method.java:585)
  |         at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)
  |         at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)
  |         at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
  |         at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
  |         at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
  |         at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:189)
  |         at $Proxy35.start(Unknown Source)
  |         at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:42)
  |         at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:37)
  |         at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62)
  |         at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71)
  |         at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
  |         at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
  |         at org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerContext.java:271)
  |         at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1392)
  |         at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:784)
  |         at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:912)
  |         at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:834)
  |         at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:672)
  |         at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:455)
  |         at org.jboss.system.ServiceController.doChange(ServiceController.java:664)
  |         at org.jboss.system.ServiceController.start(ServiceController.java:436)
  |         at org.jboss.system.microcontainer.jmx.ServiceControllerStartStopLifecycleCallback.install(ServiceControllerStartStopLifecycleCallback.java:44)
  |         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.jboss.reflect.plugins.introspection.ReflectionUtils.invoke(ReflectionUtils.java:56)
  |         at org.jboss.reflect.plugins.introspection.ReflectMethodInfoImpl.invoke(ReflectMethodInfoImpl.java:110)
  |         at org.jboss.joinpoint.plugins.BasicMethodJoinPoint.dispatch(BasicMethodJoinPoint.java:66)
  |         at org.jboss.beans.info.plugins.AbstractBeanInfo.invoke(AbstractBeanInfo.java:300)
  |         at org.jboss.kernel.plugins.dependency.AbstractKernelControllerContext.invoke(AbstractKernelControllerContext.java:279)
  |         at org.jboss.dependency.plugins.AbstractLifecycleCallbackItem.install(AbstractLifecycleCallbackItem.java:87)
  |         at org.jboss.dependency.plugins.AbstractController.handleLifecycleCallbacks(AbstractController.java:1326)
  |         at org.jboss.dependency.plugins.AbstractController.handleInstallLifecycleCallbacks(AbstractController.java:1293)
  |         at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:793)
  |         at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:912)
  |         at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:834)
  |         at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:624)
  |         at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:442)
  |         at org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer.deploy(BeanMetaDataDeployer.java:88)
  |         at org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer.deploy(BeanMetaDataDeployer.java:46)
  |         at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:62)
  |         at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50)
  |         at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:174)
  |         at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:970)
  |         at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:991)
  |         at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:911)
  |         at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
  |         at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1392)
  |         at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:784)
  |         at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:912)
  |         at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:834)
  |         at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:672)
  |         at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:455)
  |         at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:594)
  |         at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:541)
  |         at org.jboss.system.server.profileservice.ProfileServiceBootstrap.loadProfile(ProfileServiceBootstrap.java:257)
  |         at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:135)
  |         at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:409)
  |         at org.jboss.Main.boot(Main.java:209)
  |         at org.jboss.Main$1.run(Main.java:544)
  |         at java.lang.Thread.run(Thread.java:595)


"anil.saldhana at jboss.com" wrote : For an ear, if you have a war underneath the resource(xml file) can be under WEB-INF/classes. If not, you can have ear/lib/somejar/xyz.xml or you will need to use the manifest to define classpath entries.
  | 
  | For an ear, the classpath will not include the root of the ear. Hence META-INF/xyz.xml will not be detected. ear->lib, ear->war->WEB-INF/classes are on the classpath.

In CR1, i then moved the dynamic-login-config.xml to the EAR/lib folder. Even that did not work. Failed with the same error.

Finally, to get this working, i moved the dynamic-login-config.xml to the root of the EAR:

  | ZEJB3Persistence.ear
  |  |
  |  |--- META-INF
  |  |	|
  |  |	|--- application.xml
  |  |	|
  |  |	|--- jboss-app.xml
  |  |
  |  |
  |  |--- test-jboss-service.xml
  |  |
  |  |--- dynamic-login-config.xml
  |  |
  |  |
  |  |--- MyApp.war
  |  |	|
  |  |	|--- WEB-INF
  |  |	|	|
  |  |	|	|--- classes
  |  
 
This worked in CR1. Here are the logs which show that the dynamic-login-config.xml got picked up from the root of the EAR:

2008-09-03 15:27:12,958 DEBUG [org.jboss.system.ServiceCreator]  About to create bean: jboss:service=DynamicLoginConfig with code: org.jboss.security.auth.login.DynamicLoginConfig
  | 2008-09-03 15:27:12,958 DEBUG [org.jboss.system.ServiceCreator]  Created mbean: jboss:service=DynamicLoginConfig
  | 2008-09-03 15:27:12,958 DEBUG [org.jboss.system.ServiceConfigurator]  AuthConfig set to dynamic-login-config.xml in jboss:service=DynamicLoginConfig
  | 2008-09-03 15:27:12,958 DEBUG [org.jboss.system.ServiceConfigurator]  LoginConfigService set to jboss.security:service=XMLLoginConfig in jboss:service=DynamicLoginConfig
  | 2008-09-03 15:27:12,958 DEBUG [org.jboss.system.ServiceConfigurator]  SecurityManagerService set to jboss.security:service=JaasSecurityManager in jboss:service=DynamicLoginConfig
  | 2008-09-03 15:27:12,958 DEBUG [org.jboss.system.ServiceController]  Creating service jboss:service=DynamicLoginConfig
  | 2008-09-03 15:27:12,958 DEBUG [org.jboss.security.auth.login.DynamicLoginConfig]  Creating jboss:service=DynamicLoginConfig
  | 2008-09-03 15:27:12,958 DEBUG [org.jboss.security.auth.login.DynamicLoginConfig]  Created jboss:service=DynamicLoginConfig
  | 2008-09-03 15:27:12,958 DEBUG [org.jboss.system.ServiceController]  starting service jboss:service=DynamicLoginConfig
  | 2008-09-03 15:27:12,958 DEBUG [org.jboss.security.auth.login.DynamicLoginConfig]  Starting jboss:service=DynamicLoginConfig
  | 2008-09-03 15:27:12,974 DEBUG [org.jboss.security.auth.login.DynamicLoginConfig]  Using JAAS AuthConfig: vfsfile:/D:/jboss-5.0.0.CR1/server/jaikiran/deploy/ZEJB3Persistence.ear/dynamic-login-config.xml
  | 2008-09-03 15:27:12,974 DEBUG [org.jboss.security.auth.login.XMLLoginConfigImpl]  Try loading config as XML, url=vfsfile:/D:/jboss-5.0.0.CR1/server/jaikiran/deploy/ZEJB3Persistence.ear/dynamic-login-config.xml
  | 2008-09-03 15:27:12,974 DEBUG [org.jboss.xb.binding.parser.sax.SaxJBossXBParser]  Created parser: org.apache.xerces.jaxp.SAXParserImpl at 14d25c6, isNamespaceAware: true, isValidating: true, isXIncludeAware: true
  | 2008-09-03 15:27:12,974 DEBUG [org.jboss.xb.binding.parser.sax.SaxJBossXBParser]  http://xml.org/sax/features/validation set to: true
  | 2008-09-03 15:27:12,974 DEBUG [org.jboss.xb.binding.parser.sax.SaxJBossXBParser]  http://xml.org/sax/features/namespaces set to: true
  | 2008-09-03 15:27:12,974 DEBUG [org.jboss.xb.binding.parser.sax.SaxJBossXBParser]  http://apache.org/xml/features/validation/dynamic set to: true
  | 2008-09-03 15:27:12,974 DEBUG [org.jboss.xb.binding.parser.sax.SaxJBossXBParser]  Created parser: org.apache.xerces.jaxp.SAXParserImpl at 14d25c6, isNamespaceAware: true, isValidating: true, isXIncludeAware: true
  | 2008-09-03 15:27:12,974 DEBUG [org.jboss.security.auth.login.DynamicLoginConfig]  Loaded config: simple-security-domain
  | 2008-09-03 15:27:12,974 DEBUG [org.jboss.security.auth.login.DynamicLoginConfig]  Started jboss:service=DynamicLoginConfig
  | 

 



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

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4173909



More information about the jboss-user mailing list