|
In the following couple paragraphs I will lay out a road map for implementing LDAP authorization and authentication for Jetspeed-2. In general I intend to implelement the LdapCredentialHandler and LdapUserSecurityHandler first. This work will include simple username/password authentication. Later on, possibly by next week, I intend to implement the authorization interfaces GroupSecurityHandler and RoleSecurityHandler. I will use test-driven design and write tests as I go. The LDAP implementation I am using is OpenLdap. I will provide daily updates of my progress. Please comment on this work.
This week: 1/19/05: 1) Write some tests for LdapCredentialHandler and LdapUserSecurityHandler using simple authentication, primarily focused on the authenticate(userName, password) method of the CredentialHandler. 2) Begin creating all ancillary classes and test classes to support this work. 3) Post this work as comments here so others can review and comment. Please advise if I should post it someplace else. Eventually I will want to commit it to the Jetspeed-2 repository. 1/20/05: 1) Begin implementing the persistence-related behavior of those interfaces. Log for this week.
I mostly completed an implemention of the LdapUserSecurityHandler and the LdapCredentialHandler that authenticates against Open LDAP. I wrote a new LdapServer class and a lot of unit tests to verify its behavior and performance. The server class seems very robust. Most all of the unit tests in the components/security package run as well using LDAP authentication. Next Tuesday when I return I intend to finish the implementation of the methods which update the principal information in LDAP. I will post all this work when all the unit tests run for security against Ldap, probably early next week. Attached is a zip file containing the LDAP authentication code and associated tests. Please review and comment. Next week I intend to begin writing LDAP implementations of GroupSecurityHandler and RoleSecurityHandler. All the tests for this code run except for the regular expression test. Most of the other security tests run if you have users set up in LDAP. Note that you will need to change the sipchhi.xml, defipci.xml, and security.xml files to inject these new handlers into the security component.
Following are some questions to those of you interested in LDAP authentication and authorization in Jetspeed-2. I have spent a some time this week reading Inside Java 2 Platform Security, realizing that I need to understand the design ideas for J2 security.
Questions: 1)Should LDAP authentication support security credentials other than a password? My current LDAP authentication implementation stores users and passwords as objects of class InetOrgPerson. The password credential is stored as an attribute of class InetOrgPerson. 2)Given the data model for J2 security, do you think I should do a 1 for 1 mapping of security tables to LDAP classes? Please study the J2 security data model and suggest a mapping for the tables to LDAP classes. 3) I have not had time to understand the relationship of the security data model to the SSO data model. What issues will I encounter if I implement the security data model in LDAP and leave the SSO data model as is? I will be gone on business until late next week. I look forward to your comments and suggestions. Mike Hi All,
I just started investigating jetSpeed, so I do not have much experience with jetspeed. I do however have some experience with LDAP, and although i will have a look at the implementations soon, I already want to make some remarks. In the sourcecode, i see code to retrieve a user password from ldap, this will nearly always be forbidden by policies, so you can never rely on this feature, checking a password should always be done by issuing a bind operation. Never rely on attributes and or objectclasses in use within LDAP, as most users will want to connect their portal to an existing enterprise directory, the tree-design and objectclasses might already have been defined, so they should be configurable in the jetspeed-ldap connection modules. If you want to use some specific attributes, define an auxilliarry objectclass with the wanted attributes (preferably special attributes designed for jetspeed and use that in the directory. in my opinion, all authentication and authorization data should be placed together in one directory, so you definitly need to define objectclasses and attributes to store this information. Although i did not have a look at the table definitions, I think that one objectclass to equal a table definition is a good way of defining the LDAP schema. You must however be carefull when using references (distinghuised name syntaxes) as these might lead to deadlocks during the addition of objects. Hope this helps, i will start reading more on this topic and comment on this as I find something relevant. Dolf All,
I will be checking in a first cut at the LDAP implementation based on the code provided by Mike Long. This will provide a basis for further improvement and discussion. I also updated the documentation for the security service. See config.html under the security subproject and updated the links from the main page to the sub project. Additionally, as illustrated in the documentation, I further broke down the XML assembly configuration for security to make it easier to swap security implementation. Regards, David Le Strat. This morning I need to wrap up the LDAP authentication and authorization. So I will attach my latest work and take a couple paragraphs to document where my implementation is incomplete.
First of all I want to thank Dolf for his comments. The original version of the LDAP authentication code I checked in did a bind. In my zeal to refactor my code I unwisely decided to use the same technique to get the password that I used to get other fields from the LDAP objects. I spent a couple days last week working on the LDAP authorization piece. Following is a schema I devised for authorization. attributetype ( 1.3.6.1.4.1.8100.1.2.3.1 NAME 'j2-classname' DESC 'The java class name of the object.' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetype ( 1.3.6.1.4.1.8100.1.2.3.2 NAME 'j2-action' DESC 'An action associated with a permission. This is a multi-valued attribute.' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26) attributetype ( 1.3.6.1.4.1.8100.1.2.3.3 NAME 'j2-role' DESC 'The UID of an associated Role. This is a multi-valued attribute.' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26) attributetype ( 1.3.6.1.4.1.8100.1.2.3.4 NAME 'j2-group' DESC 'The UID of an associated Group. This is a multi-valued attribute.' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26) attributetype ( 1.3.6.1.4.1.8100.1.2.3.5 NAME 'j2-permission' DESC 'The UID of an associated Permission' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26) attributetype ( 1.3.6.1.4.1.8100.1.2.3.6 NAME 'creation-date' DESC 'create date' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetype ( 1.3.6.1.4.1.8100.1.2.3.7 NAME 'modified-date' DESC 'modified date' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) objectclass ( 1.3.6.1.4.1.8100.1.2.4.1 NAME 'jetspeed-2-group' DESC 'Jetspeed-2 group' MUST ( j2-classname $ uid) MAY ( j2-role $ creation-date $ modified-date) ) objectclass ( 1.3.6.1.4.1.8100.1.2.4.2 NAME 'jetspeed-2-permission' DESC 'Jetspeed-2 permission' MUST ( j2-classname $ uid) MAY ( j2-action $ creation-date $ modified-date) ) objectclass ( 1.3.6.1.4.1.8100.1.2.4.3 NAME 'jetspeed-2-role' DESC 'Jetspeed-2 role' MUST ( j2-classname $ uid) MAY ( creation-date $ modified-date) ) objectclass ( 1.3.6.1.4.1.8100.1.2.4.4 NAME 'jetspeed-2-user' DESC 'Jetspeed-2 user' SUP inetOrgPerson MUST ( cn $ uid) MAY ( j2-role $ j2-group $ j2-permission $ creation-date $ modified-date)) Please note the following inadequacies in this schema and in my code: 1) I have arbitrarily used the 1.3.6.1.4.1.8100 name for the attributes and object classes. If you are going to use this schema please get "official" LDAP names by going through the proper LDAP channels. 2) I probably could have found existing object classes that mapped users to roles and groups but did not have time. 3) As Dolf noted, I am not doing a "bind" for authentication. 4) I have hard-wired everything about the connection to LDAP. 5) I have not completely implemented authorization. I have done the following: only gotten as far as implementing the group-based methods Sorry if this is a duplicate. I hit the tab and enter key by mistake before I had completed this paper.
This morning I need to wrap up the LDAP authentication and authorization. So I will attach my latest work and take a couple paragraphs to document where my implementation is incomplete. I will send a tar file of my latest version to David if I cannot attach it to this JIRA. First of all I want to thank Dolf for his comments. The original version of the LDAP authentication code I checked in did a bind. In my zeal to refactor my code I unwisely decided to use the same technique to get the password that I used to get other fields from the LDAP objects. I spent a couple days last week working on the LDAP authorization piece. Following is a schema I devised for authorization. Note the way I mapped the many-to-many relationships as nulti-valued fields. Also note that the field called "uid". This field is meant to serve as a unique identifier. Note how I have used separate LDAP clases to represent the User, Group, and Role principals instead of mapping them to a single LDAP abstraction like in the current J2 data model. attributetype ( 1.3.6.1.4.1.8100.1.2.3.1 NAME 'j2-classname' DESC 'The java class name of the object.' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetype ( 1.3.6.1.4.1.8100.1.2.3.2 NAME 'j2-action' DESC 'An action associated with a permission. This is a multi-valued attribute.' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26) attributetype ( 1.3.6.1.4.1.8100.1.2.3.3 NAME 'j2-role' DESC 'The UID of an associated Role. This is a multi-valued attribute.' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26) attributetype ( 1.3.6.1.4.1.8100.1.2.3.4 NAME 'j2-group' DESC 'The UID of an associated Group. This is a multi-valued attribute.' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26) attributetype ( 1.3.6.1.4.1.8100.1.2.3.5 NAME 'j2-permission' DESC 'The UID of an associated Permission' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26) attributetype ( 1.3.6.1.4.1.8100.1.2.3.6 NAME 'creation-date' DESC 'create date' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetype ( 1.3.6.1.4.1.8100.1.2.3.7 NAME 'modified-date' DESC 'modified date' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) objectclass ( 1.3.6.1.4.1.8100.1.2.4.1 NAME 'jetspeed-2-group' DESC 'Jetspeed-2 group' MUST ( j2-classname $ uid) MAY ( j2-role $ creation-date $ modified-date) ) objectclass ( 1.3.6.1.4.1.8100.1.2.4.2 NAME 'jetspeed-2-permission' DESC 'Jetspeed-2 permission' MUST ( j2-classname $ uid) MAY ( j2-action $ creation-date $ modified-date) ) objectclass ( 1.3.6.1.4.1.8100.1.2.4.3 NAME 'jetspeed-2-role' DESC 'Jetspeed-2 role' MUST ( j2-classname $ uid) MAY ( creation-date $ modified-date) ) objectclass ( 1.3.6.1.4.1.8100.1.2.4.4 NAME 'jetspeed-2-user' DESC 'Jetspeed-2 user' SUP inetOrgPerson MUST ( cn $ uid) MAY ( j2-role $ j2-group $ j2-permission $ creation-date $ modified-date)) Please note the following inadequacies in this schema and in my code: 1) I have arbitrarily used the 1.3.6.1.4.1.8100 name for the attributes and object classes. If you are going to use this schema please get "official" LDAP names by going through the proper LDAP channels. 2) I probably could have found existing object classes that mapped users to roles and groups but did not have time. 3) As Dolf noted, I am not doing a "bind" for authentication. 4) I have hard-wired everything about the connection to LDAP, including the URL, fields, and object class names. This is inadequate. Any LDAP schema that supports the kind of relationships we need should be mappable to the code. 5) I have not completely implemented authorization. I will document what I have and have not done. a) I have implemented the UserSecurityHandler, CredentialHandler, GroupSecuirityHandler, and SecurityMappingHandler interfaces. I have not implemented the permissions table/interfaces in LDAP. b) I have not implemented the RoleSecurityHandler and the methods that deal with the relationships between users and roles on the SecurityMappingHandler implementation. However, the relationships and code are analogs to the user-group relationship. c) All my unit tests run. However, not all the Jetspeed-2 unit tests run. I got hung up Friday on the meaning of full-path name for groups and roles. David will have to resolve what I should do there. I hope my intent is clear enough. d) The authentication tests that have to do with password expiration and the reuse of passwords fail because I never implemented this feature in my LDAP authentication code. e) I implemented a goofy workaround to a problem I had where I could not store names containing slashes in an LDAP object class. I substitited an ampersand. This is wrong and needs to be changes to use an LDAP composite name or some other "official" technique. I simply ran out of time. f) My code that gets the password field needs to do proper unicode conversion. Perhaps that won't matter once authentication does an LDAP bind instead of a simple lookup. g) My implementation uses OpenLDAP. h) My code that does LDAP queries is pretty mature. i) I have not had time to fully understand the relationship of the authorization data model and interfaces to the preferences data model. I have made no attempt to implement that functionality in this work. My hope was that the current RDBMS Preferences implementation will work with LDAP authorization/authentication. j) I have not had time to fully understand the relationship of the authorization data model and interfaces for single sign on. I have made no attempt to implement that functionality in this work. My hope was that the current RDBMS SSO implementation will work with LDAP authorization/authentication. In general this experience has been really fun for me. I hope you will forgive my mistakes. I was new to LDAP, Jetspeed-2, JAAS, and Spring until 6 weeks ago. I will be happy to participate in this work as it matures. Gratefully, Mike Hi,
it's been a while, but i'm ready now to start some tests with the LDAP security part. However I need two things before I can start: How can I tell jetspeed-2 that it needs to use the LDAP server for authentication? How did you ad the administrators, are they all in some ou, if so, which OU and as what kind of objects (InetOrgPerson, if i did understand correctly) Can you please elaborate a bit on how to set everything up ready for testing? Thanks, Dolf Hi,
i'm trying to get ldap authentication up and running, did not succeed sofar. Here are my experiences. I firstly followed the rules as given in the cdocs. Startung up tomcat fails with the message "class not found exception" on the ldapCredentialHandler. The xml files seem to expect this in the security.spi.impl.ldap , but they are compiled in security.spi.impl. I corrected my spi-atn.xml file, and this error disappears It now bails out at the message that org.apache.ldap.rootPasword is not defined. It seems that the ldap.properties file is not read during startup. I pasted the lines into the jetspeed.properties, and this error disappears. It now bails out with the following message, and now i'm stuck. can anyone help me out? -- logfile from tomcat ------------------------------- 2005-03-28 20:44:36,977 [main] INFO org.apache.jetspeed.engine.AbstractEngine - Configured log4j from C:\apps\Apache_Group\Tomcat 5.0\webapps\jetspeed\WEB-INF/conf/Log4j.properties 2005-03-28 20:44:36,977 [main] INFO org.apache.jetspeed.engine.AbstractEngine - Starting Jetspeed Engine (org.apache.jetspeed.engine.SpringEngine) at 3/28/05 8:44 PM 2005-03-28 20:44:37,067 [main] INFO org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from URL [file:/C:/apps/Apache_Group/Tomcat 5.0/webapps/jetspeed/WEB-INF/assembly/jetspeed-spring.xml] 2005-03-28 20:44:37,137 [main] INFO org.springframework.core.CollectionFactory - Using JDK 1.4 collections 2005-03-28 20:44:37,377 [main] INFO org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from URL [file:/C:/apps/Apache_Group/Tomcat 5.0/webapps/jetspeed/WEB-INF/assembly/page-manager.xml] 2005-03-28 20:44:37,457 [main] INFO org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from URL [file:/C:/apps/Apache_Group/Tomcat 5.0/webapps/jetspeed/WEB-INF/assembly/pipelines.xml] 2005-03-28 20:44:37,508 [main] INFO org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from URL [file:/C:/apps/Apache_Group/Tomcat 5.0/webapps/jetspeed/WEB-INF/assembly/pluto-factories.xml] 2005-03-28 20:44:37,568 [main] INFO org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from URL [file:/C:/apps/Apache_Group/Tomcat 5.0/webapps/jetspeed/WEB-INF/assembly/security-atn.xml] 2005-03-28 20:44:37,578 [main] INFO org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from URL [file:/C:/apps/Apache_Group/Tomcat 5.0/webapps/jetspeed/WEB-INF/assembly/security-atz.xml] 2005-03-28 20:44:37,588 [main] INFO org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from URL [file:/C:/apps/Apache_Group/Tomcat 5.0/webapps/jetspeed/WEB-INF/assembly/security-managers.xml] 2005-03-28 20:44:37,618 [main] INFO org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from URL [file:/C:/apps/Apache_Group/Tomcat 5.0/webapps/jetspeed/WEB-INF/assembly/security-providers.xml] 2005-03-28 20:44:37,638 [main] INFO org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from URL [file:/C:/apps/Apache_Group/Tomcat 5.0/webapps/jetspeed/WEB-INF/assembly/security-spi-atn.xml] 2005-03-28 20:44:37,668 [main] INFO org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from URL [file:/C:/apps/Apache_Group/Tomcat 5.0/webapps/jetspeed/WEB-INF/assembly/security-spi-atz.xml] 2005-03-28 20:44:37,678 [main] INFO org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from URL [file:/C:/apps/Apache_Group/Tomcat 5.0/webapps/jetspeed/WEB-INF/assembly/security-spi.xml] 2005-03-28 20:44:37,688 [main] INFO org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from URL [file:/C:/apps/Apache_Group/Tomcat 5.0/webapps/jetspeed/WEB-INF/assembly/transaction.xml] 2005-03-28 20:44:37,718 [main] INFO org.springframework.context.support.FileSystemXmlApplicationContext - Bean factory for application context [org.springframework.context.support.FileSystemXmlApplicationContext;hashCode=31361704]: org.springframework.beans.factory.support.DefaultListableBeanFactory defining beans [portal_configuration,javax.servlet.ServletConfig,PortalServices,TemplateLocator,DecorationLocator,IdGenerator,PageFileCache,portletRegistryImpl,org.apache.jetspeed.components.portletregistry.PortletRegistry,portletEntityAccessImpl,org.apache.jetspeed.components.portletentity.PortletEntityAccessComponent,capabilitiesImpl,org.apache.jetspeed.capabilities.Capabilities,PersistenceBrokerSSOProvider,org.apache.jetspeed.sso.SSOProvider,PreferencesProviderImpl,org.apache.jetspeed.prefs.PreferencesProvider,java.util.prefs.PreferencesFactory,PropertyManagerImpl,org.apache.jetspeed.prefs.PropertyManager,org.apache.jetspeed.userinfo.UserInfoManager,org.apache.jetspeed.container.state.NavigationalStateComponent,org.apache.jetspeed.request.RequestContextComponent,org.apache.jetspeed.container.window.PortletWindowAccessor,Pluto,org.apache.pluto.PortletContainer,org.apache.jetspeed.aggregator.PortletRenderer,portletFactory,org.apache.jetspeed.aggregator.PageAggregator,org.apache.jetspeed.aggregator.PortletAggregator,org.apache.jetspeed.tools.pamanager.servletcontainer.ApplicationServerManager,deployFactory,PAM,portletAppDeploymentListener,decoratorDeploymentRegistry,decoratorDeploymentListener,deploymentManager,org.apache.jetspeed.search.HandlerFactory,org.apache.jetspeed.search.SearchEngine,placeholderConfig,profilerImpl,org.apache.jetspeed.profiler.Profiler,PsmlDocumentHandler,LinkDocumentHandler,DocumentSetDocumentHandler,FolderMetaDataDocumentHandler,PageSecurityDocumentHandler,DocumentHandlerFactory,FolderHandler,org.apache.jetspeed.page.PageManager,localizationValve,capabilityValve,portalURLValve,securityValve,passwordCredentialValve,profilerValve,containerValve,actionValve,portletValve,aggregatorValve,cleanUpValve,jetspeed-pipeline,action-pipeline,portlet-pipeline,LocalPortletInvokerTarget,LocalPortletInvokerTargetSource,LocalPortletInvoker,ServletPortletInvokerTarget,ServletPortletInvokerTargetSource,ServletPortletInvoker,javax.portlet.ActionRequest,javax.portlet.RenderRequest,javax.portlet.RenderResponse,javax.portlet.PortletSession,javax.portlet.PortletConfig,javax.portlet.PortletContext,javax.portlet.PortalContext,javax.portlet.ActionResponse,javax.portlet.PortletURL,javax.portlet.PortletPreferences,org.apache.pluto.invoker.PortletInvoker,org.apache.pluto.util.NamespaceMapper,org.apache.pluto.services.information.InformationProviderService,javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse,org.apache.pluto.om.ControllerFactory,org.apache.pluto.services.log.LogService,org.apache.jetspeed.security.LoginModuleProxy,org.apache.jetspeed.security.impl.RdbmsPolicy,org.apache.jetspeed.security.UserManager,org.apache.jetspeed.security.GroupManager,org.apache.jetspeed.security.RoleManager,org.apache.jetspeed.security.impl.PermissionManagerImpl,org.apache.jetspeed.security.PermissionManager,org.apache.jetspeed.security.AuthenticationProvider,org.apache.jetspeed.security.AuthenticationProviderProxy,org.apache.jetspeed.security.SecurityProvider,org.apache.jetspeed.security.AuthorizationProvider,org.apache.jetspeed.security.spi.impl.ldap.LdapUserCredentialDao,org.apache.jetspeed.security.spi.CredentialHandler,org.apache.jetspeed.security.spi.UserSecurityHandler,org.apache.jetspeed.security.spi.RoleSecurityHandler,org.apache.jetspeed.security.spi.GroupSecurityHandler,org.apache.jetspeed.security.spi.SecurityMappingHandler,ldapPlaceholderConfig,transactionManager,baseTransactionProxy]; root of BeanFactory hierarchy 2005-03-28 20:44:37,728 [main] INFO org.springframework.context.support.FileSystemXmlApplicationContext - 107 beans defined in application context [org.springframework.context.support.FileSystemXmlApplicationContext;hashCode=31361704] 2005-03-28 20:44:37,728 [main] INFO org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'placeholderConfig' 2005-03-28 20:44:37,768 [main] INFO org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'ldapPlaceholderConfig' 2005-03-28 20:44:37,768 [main] INFO org.springframework.beans.factory.config.PropertyPlaceholderConfigurer - Loading properties from URL [file:/C:/apps/Apache_Group/Tomcat 5.0/webapps/jetspeed/WEB-INF/conf/jetspeed.properties] 2005-03-28 20:44:37,778 [main] INFO org.springframework.beans.factory.config.PropertyPlaceholderConfigurer - Loading properties from URL [file:/C:/apps/Apache_Group/Tomcat 5.0/webapps/jetspeed/WEB-INF/conf/ldap.properties] 2005-03-28 20:44:37,778 [main] INFO org.springframework.context.support.FileSystemXmlApplicationContext - Unable to locate MessageSource with name 'messageSource': using default [org.springframework.context.support.DelegatingMessageSource@15a3a1] 2005-03-28 20:44:37,778 [main] INFO org.springframework.context.support.FileSystemXmlApplicationContext - Unable to locate ApplicationEventMulticaster with name 'applicationEventMulticaster': using default [org.springframework.context.event.SimpleApplicationEventMulticaster@117c0eb] 2005-03-28 20:44:37,778 [main] INFO org.springframework.beans.factory.support.DefaultListableBeanFactory - Pre-instantiating singletons in factory [org.springframework.beans.factory.support.DefaultListableBeanFactory defining beans [portal_configuration,javax.servlet.ServletConfig,PortalServices,TemplateLocator,DecorationLocator,IdGenerator,PageFileCache,portletRegistryImpl,org.apache.jetspeed.components.portletregistry.PortletRegistry,portletEntityAccessImpl,org.apache.jetspeed.components.portletentity.PortletEntityAccessComponent,capabilitiesImpl,org.apache.jetspeed.capabilities.Capabilities,PersistenceBrokerSSOProvider,org.apache.jetspeed.sso.SSOProvider,PreferencesProviderImpl,org.apache.jetspeed.prefs.PreferencesProvider,java.util.prefs.PreferencesFactory,PropertyManagerImpl,org.apache.jetspeed.prefs.PropertyManager,org.apache.jetspeed.userinfo.UserInfoManager,org.apache.jetspeed.container.state.NavigationalStateComponent,org.apache.jetspeed.request.RequestContextComponent,org.apache.jetspeed.container.window.PortletWindowAccessor,Pluto,org.apache.pluto.PortletContainer,org.apache.jetspeed.aggregator.PortletRenderer,portletFactory,org.apache.jetspeed.aggregator.PageAggregator,org.apache.jetspeed.aggregator.PortletAggregator,org.apache.jetspeed.tools.pamanager.servletcontainer.ApplicationServerManager,deployFactory,PAM,portletAppDeploymentListener,decoratorDeploymentRegistry,decoratorDeploymentListener,deploymentManager,org.apache.jetspeed.search.HandlerFactory,org.apache.jetspeed.search.SearchEngine,placeholderConfig,profilerImpl,org.apache.jetspeed.profiler.Profiler,PsmlDocumentHandler,LinkDocumentHandler,DocumentSetDocumentHandler,FolderMetaDataDocumentHandler,PageSecurityDocumentHandler,DocumentHandlerFactory,FolderHandler,org.apache.jetspeed.page.PageManager,localizationValve,capabilityValve,portalURLValve,securityValve,passwordCredentialValve,profilerValve,containerValve,actionValve,portletValve,aggregatorValve,cleanUpValve,jetspeed-pipeline,action-pipeline,portlet-pipeline,LocalPortletInvokerTarget,LocalPortletInvokerTargetSource,LocalPortletInvoker,ServletPortletInvokerTarget,ServletPortletInvokerTargetSource,ServletPortletInvoker,javax.portlet.ActionRequest,javax.portlet.RenderRequest,javax.portlet.RenderResponse,javax.portlet.PortletSession,javax.portlet.PortletConfig,javax.portlet.PortletContext,javax.portlet.PortalContext,javax.portlet.ActionResponse,javax.portlet.PortletURL,javax.portlet.PortletPreferences,org.apache.pluto.invoker.PortletInvoker,org.apache.pluto.util.NamespaceMapper,org.apache.pluto.services.information.InformationProviderService,javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse,org.apache.pluto.om.ControllerFactory,org.apache.pluto.services.log.LogService,org.apache.jetspeed.security.LoginModuleProxy,org.apache.jetspeed.security.impl.RdbmsPolicy,org.apache.jetspeed.security.UserManager,org.apache.jetspeed.security.GroupManager,org.apache.jetspeed.security.RoleManager,org.apache.jetspeed.security.impl.PermissionManagerImpl,org.apache.jetspeed.security.PermissionManager,org.apache.jetspeed.security.AuthenticationProvider,org.apache.jetspeed.security.AuthenticationProviderProxy,org.apache.jetspeed.security.SecurityProvider,org.apache.jetspeed.security.AuthorizationProvider,org.apache.jetspeed.security.spi.impl.ldap.LdapUserCredentialDao,org.apache.jetspeed.security.spi.CredentialHandler,org.apache.jetspeed.security.spi.UserSecurityHandler,org.apache.jetspeed.security.spi.RoleSecurityHandler,org.apache.jetspeed.security.spi.GroupSecurityHandler,org.apache.jetspeed.security.spi.SecurityMappingHandler,ldapPlaceholderConfig,transactionManager,baseTransactionProxy]; root of BeanFactory hierarchy] 2005-03-28 20:44:37,778 [main] INFO org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'portal_configuration' 2005-03-28 20:44:37,798 [main] INFO org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'javax.servlet.ServletConfig' 2005-03-28 20:44:37,808 [main] INFO org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'PortalServices' 2005-03-28 20:44:37,808 [main] INFO org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.apache.jetspeed.components.portletregistry.PortletRegistry' 2005-03-28 20:44:37,928 [main] INFO org.springframework.aop.framework.DefaultAopProxyFactory - CGLIB2 available: proxyTargetClass feature enabled 2005-03-28 20:44:37,948 [main] INFO org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'transactionManager' 2005-03-28 20:44:38,379 [main] INFO org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'portletRegistryImpl' 2005-03-28 20:44:38,439 [main] INFO org.apache.jetspeed.components.portletregistry.PersistenceBrokerPortletRegistry - Merging OJB respository file:/C:/apps/Apache_Group/Tomcat 5.0/work/Catalina/localhost/jetspeed/loader/META-INF/registry_repository.xml for DAO class org.apache.jetspeed.components.portletregistry.PersistenceBrokerPortletRegistry 2005-03-28 20:44:38,559 [main] INFO org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.apache.jetspeed.search.SearchEngine' 2005-03-28 20:44:38,559 [main] INFO org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.apache.jetspeed.search.HandlerFactory' 2005-03-28 20:44:38,619 [main] INFO org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'PAM' 2005-03-28 20:44:38,619 [main] INFO org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.apache.jetspeed.components.portletentity.PortletEntityAccessComponent' 2005-03-28 20:44:38,619 [main] INFO org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'portletEntityAccessImpl' 2005-03-28 20:44:38,629 [main] INFO org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.apache.jetspeed.container.window.PortletWindowAccessor' 2005-03-28 20:44:38,639 [main] INFO org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'portletFactory' 2005-03-28 20:44:38,689 [main] INFO org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.apache.jetspeed.security.UserManager' 2005-03-28 20:44:38,689 [main] INFO org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.apache.jetspeed.security.SecurityProvider' 2005-03-28 20:44:38,689 [main] INFO org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'org.apache.jetspeed.security.spi.RoleSecurityHandler' 2005-03-28 20:44:38,689 [main] INFO org.springframework.beans.factory.support.DefaultListableBeanFactory - Destroying singletons in factory {org.springframework.beans.factory.support.DefaultListableBeanFactory defining beans [portal_configuration,javax.servlet.ServletConfig,PortalServices,TemplateLocator,DecorationLocator,IdGenerator,PageFileCache,portletRegistryImpl,org.apache.jetspeed.components.portletregistry.PortletRegistry,portletEntityAccessImpl,org.apache.jetspeed.components.portletentity.PortletEntityAccessComponent,capabilitiesImpl,org.apache.jetspeed.capabilities.Capabilities,PersistenceBrokerSSOProvider,org.apache.jetspeed.sso.SSOProvider,PreferencesProviderImpl,org.apache.jetspeed.prefs.PreferencesProvider,java.util.prefs.PreferencesFactory,PropertyManagerImpl,org.apache.jetspeed.prefs.PropertyManager,org.apache.jetspeed.userinfo.UserInfoManager,org.apache.jetspeed.container.state.NavigationalStateComponent,org.apache.jetspeed.request.RequestContextComponent,org.apache.jetspeed.container.window.PortletWindowAccessor,Pluto,org.apache.pluto.PortletContainer,org.apache.jetspeed.aggregator.PortletRenderer,portletFactory,org.apache.jetspeed.aggregator.PageAggregator,org.apache.jetspeed.aggregator.PortletAggregator,org.apache.jetspeed.tools.pamanager.servletcontainer.ApplicationServerManager,deployFactory,PAM,portletAppDeploymentListener,decoratorDeploymentRegistry,decoratorDeploymentListener,deploymentManager,org.apache.jetspeed.search.HandlerFactory,org.apache.jetspeed.search.SearchEngine,placeholderConfig,profilerImpl,org.apache.jetspeed.profiler.Profiler,PsmlDocumentHandler,LinkDocumentHandler,DocumentSetDocumentHandler,FolderMetaDataDocumentHandler,PageSecurityDocumentHandler,DocumentHandlerFactory,FolderHandler,org.apache.jetspeed.page.PageManager,localizationValve,capabilityValve,portalURLValve,securityValve,passwordCredentialValve,profilerValve,containerValve,actionValve,portletValve,aggregatorValve,cleanUpValve,jetspeed-pipeline,action-pipeline,portlet-pipeline,LocalPortletInvokerTarget,LocalPortletInvokerTargetSource,LocalPortletInvoker,ServletPortletInvokerTarget,ServletPortletInvokerTargetSource,ServletPortletInvoker,javax.portlet.ActionRequest,javax.portlet.RenderRequest,javax.portlet.RenderResponse,javax.portlet.PortletSession,javax.portlet.PortletConfig,javax.portlet.PortletContext,javax.portlet.PortalContext,javax.portlet.ActionResponse,javax.portlet.PortletURL,javax.portlet.PortletPreferences,org.apache.pluto.invoker.PortletInvoker,org.apache.pluto.util.NamespaceMapper,org.apache.pluto.services.information.InformationProviderService,javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse,org.apache.pluto.om.ControllerFactory,org.apache.pluto.services.log.LogService,org.apache.jetspeed.security.LoginModuleProxy,org.apache.jetspeed.security.impl.RdbmsPolicy,org.apache.jetspeed.security.UserManager,org.apache.jetspeed.security.GroupManager,org.apache.jetspeed.security.RoleManager,org.apache.jetspeed.security.impl.PermissionManagerImpl,org.apache.jetspeed.security.PermissionManager,org.apache.jetspeed.security.AuthenticationProvider,org.apache.jetspeed.security.AuthenticationProviderProxy,org.apache.jetspeed.security.SecurityProvider,org.apache.jetspeed.security.AuthorizationProvider,org.apache.jetspeed.security.spi.impl.ldap.LdapUserCredentialDao,org.apache.jetspeed.security.spi.CredentialHandler,org.apache.jetspeed.security.spi.UserSecurityHandler,org.apache.jetspeed.security.spi.RoleSecurityHandler,org.apache.jetspeed.security.spi.GroupSecurityHandler,org.apache.jetspeed.security.spi.SecurityMappingHandler,ldapPlaceholderConfig,transactionManager,baseTransactionProxy]; root of BeanFactory hierarchy} 2005-03-28 20:45:17,465 [main] ERROR org.apache.jetspeed.engine.AbstractEngine - org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'PortalServices' defined in URL [file:/C:/apps/Apache_Group/Tomcat 5.0/webapps/jetspeed/WEB-INF/assembly/jetspeed-spring.xml]: Can't resolve reference to bean 'org.apache.jetspeed.security.UserManager' while setting property 'constructor argument[UserManager]'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.apache.jetspeed.security.UserManager' defined in URL [file:/C:/apps/Apache_Group/Tomcat 5.0/webapps/jetspeed/WEB-INF/assembly/security-managers.xml]: Can't resolve reference to bean 'org.apache.jetspeed.security.SecurityProvider' while setting property 'constructor argument'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.apache.jetspeed.security.SecurityProvider' defined in URL [file:/C:/apps/Apache_Group/Tomcat 5.0/webapps/jetspeed/WEB-INF/assembly/security-providers.xml]: Can't resolve reference to bean 'org.apache.jetspeed.security.spi.RoleSecurityHandler' while setting property 'constructor argument'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.apache.jetspeed.security.spi.RoleSecurityHandler' defined in URL [file:/C:/apps/Apache_Group/Tomcat 5.0/webapps/jetspeed/WEB-INF/assembly/security-spi-atz.xml]: Can't resolve reference to bean 'org.apache.jetspeed.security.spi.SecurityAccess' while setting property 'constructor argument'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'org.apache.jetspeed.security.spi.SecurityAccess' is defined: org.springframework.beans.factory.support.DefaultListableBeanFactory defining beans [portal_configuration,javax.servlet.ServletConfig,PortalServices,TemplateLocator,DecorationLocator,IdGenerator,PageFileCache,portletRegistryImpl,org.apache.jetspeed.components.portletregistry.PortletRegistry,portletEntityAccessImpl,org.apache.jetspeed.components.portletentity.PortletEntityAccessComponent,capabilitiesImpl,org.apache.jetspeed.capabilities.Capabilities,PersistenceBrokerSSOProvider,org.apache.jetspeed.sso.SSOProvider,PreferencesProviderImpl,org.apache.jetspeed.prefs.PreferencesProvider,java.util.prefs.PreferencesFactory,PropertyManagerImpl,org.apache.jetspeed.prefs.PropertyManager,org.apache.jetspeed.userinfo.UserInfoManager,org.apache.jetspeed.container.state.NavigationalStateComponent,org.apache.jetspeed.request.RequestContextComponent,org.apache.jetspeed.container.window.PortletWindowAccessor,Pluto,org.apache.pluto.PortletContainer,org.apache.jetspeed.aggregator.PortletRenderer,portletFactory,org.apache.jetspeed.aggregator.PageAggregator,org.apache.jetspeed.aggregator.PortletAggregator,org.apache.jetspeed.tools.pamanager.servletcontainer.ApplicationServerManager,deployFactory,PAM,portletAppDeploymentListener,decoratorDeploymentRegistry,decoratorDeploymentListener,deploymentManager,org.apache.jetspeed.search.HandlerFactory,org.apache.jetspeed.search.SearchEngine,placeholderConfig,profilerImpl,org.apache.jetspeed.profiler.Profiler,PsmlDocumentHandler,LinkDocumentHandler,DocumentSetDocumentHandler,FolderMetaDataDocumentHandler,PageSecurityDocumentHandler,DocumentHandlerFactory,FolderHandler,org.apache.jetspeed.page.PageManager,localizationValve,capabilityValve,portalURLValve,securityValve,passwordCredentialValve,profilerValve,containerValve,actionValve,portletValve,aggregatorValve,cleanUpValve,jetspeed-pipeline,action-pipeline,portlet-pipeline,LocalPortletInvokerTarget,LocalPortletInvokerTargetSource,LocalPortletInvoker,ServletPortletInvokerTarget,ServletPortletInvokerTargetSource,ServletPortletInvoker,javax.portlet.ActionRequest,javax.portlet.RenderRequest,javax.portlet.RenderResponse,javax.portlet.PortletSession,javax.portlet.PortletConfig,javax.portlet.PortletContext,javax.portlet.PortalContext,javax.portlet.ActionResponse,javax.portlet.PortletURL,javax.portlet.PortletPreferences,org.apache.pluto.invoker.PortletInvoker,org.apache.pluto.util.NamespaceMapper,org.apache.pluto.services.information.InformationProviderService,javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse,org.apache.pluto.om.ControllerFactory,org.apache.pluto.services.log.LogService,org.apache.jetspeed.security.LoginModuleProxy,org.apache.jetspeed.security.impl.RdbmsPolicy,org.apache.jetspeed.security.UserManager,org.apache.jetspeed.security.GroupManager,org.apache.jetspeed.security.RoleManager,org.apache.jetspeed.security.impl.PermissionManagerImpl,org.apache.jetspeed.security.PermissionManager,org.apache.jetspeed.security.AuthenticationProvider,org.apache.jetspeed.security.AuthenticationProviderProxy,org.apache.jetspeed.security.SecurityProvider,org.apache.jetspeed.security.AuthorizationProvider,org.apache.jetspeed.security.spi.impl.ldap.LdapUserCredentialDao,org.apache.jetspeed.security.spi.CredentialHandler,org.apache.jetspeed.security.spi.UserSecurityHandler,org.apache.jetspeed.security.spi.RoleSecurityHandler,org.apache.jetspeed.security.spi.GroupSecurityHandler,org.apache.jetspeed.security.spi.SecurityMappingHandler,ldapPlaceholderConfig,transactionManager,baseTransactionProxy]; root of BeanFactory hierarchy 2005-03-28 20:45:17,465 [main] INFO org.apache.jetspeed.engine.AbstractEngine - Finished starting Jetspeed Engine (org.apache.jetspeed.engine.SpringEngine) at 3/28/05 8:45 PM. Elapsed time: 40 seconds. 2005-03-28 20:45:19,017 [main] ERROR org.apache.jetspeed.Jetspeed - Unable to create Engine org.apache.jetspeed.exception.JetspeedException: Jetspeed Initialization exception! at org.apache.jetspeed.engine.AbstractEngine.init(AbstractEngine.java:153) at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:64) at org.apache.jetspeed.engine.JetspeedServlet.init(JetspeedServlet.java:135) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1044) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:876) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4017) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4337) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:823) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595) at org.apache.catalina.core.StandardHostDeployer.addChild(StandardHostDeployer.java:903) 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.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:216) at org.apache.commons.digester.SetNextRule.end(SetNextRule.java:256) at org.apache.commons.digester.Rule.end(Rule.java:276) at org.apache.commons.digester.Digester.endElement(Digester.java:1058) at org.apache.catalina.util.CatalinaDigester.endElement(CatalinaDigester.java:76) at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at org.apache.commons.digester.Digester.parse(Digester.java:1567) at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:488) at org.apache.catalina.core.StandardHost.install(StandardHost.java:863) at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:483) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:427) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:983) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:349) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1091) at org.apache.catalina.core.StandardHost.start(StandardHost.java:789) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478) at org.apache.catalina.core.StandardService.start(StandardService.java:480) at org.apache.catalina.core.StandardServer.start(StandardServer.java:2313) at org.apache.catalina.startup.Catalina.start(Catalina.java:556) 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.catalina.startup.Bootstrap.start(Bootstrap.java:287) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:425) Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'PortalServices' defined in URL [file:/C:/apps/Apache_Group/Tomcat 5.0/webapps/jetspeed/WEB-INF/assembly/jetspeed-spring.xml]: Can't resolve reference to bean 'org.apache.jetspeed.security.UserManager' while setting property 'constructor argument[UserManager]'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.apache.jetspeed.security.UserManager' defined in URL [file:/C:/apps/Apache_Group/Tomcat 5.0/webapps/jetspeed/WEB-INF/assembly/security-managers.xml]: Can't resolve reference to bean 'org.apache.jetspeed.security.SecurityProvider' while setting property 'constructor argument'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.apache.jetspeed.security.SecurityProvider' defined in URL [file:/C:/apps/Apache_Group/Tomcat 5.0/webapps/jetspeed/WEB-INF/assembly/security-providers.xml]: Can't resolve reference to bean 'org.apache.jetspeed.security.spi.RoleSecurityHandler' while setting property 'constructor argument'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.apache.jetspeed.security.spi.RoleSecurityHandler' defined in URL [file:/C:/apps/Apache_Group/Tomcat 5.0/webapps/jetspeed/WEB-INF/assembly/security-spi-atz.xml]: Can't resolve reference to bean 'org.apache.jetspeed.security.spi.SecurityAccess' while setting property 'constructor argument'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'org.apache.jetspeed.security.spi.SecurityAccess' is defined: org.springframework.beans.factory.support.DefaultListableBeanFactory defining beans [portal_configuration,javax.servlet.ServletConfig,PortalServices,TemplateLocator,DecorationLocator,IdGenerator,PageFileCache,portletRegistryImpl,org.apache.jetspeed.components.portletregistry.PortletRegistry,portletEntityAccessImpl,org.apache.jetspeed.components.portletentity.PortletEntityAccessComponent,capabilitiesImpl,org.apache.jetspeed.capabilities.Capabilities,PersistenceBrokerSSOProvider,org.apache.jetspeed.sso.SSOProvider,PreferencesProviderImpl,org.apache.jetspeed.prefs.PreferencesProvider,java.util.prefs.PreferencesFactory,PropertyManagerImpl,org.apache.jetspeed.prefs.PropertyManager,org.apache.jetspeed.userinfo.UserInfoManager,org.apache.jetspeed.container.state.NavigationalStateComponent,org.apache.jetspeed.request.RequestContextComponent,org.apache.jetspeed.container.window.PortletWindowAccessor,Pluto,org.apache.pluto.PortletContainer,org.apache.jetspeed.aggregator.PortletRenderer,portletFactory,org.apache.jetspeed.aggregator.PageAggregator,org.apache.jetspeed.aggregator.PortletAggregator,org.apache.jetspeed.tools.pamanager.servletcontainer.ApplicationServerManager,deployFactory,PAM,portletAppDeploymentListener,decoratorDeploymentRegistry,decoratorDeploymentListener,deploymentManager,org.apache.jetspeed.search.HandlerFactory,org.apache.jetspeed.search.SearchEngine,placeholderConfig,profilerImpl,org.apache.jetspeed.profiler.Profiler,PsmlDocumentHandler,LinkDocumentHandler,DocumentSetDocumentHandler,FolderMetaDataDocumentHandler,PageSecurityDocumentHandler,DocumentHandlerFactory,FolderHandler,org.apache.jetspeed.page.PageManager,localizationValve,capabilityValve,portalURLValve,securityValve,passwordCredentialValve,profilerValve,containerValve,actionValve,portletValve,aggregatorValve,cleanUpValve,jetspeed-pipeline,action-pipeline,portlet-pipeline,LocalPortletInvokerTarget,LocalPortletInvokerTargetSource,LocalPortletInvoker,ServletPortletInvokerTarget,ServletPortletInvokerTargetSource,ServletPortletInvoker,javax.portlet.ActionRequest,javax.portlet.RenderRequest,javax.portlet.RenderResponse,javax.portlet.PortletSession,javax.portlet.PortletConfig,javax.portlet.PortletContext,javax.portlet.PortalContext,javax.portlet.ActionResponse,javax.portlet.PortletURL,javax.portlet.PortletPreferences,org.apache.pluto.invoker.PortletInvoker,org.apache.pluto.util.NamespaceMapper,org.apache.pluto.services.information.InformationProviderService,javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse,org.apache.pluto.om.ControllerFactory,org.apache.pluto.services.log.LogService,org.apache.jetspeed.security.LoginModuleProxy,org.apache.jetspeed.security.impl.RdbmsPolicy,org.apache.jetspeed.security.UserManager,org.apache.jetspeed.security.GroupManager,org.apache.jetspeed.security.RoleManager,org.apache.jetspeed.security.impl.PermissionManagerImpl,org.apache.jetspeed.security.PermissionManager,org.apache.jetspeed.security.AuthenticationProvider,org.apache.jetspeed.security.AuthenticationProviderProxy,org.apache.jetspeed.security.SecurityProvider,org.apache.jetspeed.security.AuthorizationProvider,org.apache.jetspeed.security.spi.impl.ldap.LdapUserCredentialDao,org.apache.jetspeed.security.spi.CredentialHandler,org.apache.jetspeed.security.spi.UserSecurityHandler,org.apache.jetspeed.security.spi.RoleSecurityHandler,org.apache.jetspeed.security.spi.GroupSecurityHandler,org.apache.jetspeed.security.spi.SecurityMappingHandler,ldapPlaceholderConfig,transactionManager,baseTransactionProxy]; root of BeanFactory hierarchy at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveReference(AbstractAutowireCapableBeanFactory.java:984) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveValueIfNecessary(AbstractAutowireCapableBeanFactory.java:918) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveManagedMap(AbstractAutowireCapableBeanFactory.java:1040) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveValueIfNecessary(AbstractAutowireCapableBeanFactory.java:930) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveConstructorArguments(AbstractAutowireCapableBeanFactory.java:574) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:477) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:306) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:260) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:221) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:145) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:291) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:317) at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:113) at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:95) at org.apache.jetspeed.components.SpringComponentManager.<init>(SpringComponentManager.java:44) at org.apache.jetspeed.engine.SpringEngine.initComponents(SpringEngine.java:108) at org.apache.jetspeed.engine.AbstractEngine.init(AbstractEngine.java:145) ... 48 more Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.apache.jetspeed.security.UserManager' defined in URL [file:/C:/apps/Apache_Group/Tomcat 5.0/webapps/jetspeed/WEB-INF/assembly/security-managers.xml]: Can't resolve reference to bean 'org.apache.jetspeed.security.SecurityProvider' while setting property 'constructor argument'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.apache.jetspeed.security.SecurityProvider' defined in URL [file:/C:/apps/Apache_Group/Tomcat 5.0/webapps/jetspeed/WEB-INF/assembly/security-providers.xml]: Can't resolve reference to bean 'org.apache.jetspeed.security.spi.RoleSecurityHandler' while setting property 'constructor argument'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.apache.jetspeed.security.spi.RoleSecurityHandler' defined in URL [file:/C:/apps/Apache_Group/Tomcat 5.0/webapps/jetspeed/WEB-INF/assembly/security-spi-atz.xml]: Can't resolve reference to bean 'org.apache.jetspeed.security.spi.SecurityAccess' while setting property 'constructor argument'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'org.apache.jetspeed.security.spi.SecurityAccess' is defined: org.springframework.beans.factory.support.DefaultListableBeanFactory defining beans [portal_configuration,javax.servlet.ServletConfig,PortalServices,TemplateLocator,DecorationLocator,IdGenerator,PageFileCache,portletRegistryImpl,org.apache.jetspeed.components.portletregistry.PortletRegistry,portletEntityAccessImpl,org.apache.jetspeed.components.portletentity.PortletEntityAccessComponent,capabilitiesImpl,org.apache.jetspeed.capabilities.Capabilities,PersistenceBrokerSSOProvider,org.apache.jetspeed.sso.SSOProvider,PreferencesProviderImpl,org.apache.jetspeed.prefs.PreferencesProvider,java.util.prefs.PreferencesFactory,PropertyManagerImpl,org.apache.jetspeed.prefs.PropertyManager,org.apache.jetspeed.userinfo.UserInfoManager,org.apache.jetspeed.container.state.NavigationalStateComponent,org.apache.jetspeed.request.RequestContextComponent,org.apache.jetspeed.container.window.PortletWindowAccessor,Pluto,org.apache.pluto.PortletContainer,org.apache.jetspeed.aggregator.PortletRenderer,portletFactory,org.apache.jetspeed.aggregator.PageAggregator,org.apache.jetspeed.aggregator.PortletAggregator,org.apache.jetspeed.tools.pamanager.servletcontainer.ApplicationServerManager,deployFactory,PAM,portletAppDeploymentListener,decoratorDeploymentRegistry,decoratorDeploymentListener,deploymentManager,org.apache.jetspeed.search.HandlerFactory,org.apache.jetspeed.search.SearchEngine,placeholderConfig,profilerImpl,org.apache.jetspeed.profiler.Profiler,PsmlDocumentHandler,LinkDocumentHandler,DocumentSetDocumentHandler,FolderMetaDataDocumentHandler,PageSecurityDocumentHandler,DocumentHandlerFactory,FolderHandler,org.apache.jetspeed.page.PageManager,localizationValve,capabilityValve,portalURLValve,securityValve,passwordCredentialValve,profilerValve,containerValve,actionValve,portletValve,aggregatorValve,cleanUpValve,jetspeed-pipeline,action-pipeline,portlet-pipeline,LocalPortletInvokerTarget,LocalPortletInvokerTargetSource,LocalPortletInvoker,ServletPortletInvokerTarget,ServletPortletInvokerTargetSource,ServletPortletInvoker,javax.portlet.ActionRequest,javax.portlet.RenderRequest,javax.portlet.RenderResponse,javax.portlet.PortletSession,javax.portlet.PortletConfig,javax.portlet.PortletContext,javax.portlet.PortalContext,javax.portlet.ActionResponse,javax.portlet.PortletURL,javax.portlet.PortletPreferences,org.apache.pluto.invoker.PortletInvoker,org.apache.pluto.util.NamespaceMapper,org.apache.pluto.services.information.InformationProviderService,javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse,org.apache.pluto.om.ControllerFactory,org.apache.pluto.services.log.LogService,org.apache.jetspeed.security.LoginModuleProxy,org.apache.jetspeed.security.impl.RdbmsPolicy,org.apache.jetspeed.security.UserManager,org.apache.jetspeed.security.GroupManager,org.apache.jetspeed.security.RoleManager,org.apache.jetspeed.security.impl.PermissionManagerImpl,org.apache.jetspeed.security.PermissionManager,org.apache.jetspeed.security.AuthenticationProvider,org.apache.jetspeed.security.AuthenticationProviderProxy,org.apache.jetspeed.security.SecurityProvider,org.apache.jetspeed.security.AuthorizationProvider,org.apache.jetspeed.security.spi.impl.ldap.LdapUserCredentialDao,org.apache.jetspeed.security.spi.CredentialHandler,org.apache.jetspeed.security.spi.UserSecurityHandler,org.apache.jetspeed.security.spi.RoleSecurityHandler,org.apache.jetspeed.security.spi.GroupSecurityHandler,org.apache.jetspeed.security.spi.SecurityMappingHandler,ldapPlaceholderConfig,transactionManager,baseTransactionProxy]; root of BeanFactory hierarchy at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveReference(AbstractAutowireCapableBeanFactory.java:984) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveValueIfNecessary(AbstractAutowireCapableBeanFactory.java:918) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveConstructorArguments(AbstractAutowireCapableBeanFactory.java:574) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:477) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:306) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:260) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:221) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:145) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveReference(AbstractAutowireCapableBeanFactory.java:980) ... 64 more Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.apache.jetspeed.security.SecurityProvider' defined in URL [file:/C:/apps/Apache_Group/Tomcat 5.0/webapps/jetspeed/WEB-INF/assembly/security-providers.xml]: Can't resolve reference to bean 'org.apache.jetspeed.security.spi.RoleSecurityHandler' while setting property 'constructor argument'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.apache.jetspeed.security.spi.RoleSecurityHandler' defined in URL [file:/C:/apps/Apache_Group/Tomcat 5.0/webapps/jetspeed/WEB-INF/assembly/security-spi-atz.xml]: Can't resolve reference to bean 'org.apache.jetspeed.security.spi.SecurityAccess' while setting property 'constructor argument'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'org.apache.jetspeed.security.spi.SecurityAccess' is defined: org.springframework.beans.factory.support.DefaultListableBeanFactory defining beans [portal_configuration,javax.servlet.ServletConfig,PortalServices,TemplateLocator,DecorationLocator,IdGenerator,PageFileCache,portletRegistryImpl,org.apache.jetspeed.components.portletregistry.PortletRegistry,portletEntityAccessImpl,org.apache.jetspeed.components.portletentity.PortletEntityAccessComponent,capabilitiesImpl,org.apache.jetspeed.capabilities.Capabilities,PersistenceBrokerSSOProvider,org.apache.jetspeed.sso.SSOProvider,PreferencesProviderImpl,org.apache.jetspeed.prefs.PreferencesProvider,java.util.prefs.PreferencesFactory,PropertyManagerImpl,org.apache.jetspeed.prefs.PropertyManager,org.apache.jetspeed.userinfo.UserInfoManager,org.apache.jetspeed.container.state.NavigationalStateComponent,org.apache.jetspeed.request.RequestContextComponent,org.apache.jetspeed.container.window.PortletWindowAccessor,Pluto,org.apache.pluto.PortletContainer,org.apache.jetspeed.aggregator.PortletRenderer,portletFactory,org.apache.jetspeed.aggregator.PageAggregator,org.apache.jetspeed.aggregator.PortletAggregator,org.apache.jetspeed.tools.pamanager.servletcontainer.ApplicationServerManager,deployFactory,PAM,portletAppDeploymentListener,decoratorDeploymentRegistry,decoratorDeploymentListener,deploymentManager,org.apache.jetspeed.search.HandlerFactory,org.apache.jetspeed.search.SearchEngine,placeholderConfig,profilerImpl,org.apache.jetspeed.profiler.Profiler,PsmlDocumentHandler,LinkDocumentHandler,DocumentSetDocumentHandler,FolderMetaDataDocumentHandler,PageSecurityDocumentHandler,DocumentHandlerFactory,FolderHandler,org.apache.jetspeed.page.PageManager,localizationValve,capabilityValve,portalURLValve,securityValve,passwordCredentialValve,profilerValve,containerValve,actionValve,portletValve,aggregatorValve,cleanUpValve,jetspeed-pipeline,action-pipeline,portlet-pipeline,LocalPortletInvokerTarget,LocalPortletInvokerTargetSource,LocalPortletInvoker,ServletPortletInvokerTarget,ServletPortletInvokerTargetSource,ServletPortletInvoker,javax.portlet.ActionRequest,javax.portlet.RenderRequest,javax.portlet.RenderResponse,javax.portlet.PortletSession,javax.portlet.PortletConfig,javax.portlet.PortletContext,javax.portlet.PortalContext,javax.portlet.ActionResponse,javax.portlet.PortletURL,javax.portlet.PortletPreferences,org.apache.pluto.invoker.PortletInvoker,org.apache.pluto.util.NamespaceMapper,org.apache.pluto.services.information.InformationProviderService,javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse,org.apache.pluto.om.ControllerFactory,org.apache.pluto.services.log.LogService,org.apache.jetspeed.security.LoginModuleProxy,org.apache.jetspeed.security.impl.RdbmsPolicy,org.apache.jetspeed.security.UserManager,org.apache.jetspeed.security.GroupManager,org.apache.jetspeed.security.RoleManager,org.apache.jetspeed.security.impl.PermissionManagerImpl,org.apache.jetspeed.security.PermissionManager,org.apache.jetspeed.security.AuthenticationProvider,org.apache.jetspeed.security.AuthenticationProviderProxy,org.apache.jetspeed.security.SecurityProvider,org.apache.jetspeed.security.AuthorizationProvider,org.apache.jetspeed.security.spi.impl.ldap.LdapUserCredentialDao,org.apache.jetspeed.security.spi.CredentialHandler,org.apache.jetspeed.security.spi.UserSecurityHandler,org.apache.jetspeed.security.spi.RoleSecurityHandler,org.apache.jetspeed.security.spi.GroupSecurityHandler,org.apache.jetspeed.security.spi.SecurityMappingHandler,ldapPlaceholderConfig,transactionManager,baseTransactionProxy]; root of BeanFactory hierarchy at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveReference(AbstractAutowireCapableBeanFactory.java:984) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveValueIfNecessary(AbstractAutowireCapableBeanFactory.java:918) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveConstructorArguments(AbstractAutowireCapableBeanFactory.java:574) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:477) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:306) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:260) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:221) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:145) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveReference(AbstractAutowireCapableBeanFactory.java:980) ... 72 more Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.apache.jetspeed.security.spi.RoleSecurityHandler' defined in URL [file:/C:/apps/Apache_Group/Tomcat 5.0/webapps/jetspeed/WEB-INF/assembly/security-spi-atz.xml]: Can't resolve reference to bean 'org.apache.jetspeed.security.spi.SecurityAccess' while setting property 'constructor argument'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'org.apache.jetspeed.security.spi.SecurityAccess' is defined: org.springframework.beans.factory.support.DefaultListableBeanFactory defining beans [portal_configuration,javax.servlet.ServletConfig,PortalServices,TemplateLocator,DecorationLocator,IdGenerator,PageFileCache,portletRegistryImpl,org.apache.jetspeed.components.portletregistry.PortletRegistry,portletEntityAccessImpl,org.apache.jetspeed.components.portletentity.PortletEntityAccessComponent,capabilitiesImpl,org.apache.jetspeed.capabilities.Capabilities,PersistenceBrokerSSOProvider,org.apache.jetspeed.sso.SSOProvider,PreferencesProviderImpl,org.apache.jetspeed.prefs.PreferencesProvider,java.util.prefs.PreferencesFactory,PropertyManagerImpl,org.apache.jetspeed.prefs.PropertyManager,org.apache.jetspeed.userinfo.UserInfoManager,org.apache.jetspeed.container.state.NavigationalStateComponent,org.apache.jetspeed.request.RequestContextComponent,org.apache.jetspeed.container.window.PortletWindowAccessor,Pluto,org.apache.pluto.PortletContainer,org.apache.jetspeed.aggregator.PortletRenderer,portletFactory,org.apache.jetspeed.aggregator.PageAggregator,org.apache.jetspeed.aggregator.PortletAggregator,org.apache.jetspeed.tools.pamanager.servletcontainer.ApplicationServerManager,deployFactory,PAM,portletAppDeploymentListener,decoratorDeploymentRegistry,decoratorDeploymentListener,deploymentManager,org.apache.jetspeed.search.HandlerFactory,org.apache.jetspeed.search.SearchEngine,placeholderConfig,profilerImpl,org.apache.jetspeed.profiler.Profiler,PsmlDocumentHandler,LinkDocumentHandler,DocumentSetDocumentHandler,FolderMetaDataDocumentHandler,PageSecurityDocumentHandler,DocumentHandlerFactory,FolderHandler,org.apache.jetspeed.page.PageManager,localizationValve,capabilityValve,portalURLValve,securityValve,passwordCredentialValve,profilerValve,containerValve,actionValve,portletValve,aggregatorValve,cleanUpValve,jetspeed-pipeline,action-pipeline,portlet-pipeline,LocalPortletInvokerTarget,LocalPortletInvokerTargetSource,LocalPortletInvoker,ServletPortletInvokerTarget,ServletPortletInvokerTargetSource,ServletPortletInvoker,javax.portlet.ActionRequest,javax.portlet.RenderRequest,javax.portlet.RenderResponse,javax.portlet.PortletSession,javax.portlet.PortletConfig,javax.portlet.PortletContext,javax.portlet.PortalContext,javax.portlet.ActionResponse,javax.portlet.PortletURL,javax.portlet.PortletPreferences,org.apache.pluto.invoker.PortletInvoker,org.apache.pluto.util.NamespaceMapper,org.apache.pluto.services.information.InformationProviderService,javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse,org.apache.pluto.om.ControllerFactory,org.apache.pluto.services.log.LogService,org.apache.jetspeed.security.LoginModuleProxy,org.apache.jetspeed.security.impl.RdbmsPolicy,org.apache.jetspeed.security.UserManager,org.apache.jetspeed.security.GroupManager,org.apache.jetspeed.security.RoleManager,org.apache.jetspeed.security.impl.PermissionManagerImpl,org.apache.jetspeed.security.PermissionManager,org.apache.jetspeed.security.AuthenticationProvider,org.apache.jetspeed.security.AuthenticationProviderProxy,org.apache.jetspeed.security.SecurityProvider,org.apache.jetspeed.security.AuthorizationProvider,org.apache.jetspeed.security.spi.impl.ldap.LdapUserCredentialDao,org.apache.jetspeed.security.spi.CredentialHandler,org.apache.jetspeed.security.spi.UserSecurityHandler,org.apache.jetspeed.security.spi.RoleSecurityHandler,org.apache.jetspeed.security.spi.GroupSecurityHandler,org.apache.jetspeed.security.spi.SecurityMappingHandler,ldapPlaceholderConfig,transactionManager,baseTransactionProxy]; root of BeanFactory hierarchy at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveReference(AbstractAutowireCapableBeanFactory.java:984) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveValueIfNecessary(AbstractAutowireCapableBeanFactory.java:918) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveConstructorArguments(AbstractAutowireCapableBeanFactory.java:574) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:477) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:306) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:260) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:221) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:145) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveReference(AbstractAutowireCapableBeanFactory.java:980) ... 80 more Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'org.apache.jetspeed.security.spi.SecurityAccess' is defined: org.springframework.beans.factory.support.DefaultListableBeanFactory defining beans [portal_configuration,javax.servlet.ServletConfig,PortalServices,TemplateLocator,DecorationLocator,IdGenerator,PageFileCache,portletRegistryImpl,org.apache.jetspeed.components.portletregistry.PortletRegistry,portletEntityAccessImpl,org.apache.jetspeed.components.portletentity.PortletEntityAccessComponent,capabilitiesImpl,org.apache.jetspeed.capabilities.Capabilities,PersistenceBrokerSSOProvider,org.apache.jetspeed.sso.SSOProvider,PreferencesProviderImpl,org.apache.jetspeed.prefs.PreferencesProvider,java.util.prefs.PreferencesFactory,PropertyManagerImpl,org.apache.jetspeed.prefs.PropertyManager,org.apache.jetspeed.userinfo.UserInfoManager,org.apache.jetspeed.container.state.NavigationalStateComponent,org.apache.jetspeed.request.RequestContextComponent,org.apache.jetspeed.container.window.PortletWindowAccessor,Pluto,org.apache.pluto.PortletContainer,org.apache.jetspeed.aggregator.PortletRenderer,portletFactory,org.apache.jetspeed.aggregator.PageAggregator,org.apache.jetspeed.aggregator.PortletAggregator,org.apache.jetspeed.tools.pamanager.servletcontainer.ApplicationServerManager,deployFactory,PAM,portletAppDeploymentListener,decoratorDeploymentRegistry,decoratorDeploymentListener,deploymentManager,org.apache.jetspeed.search.HandlerFactory,org.apache.jetspeed.search.SearchEngine,placeholderConfig,profilerImpl,org.apache.jetspeed.profiler.Profiler,PsmlDocumentHandler,LinkDocumentHandler,DocumentSetDocumentHandler,FolderMetaDataDocumentHandler,PageSecurityDocumentHandler,DocumentHandlerFactory,FolderHandler,org.apache.jetspeed.page.PageManager,localizationValve,capabilityValve,portalURLValve,securityValve,passwordCredentialValve,profilerValve,containerValve,actionValve,portletValve,aggregatorValve,cleanUpValve,jetspeed-pipeline,action-pipeline,portlet-pipeline,LocalPortletInvokerTarget,LocalPortletInvokerTargetSource,LocalPortletInvoker,ServletPortletInvokerTarget,ServletPortletInvokerTargetSource,ServletPortletInvoker,javax.portlet.ActionRequest,javax.portlet.RenderRequest,javax.portlet.RenderResponse,javax.portlet.PortletSession,javax.portlet.PortletConfig,javax.portlet.PortletContext,javax.portlet.PortalContext,javax.portlet.ActionResponse,javax.portlet.PortletURL,javax.portlet.PortletPreferences,org.apache.pluto.invoker.PortletInvoker,org.apache.pluto.util.NamespaceMapper,org.apache.pluto.services.information.InformationProviderService,javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse,org.apache.pluto.om.ControllerFactory,org.apache.pluto.services.log.LogService,org.apache.jetspeed.security.LoginModuleProxy,org.apache.jetspeed.security.impl.RdbmsPolicy,org.apache.jetspeed.security.UserManager,org.apache.jetspeed.security.GroupManager,org.apache.jetspeed.security.RoleManager,org.apache.jetspeed.security.impl.PermissionManagerImpl,org.apache.jetspeed.security.PermissionManager,org.apache.jetspeed.security.AuthenticationProvider,org.apache.jetspeed.security.AuthenticationProviderProxy,org.apache.jetspeed.security.SecurityProvider,org.apache.jetspeed.security.AuthorizationProvider,org.apache.jetspeed.security.spi.impl.ldap.LdapUserCredentialDao,org.apache.jetspeed.security.spi.CredentialHandler,org.apache.jetspeed.security.spi.UserSecurityHandler,org.apache.jetspeed.security.spi.RoleSecurityHandler,org.apache.jetspeed.security.spi.GroupSecurityHandler,org.apache.jetspeed.security.spi.SecurityMappingHandler,ldapPlaceholderConfig,transactionManager,baseTransactionProxy]; root of BeanFactory hierarchy at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:365) at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedBeanDefinition(AbstractBeanFactory.java:583) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:145) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveReference(AbstractAutowireCapableBeanFactory.java:980) ... 88 more 2005-03-28 20:45:19,027 [main] FATAL org.apache.jetspeed.engine.JetspeedServlet - Jetspeed: init() failed: org.apache.jetspeed.exception.JetspeedException: Unable to create Engine at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:76) at org.apache.jetspeed.engine.JetspeedServlet.init(JetspeedServlet.java:135) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1044) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:876) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4017) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4337) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:823) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595) at org.apache.catalina.core.StandardHostDeployer.addChild(StandardHostDeployer.java:903) 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.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:216) at org.apache.commons.digester.SetNextRule.end(SetNextRule.java:256) at org.apache.commons.digester.Rule.end(Rule.java:276) at org.apache.commons.digester.Digester.endElement(Digester.java:1058) at org.apache.catalina.util.CatalinaDigester.endElement(CatalinaDigester.java:76) at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at org.apache.commons.digester.Digester.parse(Digester.java:1567) at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:488) at org.apache.catalina.core.StandardHost.install(StandardHost.java:863) at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:483) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:427) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:983) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:349) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1091) at org.apache.catalina.core.StandardHost.start(StandardHost.java:789) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478) at org.apache.catalina.core.StandardService.start(StandardService.java:480) at org.apache.catalina.core.StandardServer.start(StandardServer.java:2313) at org.apache.catalina.startup.Catalina.start(Catalina.java:556) 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.catalina.startup.Bootstrap.start(Bootstrap.java:287) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:425) Caused by: org.apache.jetspeed.exception.JetspeedException: Jetspeed Initialization exception! at org.apache.jetspeed.engine.AbstractEngine.init(AbstractEngine.java:153) at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:64) ... 47 more Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'PortalServices' defined in URL [file:/C:/apps/Apache_Group/Tomcat 5.0/webapps/jetspeed/WEB-INF/assembly/jetspeed-spring.xml]: Can't resolve reference to bean 'org.apache.jetspeed.security.UserManager' while setting property 'constructor argument[UserManager]'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.apache.jetspeed.security.UserManager' defined in URL [file:/C:/apps/Apache_Group/Tomcat 5.0/webapps/jetspeed/WEB-INF/assembly/security-managers.xml]: Can't resolve reference to bean 'org.apache.jetspeed.security.SecurityProvider' while setting property 'constructor argument'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.apache.jetspeed.security.SecurityProvider' defined in URL [file:/C:/apps/Apache_Group/Tomcat 5.0/webapps/jetspeed/WEB-INF/assembly/security-providers.xml]: Can't resolve reference to bean 'org.apache.jetspeed.security.spi.RoleSecurityHandler' while setting property 'constructor argument'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.apache.jetspeed.security.spi.RoleSecurityHandler' defined in URL [file:/C:/apps/Apache_Group/Tomcat 5.0/webapps/jetspeed/WEB-INF/assembly/security-spi-atz.xml]: Can't resolve reference to bean 'org.apache.jetspeed.security.spi.SecurityAccess' while setting property 'constructor argument'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'org.apache.jetspeed.security.spi.SecurityAccess' is defined: org.springframework.beans.factory.support.DefaultListableBeanFactory defining beans [portal_configuration,javax.servlet.ServletConfig,PortalServices,TemplateLocator,DecorationLocator,IdGenerator,PageFileCache,portletRegistryImpl,org.apache.jetspeed.components.portletregistry.PortletRegistry,portletEntityAccessImpl,org.apache.jetspeed.components.portletentity.PortletEntityAccessComponent,capabilitiesImpl,org.apache.jetspeed.capabilities.Capabilities,PersistenceBrokerSSOProvider,org.apache.jetspeed.sso.SSOProvider,PreferencesProviderImpl,org.apache.jetspeed.prefs.PreferencesProvider,java.util.prefs.PreferencesFactory,PropertyManagerImpl,org.apache.jetspeed.prefs.PropertyManager,org.apache.jetspeed.userinfo.UserInfoManager,o Hello,
I went on debugging and this error seems to come from the fact that i should just have copied the security-spi-ldap.xml file to assembly, and not replace the original one. Then the next problem occurs It bails oyt with message" wrong constructor argument for bean spi.usersecurityhandler. This is called with ldapuserCredentialDao, and according to the java source files it should be LdapPrincipalDao When I use that bean, is has no constructor. Added a constructor with no arguments, but that goes wrong, then added an argument but it won't create the bean as it is an abstratc class I end up with using ldapUserPrincipalDao and it now seems to start up. It authenticates!! Still three remarks (so far) It cannot handle a space in the DN, it won't connect. It seems to be dependent of a working network connection (it didn't work anymore when I took my laptop off-line) When after some idle-time the connection with the LDAP server is broken, it will not reconnect but authentication will fail until I restart my tomcat. One log-in attempt leads to about twenty ldap searches, I think that that should be optimized. Important questions: Is the change made to the config files correct? The documents in the security subproject seem to be outdated (at least the security tables as shown in the docs are different to the ones that are made during install.) can somebody shortly explain the current layout of the tables and the actions that are performed during a log-in attempt? It's a bit hard to find out the order in which actions need to be performed. Is someone actively going to build on on the LDAP implementation? If not I will start making some changes and post them. If someone is, let's co-operate on these issues. Thanks a lot, Dolf The current Ldap module is ok, but there are some errors here.
The following is detail to make it work. 1. Replace the last bean definition named placeholderConfig in jetspeed-spring.xml with the following: <!-- Adds jetspeed.properties as our configuration object to support ${...} vars --> <!-- ${applicationRoot} is acutally set as a system property via the SpringEngine --> <bean id="placeholderConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>file:///${applicationRoot}/WEB-INF/conf/jetspeed.properties</value> <value>file:///${applicationRoot}/WEB-INF/conf/ldap.properties</value> </list> </property> </bean> 2. Add a bean definition into security-providers.xml <bean id="org.apache.jetspeed.security.LdapAuthenticationProvider" class="org.apache.jetspeed.security.impl.AuthenticationProviderImpl" > <constructor-arg index="0"><value>LdapAuthenticator</value></constructor-arg> <constructor-arg index="1"><value>The ldap authenticator</value></constructor-arg> <constructor-arg index="2"><value>login.conf</value></constructor-arg> <constructor-arg index="3"><ref bean="org.apache.jetspeed.security.spi.LdapCredentialHandler"/></constructor-arg> <constructor-arg index="4"><ref bean="org.apache.jetspeed.security.spi.LdapUserSecurityHandler"/></constructor-arg> </bean> 3. Add the above reference bean into bean org.apache.jetspeed.security.AuthenticationProviderProxy <!-- Security: Authentication Provider Proxy --> <bean id="org.apache.jetspeed.security.AuthenticationProviderProxy" class="org.apache.jetspeed.security.impl.AuthenticationProviderProxyImpl" > <constructor-arg > <list> <ref bean="org.apache.jetspeed.security.AuthenticationProvider"/> <ref bean="org.apache.jetspeed.security.LdapAuthenticationProvider"/> </list> </constructor-arg> <constructor-arg ><value>DefaultAuthenticator</value></constructor-arg> </bean> 4. Change the file security-spi-ldap-atn.xml as following: <beans> <!-- ************** Security SPI Handlers ************** --> <!-- Security SPI: LdapUserCredentialDao --> <bean id="org.apache.jetspeed.security.spi.impl.ldap.LdapUserCredentialDao" class="org.apache.jetspeed.security.spi.impl.ldap.LdapUserCredentialDaoImpl" > <constructor-arg index="0"><value>${org.apache.jetspeed.ldap.ldapServerName}</value></constructor-arg> <constructor-arg index="1"><value>${org.apache.jetspeed.ldap.rootDn}</value></constructor-arg> <constructor-arg index="2"><value>${org.apache.jetspeed.ldap.rootPassword}</value></constructor-arg> <constructor-arg index="3"><value>${org.apache.jetspeed.ldap.rootContext}</value></constructor-arg> <constructor-arg index="4"><value>${org.apache.jetspeed.ldap.defaultDnSuffix}</value></constructor-arg> </bean> <!-- Security SPI: CredentialHandler --> <bean id="org.apache.jetspeed.security.spi.LdapCredentialHandler" class="org.apache.jetspeed.security.spi.impl.LdapCredentialHandler" > <constructor-arg ><ref bean="org.apache.jetspeed.security.spi.impl.ldap.LdapUserCredentialDao"/></constructor-arg> </bean> <!-- Security SPI: UserSecurityHandler --> <bean id="org.apache.jetspeed.security.spi.LdapUserSecurityHandler" class="org.apache.jetspeed.security.spi.impl.LdapUserSecurityHandler" > <constructor-arg ><ref bean="org.apache.jetspeed.security.spi.impl.ldap.LdapPrincipalDao"/></constructor-arg> </bean> <!-- Security SPI: UserSecurityHandler --> <bean id="org.apache.jetspeed.security.spi.impl.ldap.LdapPrincipalDao" class="org.apache.jetspeed.security.spi.impl.ldap.LdapUserPrincipalDaoImpl" > <constructor-arg index="0"><value>${org.apache.jetspeed.ldap.ldapServerName}</value></constructor-arg> <constructor-arg index="1"><value>${org.apache.jetspeed.ldap.rootDn}</value></constructor-arg> <constructor-arg index="2"><value>${org.apache.jetspeed.ldap.rootPassword}</value></constructor-arg> <constructor-arg index="3"><value>${org.apache.jetspeed.ldap.rootContext}</value></constructor-arg> <constructor-arg index="4"><value>${org.apache.jetspeed.ldap.defaultDnSuffix}</value></constructor-arg> </bean> </beans> Notes: 1. The above steps enable multi authentication providers(The default database and a customer's ldap), so you can not remove the original security-spi-atn.xml. 2. The ldap entry which can be identified by J2 have many constrains like objectClass must be jetspeed-2-user or jetspeed-2-group. I am thinking about can we make them all configurable through spring bean definition. You can check all my configuration file in attachments. I was successful in plugging the securitymodules together so that authentication is done in LDAP and the authorization on the default RDBMS.
Authentication works fine. I tried to create a new user "TestUser" on LDAP using the Administrative Portlet. Unfortunately, this action failed. Jetspeed seems to build DN with worng syntax. First there is a missing space after "uid=TestUser". Even if I try to resolve that missing space, it still prints out this Error. ERROR: javax.naming.InvalidNameException: uid=TestUserdc=guessant,dc=org: [LDAP: error code 34 - invalid DN]; remaining name 'uid=TestUserdc=guessant,dc=org' org.apache.jetspeed.security.SecurityException: javax.naming.InvalidNameException: uid=TestUserdc=guessant,dc=org: [LDAP: error code 34 - invalid DN]; remaining name 'uid=TestUserdc=guessant,dc=org' at org.apache.jetspeed.security.spi.impl.ldap.LdapPrincipalDaoImpl.create(LdapPrincipalDaoImpl.java:114) at org.apache.jetspeed.security.spi.impl.LdapUserSecurityHandler.addUserPrincipal(LdapUserSecurityHandler.java:158) at org.apache.jetspeed.security.impl.AuthenticationProviderProxyImpl.addUserPrincipal(AuthenticationProviderProxyImpl.java:163) at org.apache.jetspeed.security.impl.AuthenticationProviderProxyImpl.addUserPrincipal(AuthenticationProviderProxyImpl.java:179) at org.apache.jetspeed.security.impl.UserManagerImpl.addUser(UserManagerImpl.java:234) at org.apache.jetspeed.security.impl.UserManagerImpl.addUser(UserManagerImpl.java:195) at org.apache.jetspeed.portlets.security.users.UserDetailsPortlet.addUser(UserDetailsPortlet.java:992) at org.apache.jetspeed.portlets.security.users.UserDetailsPortlet.processAction(UserDetailsPortlet.java:487) at org.apache.jetspeed.factory.JetspeedPortletInstance.processAction(JetspeedPortletInstance.java:90) at org.apache.jetspeed.container.JetspeedContainerServlet.doGet(JetspeedContainerServlet.java:215) at org.apache.jetspeed.container.JetspeedContainerServlet.doPost(JetspeedContainerServlet.java:289) at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672) at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574) at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499) at org.apache.jetspeed.container.invoker.ServletPortletInvoker.invoke(ServletPortletInvoker.java:212) at org.apache.jetspeed.container.invoker.ServletPortletInvoker.action(ServletPortletInvoker.java:133) 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 org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:284) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:163) at $Proxy8.action(Unknown Source) at org.apache.pluto.PortletContainerImpl.processPortletAction(PortletContainerImpl.java:150) at org.apache.jetspeed.container.JetspeedPortletContainerWrapper.processPortletAction(JetspeedPortletContainerWrapper.java:100) at org.apache.jetspeed.pipeline.valve.impl.ActionValveImpl.invoke(ActionValveImpl.java:75) at org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203) at org.apache.jetspeed.container.ContainerValve.invoke(ContainerValve.java:76) at org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203) at org.apache.jetspeed.profiler.impl.ProfilerValveImpl.invoke(ProfilerValveImpl.java:134) at org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203) at org.apache.jetspeed.security.impl.LoginValidationValveImpl.invoke(LoginValidationValveImpl.java:109) at org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203) at org.apache.jetspeed.security.impl.PasswordCredentialValveImpl.invoke(PasswordCredentialValveImpl.java:131) at org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203) at org.apache.jetspeed.security.impl.AbstractSecurityValve$1.run(AbstractSecurityValve.java:117) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAsPrivileged(Unknown Source) at org.apache.jetspeed.security.impl.AbstractSecurityValve.invoke(AbstractSecurityValve.java:111) at org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203) at org.apache.jetspeed.container.url.impl.PortalURLValveImpl.invoke(PortalURLValveImpl.java:55) at org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203) at org.apache.jetspeed.capabilities.impl.CapabilityValveImpl.invoke(CapabilityValveImpl.java:127) at org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203) at org.apache.jetspeed.localization.impl.LocalizationValveImpl.invoke(LocalizationValveImpl.java:124) at org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203) at org.apache.jetspeed.pipeline.JetspeedPipeline.invoke(JetspeedPipeline.java:185) at org.apache.jetspeed.engine.AbstractEngine.service(AbstractEngine.java:264) at org.apache.jetspeed.engine.JetspeedServlet.doGet(JetspeedServlet.java:225) at org.apache.jetspeed.engine.JetspeedServlet.doPost(JetspeedServlet.java:252) at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:407) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Unknown Source) Caused by: javax.naming.InvalidNameException: uid=TestUserdc=guessant,dc=org: [LDAP: error code 34 - invalid DN]; remaining name 'uid=TestUserdc=guessant,dc=org' at com.sun.jndi.ldap.LdapCtx.processReturnCode(Unknown Source) at com.sun.jndi.ldap.LdapCtx.processReturnCode(Unknown Source) at com.sun.jndi.ldap.LdapCtx.c_createSubcontext(Unknown Source) at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_createSubcontext(Unknown Source) at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.createSubcontext(Unknown Source) at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.createSubcontext(Unknown Source) at javax.naming.directory.InitialDirContext.createSubcontext(Unknown Source) at org.apache.jetspeed.security.spi.impl.ldap.LdapPrincipalDaoImpl.create(LdapPrincipalDaoImpl.java:110) What happens on LDAP: LDAP seems to get a totally wrong DN, where the base DN "dc=guessant,dc=org" occurs twice. do_add: invalid dn (uid=TestUserdc=guessant,dc=org,dc=guessant,dc=org) send_ldap_result: conn=0 op=42 p=3 send_ldap_response: msgid=43 tag=105 err=34 ber_flush: 24 bytes to sd 1220 connection_get(1220): got connid=0 connection_read(1220): checking for input on id=0 ber_get_next ber_get_next: tag 0x30 len 239 contents: do_add ber_get_next ber_get_next on fd 1220 failed errno=10035 (WSAEWOULDBLOCK) ber_scanf fmt ({m) ber: >>> dnPrettyNormal: <uid=TestUserdc=guessant,dc=org,dc=guessant,dc=org> => ldap_bv2dn(uid=TestUserdc=guessant,dc=org,dc=guessant,dc=org,0) ldap_err2string <= ldap_bv2dn(uid=TestUserdc=guessant,dc=org,dc=guessant,dc=org)=-4 Decoding err or do_add: invalid dn (uid=TestUserdc=guessant,dc=org,dc=guessant,dc=org) send_ldap_result: conn=0 op=43 p=3 send_ldap_response: msgid=44 tag=105 err=34 ber_flush: 24 bytes to sd 1220 Thanks for your interest. eric Update on this. I have decided to work on integrating apacheds with J2. This will allow users to easily be able to test J2 authentication with LDAP. One issue there, Apache DS require sJDK 1.5, so for those who want to test the out of the Box LDAP with J2, they will need to run ApacheDS with JDK 1.5. This will not be the default Jetspeed setting any way. By default, Jetspeed will ship with RDBMS as its authentication mechanism.
Also, this feature will for now only address the authentication piece. Let me know if you have any concern. Regards, David Le Strat Completed LDAP implementation of J2 Security SPI. This fully support sauthentication.
Authorization has also been implemented. The unit tests are passing though the spring assembly have not been created nor tested (for authorization) with the portal. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
I have spent the last couple of days thinking about the needs of our team here at Dataline. I have reviewed David Le Strat's LDAP authentication classes as well. I can think of a few requirements issues that I would like to discuss with this community.
1) Do any of you need LDAP authorization as well? In addition to LDAP authentication, we need LDAP authorization. I see from looking at the Jetspeed-2 code that at least two interfaces exist which need LDAP implementations: GroupSecurityHandler and RoleSecurityHandler.
2) Should this "first cut" of LDAP authentication include digest-based authentication, where the hashed password of a user is compared to the hash generated by the user when attempting to login? Doing so would save looking up the user, getting their DN, and then authenticating them. We really need that kind of performance here.
Please forgive me if I am not using JIRA correctly. This is my first use of it. I will be gone until Tuesday and look forward to your comments.
Sincerely,
Mike Long