6 Replies Latest reply on Feb 19, 2004 4:05 PM by Ken Hohl

    how to configure to use custom AuthenticationManager and Rea

    Ken Hohl Newbie

      I'm new to JBoss and I'm trying to port custom security our application currently uses on both WebLogic and WebSphere. I've implemented AuthenticationManager and RealmMapping but I can't figure out how to configure JBoss to use the class that implements them. When I change the SecurityManagerClassname to my class in the JaasSecurityManagerService MBean I get a NoClassDefFoundError for org/jboss/security/AuthenticationManager which I don't understand since that's a JBoss class that I would think JBoss could find.

      I'm using version 3.2.3 on Win2k with Sun's 1.3.1_01 JDK.

        • 1. Re: how to configure to use custom AuthenticationManager and
          Scott Stark Master

          And how is your security manager class made available to JBoss?

          • 2. Re: how to configure to use custom AuthenticationManager and
            Ken Hohl Newbie

            I don't think I understand the question. That's exactly what I'm asking - how to configure JBoss to use my implementations of these interfaces.

            • 3. Re: how to configure to use custom AuthenticationManager and
              Scott Stark Master

              You custom class has to be made available to the JBoss server. Stick it in a jar and drop it in the server/xxx/lib directory.

              • 4. Re: how to configure to use custom AuthenticationManager and
                Ken Hohl Newbie

                Thanks - I tried that but I still have problems -

                1) My security realm depends on some DLLs so I set -Djava.library.path=<dir where the DLLs are> but they still were not found until I copied them into my \bin dir. That's not very clean. Is there a better way?

                2) I then got an error relating to the correct type of constructor in my realm not being found until I added one with this signature -
                public SecurityRealm(String domainName, javax.security.auth.callback.CallbackHandler handler);
                which I got from JaasSecurityManager. Is this really necessary? I'm not using JAAS so if it is, I'm not sure what the implications are. I currently ignore the 2nd param.

                3) I then got a class cast exception when the realm was initially constructed until I changed it to implement SubjectSecurityManager instead of AuthenticationManager. Is that really necessary? That wasn't obvious from the documentation. If it is necessary, how do I implement getActiveSubject() and what do I do with the Subject passed to isValid(Principal,Object,Subject)?

                4) I currently just save the Subject passed to isValid() and and return it in calls to getActiveSubject(). I assume this isn't correct and may be causing the next issue which is that I get the following java.lang.SecurityException: Invalid authentication attempt, principal=null on startup -

                2004-02-13 14:57:03,122 INFO [org.jboss.security.plugins.JaasSecurityManagerService] Created securityMgr=SecurityRealm:com.apropos.api.jboss.SecurityRealm@76f2e8
                2004-02-13 14:57:03,633 INFO [org.jboss.security.plugins.JaasSecurityManagerService] Added HsqlDbRealm, org.jboss.security.plugins.SecurityDomainContext@66696c to map
                2004-02-13 14:57:04,113 INFO [org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.DefaultDS] Bound connection factory for resource adapter for ConnectionManager 'jboss.jca:service=LocalTxCM,name=DefaultDS to JNDI name 'java:/DefaultDS'
                2004-02-13 14:57:04,113 INFO [org.jboss.resource.connectionmanager.TxConnectionManager] Started jboss.jca:service=LocalTxCM,name=DefaultDS
                2004-02-13 14:57:04,184 ERROR [org.jboss.mq.pm.jdbc2.PersistenceManager] Starting failed
                java.lang.SecurityException: Invalid authentication attempt, principal=null
                at org.jboss.resource.connectionmanager.BaseConnectionManager2.getSubject(BaseConnectionManager2.java:647)
                at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:476)
                at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:814)
                at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:102)
                at org.jboss.mq.pm.jdbc2.PersistenceManager.getConnection(PersistenceManager.java:1266)
                at org.jboss.mq.pm.jdbc2.PersistenceManager.resolveAllUncommitedTXs(PersistenceManager.java:216)

                5) Last issue is that I see my realm being constructed twice but I need only a single instance to exist. Why is this and what can I do to ensure only a single instance exists?

                • 5. Re: how to configure to use custom AuthenticationManager and
                  Scott Stark Master

                  1) You need to do whatever it takes to make the dlls available on your
                  platform. This typically requires them to be in the path of the os.
                  Dlls suck, maybe you can introduce an ipc mechanism that can work
                  with a pure java side.

                  2) If your not using JAAS the CallbackHandler can be ignored.

                  3) SubjectSecurityManager is now the required interface as the JAAS Subject
                  is the standard representation of the authenticated identity.

                  4) You need to have a Subject representation. This needs to be populated
                  following the contract defined in chap 8 of the admin/devel guide. Everything
                  uses the security manager so you have to be able to deal with all of
                  the authentication requests. The JCA layer which you are showing here expects
                  some JCA specific info to be added to the Subject. If your going to replace
                  the security manager you either need to throw out layer you don't need, or
                  think about a delegation strategy.

                  5) Show the stack traces for the two creation attempts.

                  • 6. Re: how to configure to use custom AuthenticationManager and
                    Ken Hohl Newbie

                    Thanks again for the additional information. I'm still having troubles I can't find answers for in the documentation -

                    3) Back to my original question here - what should the implementation of getActiveSubject() do? Do I need to do something like maintain a Map of thread names to Subjects and return the matching Subject for the thread when called? I assume isValid() should populate the Subject parameter with Principals and credentials (including the ones passed in) if the Principal and credential are valid. Let me know if I've got that wrong.

                    4) Sorry but I must be missing the defined contract you refer to in Chap 8 - what are the contract details? What do you recommend I do for dealing with authentication requests I don't care about, and how do I recognize those I don't care about? In this case of JCA, null is being passed in for both the Principal and credential and I assume that isn't valid and return false. Apparently, it is valid and I must either return true and populate the Subject with something (I don't know what), or somehow delegate this request to JaasSecurityManager but I'm not sure how.

                    5) Below is the a log excerpt showing 2 attempts to instantiate my security manager -

                    2004-02-18 16:38:29,133 INFO [ComponentServer] JBOSS_ServerLogger: isTraceEnabled() = true, isDebugEnabled() = true
                    2004-02-18 16:38:29,364 INFO [STDOUT] ComponentServer 6.0.1 - 0222 2004.02.13 - 24
                    2004-02-18 16:38:29,364 INFO [STDOUT] Copyright (c) 1997-2003 by Apropos Technology, Inc. All Rights Reserved.
                    2004-02-18 16:38:29,694 INFO [ComponentServer] null: updated [ReplyTimeout] managed element
                    2004-02-18 16:38:29,804 INFO [ComponentServerSecurity] JBOSS_ServerLogger: isTraceEnabled() = true, isDebugEnabled() = true
                    2004-02-18 16:38:29,804 TRACE [ComponentServerSecurity] AproposSecurity called
                    2004-02-18 16:38:31,437 TRACE [ComponentServerSecurity] SecurityRealm called
                    2004-02-18 16:38:31,437 TRACE [ComponentServerSecurity] SecurityRealm: creating new group [ASSIGNMENTS]
                    2004-02-18 16:38:31,497 INFO [org.jboss.security.plugins.JaasSecurityManagerService] Created securityMgr=SecurityRealm:com.apropos.api.jboss.SecurityRealm@458dcb
                    2004-02-18 16:38:31,547 INFO [org.jboss.security.plugins.JaasSecurityManagerService] Added HsqlDbRealm, org.jboss.security.plugins.SecurityDomainContext@135133 to map
                    2004-02-18 16:38:31,577 INFO [org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.DefaultDS] Bound connection factory for resource adapter for ConnectionManager 'jboss.jca:service=LocalTxCM,name=DefaultDS to JNDI name 'java:/DefaultDS'
                    2004-02-18 16:38:31,577 INFO [org.jboss.resource.connectionmanager.TxConnectionManager] Started jboss.jca:service=LocalTxCM,name=DefaultDS
                    2004-02-18 16:38:31,647 TRACE [ComponentServerSecurity] SecurityRealm.isValid called - principal[null], credential[null],activeSubject[Subject(Principals{}PublicCredentials{}PrivateCredentials{count=0})]
                    2004-02-18 16:38:31,647 TRACE [ComponentServerSecurity] SecurityRealm.isValid called - principal[null], credential[null]
                    2004-02-18 16:38:31,707 WARN [org.jboss.resource.connectionmanager.JBossManagedConnectionPool] Throwable while attempting to get a new connection:
                    org.jboss.resource.JBossResourceException: No matching credentials in Subject!
                    at org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnectionFactory.getConnectionProperties(BaseWrapperManagedConnectionFactory.java:389)
                    at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalManagedConnectionFactory.java:137)
                    at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.createConnectionEventListener(InternalManagedConnectionPool.java:477)
                    at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.getConnection(InternalManagedConnectionPool.java:213)
                    at org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BasePool.getConnection(JBossManagedConnectionPool.java:496)
                    at org.jboss.resource.connectionmanager.BaseConnectionManager2.getManagedConnection(BaseConnectionManager2.java:425)
                    at org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.java:318)
                    at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:477)
                    at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:814)
                    at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:102)
                    at org.jboss.mq.pm.jdbc2.PersistenceManager.getConnection(PersistenceManager.java:1266)
                    at org.jboss.mq.pm.jdbc2.PersistenceManager.resolveAllUncommitedTXs(PersistenceManager.java:216)
                    at org.jboss.mq.pm.jdbc2.PersistenceManager.startService(PersistenceManager.java:1356)
                    at org.jboss.system.ServiceMBeanSupport.start(ServiceMBeanSupport.java:192)
                    at java.lang.reflect.Method.invoke(Native Method)
                    at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
                    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:546)
                    at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:976)
                    at $Proxy14.start(Unknown Source)
                    at org.jboss.system.ServiceController.start(ServiceController.java:394)
                    at org.jboss.system.ServiceController.start(ServiceController.java:411)
                    at org.jboss.system.ServiceController.start(ServiceController.java:411)
                    at java.lang.reflect.Method.invoke(Native Method)
                    at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
                    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:546)
                    at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:177)
                    at $Proxy4.start(Unknown Source)
                    at org.jboss.deployment.SARDeployer.start(SARDeployer.java:226)
                    at org.jboss.deployment.MainDeployer.start(MainDeployer.java:832)
                    at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:642)
                    at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:605)
                    at java.lang.reflect.Method.invoke(Native Method)
                    at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
                    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:546)
                    at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:177)
                    at $Proxy6.deploy(Unknown Source)
                    at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:302)
                    at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:476)
                    at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:201)
                    at org.jboss.deployment.scanner.AbstractDeploymentScanner.startService(AbstractDeploymentScanner.java:274)
                    at org.jboss.system.ServiceMBeanSupport.start(ServiceMBeanSupport.java:192)
                    at java.lang.reflect.Method.invoke(Native Method)
                    at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
                    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:546)
                    at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:976)
                    at $Proxy0.start(Unknown Source)
                    at org.jboss.system.ServiceController.start(ServiceController.java:394)
                    at java.lang.reflect.Method.invoke(Native Method)
                    at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
                    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:546)
                    at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:177)
                    at $Proxy4.start(Unknown Source)
                    at org.jboss.deployment.SARDeployer.start(SARDeployer.java:226)
                    at org.jboss.deployment.MainDeployer.start(MainDeployer.java:832)
                    at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:642)
                    at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:605)
                    at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:589)
                    at java.lang.reflect.Method.invoke(Native Method)
                    at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
                    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:546)
                    at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:177)
                    at $Proxy5.deploy(Unknown Source)
                    at org.jboss.system.server.ServerImpl.doStart(ServerImpl.java:384)
                    at org.jboss.system.server.ServerImpl.start(ServerImpl.java:291)
                    at org.jboss.Main.boot(Main.java:150)
                    at org.jboss.Main$1.run(Main.java:395)
                    at java.lang.Thread.run(Thread.java:484)
                    2004-02-18 16:38:33,289 TRACE [ComponentServerSecurity] SecurityRealm.isValid called - principal[null], credential[null],activeSubject[Subject(Principals{}PublicCredentials{}PrivateCredentials{count=0})]
                    2004-02-18 16:38:33,289 TRACE [ComponentServerSecurity] SecurityRealm.isValid called - principal[null], credential[null]
                    2004-02-18 16:38:33,289 ERROR [org.jboss.mq.pm.jdbc2.PersistenceManager] Starting failed
                    java.lang.ClassCastException: com.apropos.api.jboss.PrincipalImpl
                    at com.apropos.api.jboss.PrincipalImpl.equals(PrincipalImpl.java:25)
                    at java.util.AbstractCollection.contains(AbstractCollection.java:99)
                    at java.util.AbstractCollection.containsAll(AbstractCollection.java:284)
                    at java.util.AbstractSet.equals(AbstractSet.java:73)
                    at javax.security.auth.Subject.equals(Subject.java:97)
                    at org.jboss.resource.connectionmanager.JBossManagedConnectionPool$SubjectKey.equals(JBossManagedConnectionPool.java:755)
                    at java.util.HashMap.get(HashMap.java:269)
                    at org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BasePool.getPool(JBossManagedConnectionPool.java:609)
                    at org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BasePool.getConnection(JBossManagedConnectionPool.java:495)
                    at org.jboss.resource.connectionmanager.BaseConnectionManager2.getManagedConnection(BaseConnectionManager2.java:425)
                    at org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.java:318)
                    at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:477)
                    at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:814)
                    at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:102)
                    at org.jboss.mq.pm.jdbc2.PersistenceManager.getConnection(PersistenceManager.java:1266)
                    at org.jboss.mq.pm.jdbc2.PersistenceManager.resolveAllUncommitedTXs(PersistenceManager.java:216)
                    at org.jboss.mq.pm.jdbc2.PersistenceManager.startService(PersistenceManager.java:1356)
                    at org.jboss.system.ServiceMBeanSupport.start(ServiceMBeanSupport.java:192)
                    at java.lang.reflect.Method.invoke(Native Method)
                    at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
                    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:546)
                    at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:976)
                    at $Proxy14.start(Unknown Source)
                    at org.jboss.system.ServiceController.start(ServiceController.java:394)
                    at org.jboss.system.ServiceController.start(ServiceController.java:411)
                    at org.jboss.system.ServiceController.start(ServiceController.java:411)
                    at java.lang.reflect.Method.invoke(Native Method)
                    at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
                    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:546)
                    at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:177)
                    at $Proxy4.start(Unknown Source)
                    at org.jboss.deployment.SARDeployer.start(SARDeployer.java:226)
                    at org.jboss.deployment.MainDeployer.start(MainDeployer.java:832)
                    at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:642)
                    at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:605)
                    at java.lang.reflect.Method.invoke(Native Method)
                    at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
                    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:546)
                    at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:177)
                    at $Proxy6.deploy(Unknown Source)
                    at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:302)
                    at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:476)
                    at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:201)
                    at org.jboss.deployment.scanner.AbstractDeploymentScanner.startService(AbstractDeploymentScanner.java:274)
                    at org.jboss.system.ServiceMBeanSupport.start(ServiceMBeanSupport.java:192)
                    at java.lang.reflect.Method.invoke(Native Method)
                    at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
                    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:546)
                    at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:976)
                    at $Proxy0.start(Unknown Source)
                    at org.jboss.system.ServiceController.start(ServiceController.java:394)
                    at java.lang.reflect.Method.invoke(Native Method)
                    at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
                    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:546)
                    at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:177)
                    at $Proxy4.start(Unknown Source)
                    at org.jboss.deployment.SARDeployer.start(SARDeployer.java:226)
                    at org.jboss.deployment.MainDeployer.start(MainDeployer.java:832)
                    at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:642)
                    at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:605)
                    at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:589)
                    at java.lang.reflect.Method.invoke(Native Method)
                    at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
                    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:546)
                    at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:177)
                    at $Proxy5.deploy(Unknown Source)
                    at org.jboss.system.server.ServerImpl.doStart(ServerImpl.java:384)
                    at org.jboss.system.server.ServerImpl.start(ServerImpl.java:291)
                    at org.jboss.Main.boot(Main.java:150)
                    at org.jboss.Main$1.run(Main.java:395)
                    at java.lang.Thread.run(Thread.java:484)
                    2004-02-18 16:38:33,299 WARN [org.jboss.system.ServiceController] Problem starting service jboss.mq:service=PersistenceManager
                    java.lang.ClassCastException: com.apropos.api.jboss.PrincipalImpl
                    at com.apropos.api.jboss.PrincipalImpl.equals(PrincipalImpl.java:25)
                    at java.util.AbstractCollection.contains(AbstractCollection.java:99)
                    at java.util.AbstractCollection.containsAll(AbstractCollection.java:284)
                    at java.util.AbstractSet.equals(AbstractSet.java:73)
                    at javax.security.auth.Subject.equals(Subject.java:97)
                    at org.jboss.resource.connectionmanager.JBossManagedConnectionPool$SubjectKey.equals(JBossManagedConnectionPool.java:755)
                    at java.util.HashMap.get(HashMap.java:269)
                    at org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BasePool.getPool(JBossManagedConnectionPool.java:609)
                    at org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BasePool.getConnection(JBossManagedConnectionPool.java:495)
                    at org.jboss.resource.connectionmanager.BaseConnectionManager2.getManagedConnection(BaseConnectionManager2.java:425)
                    at org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.java:318)
                    at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:477)
                    at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:814)
                    at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:102)
                    at org.jboss.mq.pm.jdbc2.PersistenceManager.getConnection(PersistenceManager.java:1266)
                    at org.jboss.mq.pm.jdbc2.PersistenceManager.resolveAllUncommitedTXs(PersistenceManager.java:216)
                    at org.jboss.mq.pm.jdbc2.PersistenceManager.startService(PersistenceManager.java:1356)
                    at org.jboss.system.ServiceMBeanSupport.start(ServiceMBeanSupport.java:192)
                    at java.lang.reflect.Method.invoke(Native Method)
                    at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
                    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:546)
                    at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:976)
                    at $Proxy14.start(Unknown Source)
                    at org.jboss.system.ServiceController.start(ServiceController.java:394)
                    at org.jboss.system.ServiceController.start(ServiceController.java:411)
                    at org.jboss.system.ServiceController.start(ServiceController.java:411)
                    at java.lang.reflect.Method.invoke(Native Method)
                    at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
                    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:546)
                    at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:177)
                    at $Proxy4.start(Unknown Source)
                    at org.jboss.deployment.SARDeployer.start(SARDeployer.java:226)
                    at org.jboss.deployment.MainDeployer.start(MainDeployer.java:832)
                    at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:642)
                    at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:605)
                    at java.lang.reflect.Method.invoke(Native Method)
                    at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
                    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:546)
                    at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:177)
                    at $Proxy6.deploy(Unknown Source)
                    at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:302)
                    at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:476)
                    at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:201)
                    at org.jboss.deployment.scanner.AbstractDeploymentScanner.startService(AbstractDeploymentScanner.java:274)
                    at org.jboss.system.ServiceMBeanSupport.start(ServiceMBeanSupport.java:192)
                    at java.lang.reflect.Method.invoke(Native Method)
                    at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
                    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:546)
                    at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:976)
                    at $Proxy0.start(Unknown Source)
                    at org.jboss.system.ServiceController.start(ServiceController.java:394)
                    at java.lang.reflect.Method.invoke(Native Method)
                    at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
                    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:546)
                    at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:177)
                    at $Proxy4.start(Unknown Source)
                    at org.jboss.deployment.SARDeployer.start(SARDeployer.java:226)
                    at org.jboss.deployment.MainDeployer.start(MainDeployer.java:832)
                    at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:642)
                    at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:605)
                    at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:589)
                    at java.lang.reflect.Method.invoke(Native Method)
                    at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
                    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:546)
                    at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:177)
                    at $Proxy5.deploy(Unknown Source)
                    at org.jboss.system.server.ServerImpl.doStart(ServerImpl.java:384)
                    at org.jboss.system.server.ServerImpl.start(ServerImpl.java:291)
                    at org.jboss.Main.boot(Main.java:150)
                    at org.jboss.Main$1.run(Main.java:395)
                    at java.lang.Thread.run(Thread.java:484)
                    2004-02-18 16:38:33,349 INFO [ComponentServerSecurity] JBOSS_ServerLogger: isTraceEnabled() = true, isDebugEnabled() = true
                    2004-02-18 16:38:33,349 TRACE [ComponentServerSecurity] AproposSecurity called
                    2004-02-18 16:38:33,540 TRACE [ComponentServerSecurity] SecurityRealm called
                    2004-02-18 16:38:33,540 TRACE [ComponentServerSecurity] SecurityRealm: creating new group [ASSIGNMENTS]
                    2004-02-18 16:38:33,580 INFO [org.jboss.security.plugins.JaasSecurityManagerService] Created securityMgr=SecurityRealm:com.apropos.api.jboss.SecurityRealm@383048
                    2004-02-18 16:38:33,580 INFO [org.jboss.security.plugins.JaasSecurityManagerService] Added JmsXARealm, org.jboss.security.plugins.SecurityDomainContext@69dd64 to map
                    2004-02-18 16:38:33,610 INFO [org.jboss.resource.adapter.jms.JmsManagedConnectionFactory.JmsXA] Bound connection factory for resource adapter for ConnectionManager 'jboss.jca:service=TxCM,name=JmsXA to JNDI name 'java:/JmsXA'
                    2004-02-18 16:38:33,610 INFO [org.jboss.resource.connectionmanager.TxConnectionManager] Started jboss.jca:service=TxCM,name=JmsXA
                    2004-02-18 16:38:33,630 INFO [org.jboss.deployment.MainDeployer] Deployed package: file:/C:/JBoss/jboss-3.2.3/jboss-3.2.3/server/default/deploy/transaction-service.xml
                    2004-02-18 16:38:33,630 INFO [org.jboss.deployment.MainDeployer] Starting deployment of package: file:/C:/JBoss/jboss-3.2.3/jboss-3.2.3/server/default/deploy/user-service.xml
                    2004-02-18 16:38:33,750 INFO [org.jboss.deployment.MainDeployer] Deployed package: file:/C:/JBoss/jboss-3.2.3/jboss-3.2.3/server/default/deploy/user-service.xml
                    2004-02-18 16:38:33,750 INFO [org.jboss.deployment.MainDeployer] Starting deployment of package: file:/C:/JBoss/jboss-3.2.3/jboss-3.2.3/server/default/deploy/jmx-console.war/
                    2004-02-18 16:38:34,140 INFO [org.jboss.web.tomcat.tc4.EmbeddedTomcatService] deploy, ctxPath=/jmx-console, warUrl=file:/C:/JBoss/jboss-3.2.3/jboss-3.2.3/server/default/deploy/jmx-console.war/
                    2004-02-18 16:38:34,581 INFO [org.jboss.web.localhost.Engine] SingleSignOnContextConfig[/jmx-console]: Added certificates -> request attribute Valve
                    2004-02-18 16:38:34,631 WARN [org.jboss.web.tomcat.tc4.EmbeddedTomcatService] Unable to invoke setDelegate on class loader:org.jboss.web.tomcat.tc4.WebCtxLoader$ENCLoader@1dca26
                    2004-02-18 16:38:34,631 INFO [org.jboss.web.localhost.Engine] StandardManager[/jmx-console]: Seeding random number generator class java.security.SecureRandom
                    2004-02-18 16:38:34,631 INFO [org.jboss.web.localhost.Engine] StandardManager[/jmx-console]: Seeding of random number generator has been completed
                    2004-02-18 16:38:34,631 INFO [org.jboss.web.localhost.Engine] StandardWrapper[/jmx-console:default]: Loading container servlet default
                    2004-02-18 16:38:34,641 INFO [org.jboss.web.localhost.Engine] StandardWrapper[/jmx-console:invoker]: Loading container servlet invoker
                    2004-02-18 16:38:36,814 INFO [org.jboss.deployment.MainDeployer] Deployed package: file:/C:/JBoss/jboss-3.2.3/jboss-3.2.3/server/default/deploy/jmx-console.war/
                    2004-02-18 16:38:36,814 INFO [org.jboss.deployment.MainDeployer] Starting deployment of package: file:/C:/JBoss/jboss-3.2.3/jboss-3.2.3/server/default/deploy/management/web-console.war
                    2004-02-18 16:38:38,316 INFO [org.jboss.web.tomcat.tc4.EmbeddedTomcatService] deploy, ctxPath=/web-console, warUrl=file:/C:/JBoss/jboss-3.2.3/jboss-3.2.3/server/default/tmp/deploy/tmp36213web-console.war/
                    2004-02-18 16:38:38,807 INFO [org.jboss.web.localhost.Engine] SingleSignOnContextConfig[/web-console]: Added certificates -> request attribute Valve
                    2004-02-18 16:38:38,857 WARN [org.jboss.web.tomcat.tc4.EmbeddedTomcatService] Unable to invoke setDelegate on class loader:org.jboss.web.tomcat.tc4.WebCtxLoader$ENCLoader@5b38a4
                    2004-02-18 16:38:38,867 INFO [org.jboss.web.localhost.Engine] StandardManager[/web-console]: Seeding random number generator class java.security.SecureRandom
                    2004-02-18 16:38:38,867 INFO [org.jboss.web.localhost.Engine] StandardManager[/web-console]: Seeding of random number generator has been completed
                    2004-02-18 16:38:39,688 INFO [org.jboss.web.localhost.Engine] StandardWrapper[/web-console:default]: Loading container servlet default
                    2004-02-18 16:38:39,698 INFO [org.jboss.web.localhost.Engine] StandardWrapper[/web-console:invoker]: Loading container servlet invoker
                    2004-02-18 16:38:42,152 INFO [org.jboss.deployment.MainDeployer] Deployed package: file:/C:/JBoss/jboss-3.2.3/jboss-3.2.3/server/default/deploy/management/web-console.war
                    2004-02-18 16:38:42,152 ERROR [org.jboss.deployment.scanner.URLDeploymentScanner] MBeanException: Exception in MBean operation 'checkIncompleteDeployments()'