You're probably referencing an old version of Spring Security. Where did you get that configuration from?
On Thu, May 13, 2010 at 10:09 AM, Patrick Berry <[email protected]> wrote: > Adding the dependency in pom.xml is critical. > > http://www.ja-sig.org/wiki/display/CASUM/LDAP > > <!-- include in top-level pom.xml --> > > <dependency> > <groupId>${project.groupId}</groupId> > <artifactId>cas-server-support-ldap</artifactId> > <version>${project.version}</version></dependency> > > > On Wed, May 12, 2010 at 9:44 PM, Steve O'Brien <[email protected]>wrote: > >> I have been fumbling around for two days trying to get CAS running with >> LDAP-AD integration. I am hoping that it is a simple fix like enabling the >> java class in the pom.xml he is my config followed by the cas.log output >> (sorry for the verbosity): >> >> >> >> >> >> <?xml version="1.0" encoding="UTF-8"?> >> >> <beans xmlns="http://www.springframework.org/schema/beans" >> >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> >> xmlns:p="http://www.springframework.org/schema/p" >> >> xsi:schemaLocation="http://www.springframework.org/schema/beans >> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> >> >> >> >> <bean id="contextSource" >> class="org.springframework.ldap.core.support.LdapContextSource"> >> >> <property name="pooled" value="true"/> >> >> <property name="urls"> >> >> <list> >> >> <value>ldap://dc01.domain.com:3268/</value> >> >> </list> >> >> </property> >> >> <property name="userDn" value="CN=ACCOUNT,DC=domain,DC=com"/> >> >> <property name="password" value="PASSWORD"/> >> >> <property name="baseEnvironmentProperties"> >> >> <map> >> >> <entry> >> >> <key> >> >> <value>java.naming.security.authentication</value> >> >> </key> >> >> <value>simple</value> >> >> </entry> >> >> </map> >> >> </property> >> >> </bean> >> >> >> >> <bean id="authenticationManager" >> class="org.jasig.cas.authentication.AuthenticationManagerImpl"> >> >> <property name="credentialsToPrincipalResolvers"> >> >> <list> >> >> <bean >> class="org.jasig.cas.authentication.principal.UsernamePasswordCredentialsToPrincipalResolver" >> /> >> >> <bean >> class="org.jasig.cas.authentication.principal.HttpBasedServiceCredentialsToPrincipalResolver" >> /> >> >> </list> >> >> </property> >> >> >> >> <property name="authenticationHandlers"> >> >> <list> >> >> <bean >> class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler" >> >> p:httpClient-ref="httpClient" /> >> >> <!--<bean >> class="org.jasig.cas.adaptors.ldap.BindLdapAuthenticationHandler"> >> >> <property name="filter" value="sAMAccountName=%u" /> >> >> <property name="searchBase" >> value="OU=Accounts,OU=Employees,DC=domain,DC=com" /> >> >> <property name="contextSource" ref="contextSource" /> >> >> </bean> >> >> --> >> >> <bean >> class="org.jasig.cas.adaptors.ldap.BindLdapAuthenticationHandler"> >> >> <property name="filter" value="sAMAccountName=%u" /> >> >> <property name="searchBase" >> value="OU=Accounts,OU=Employees,DC=domain,DC=com" /> >> >> <property name="contextSource" ref="contextSource" /> >> >> <property name="ignorePartialResultException" >> value="yes" /> <!-- fix because of how AD returns results --> >> >> </bean> >> >> </list> >> >> </property> >> >> </bean> >> >> >> >> >> >> <!-- from >> http://shibsp.ntu.ac.uk/confluence/display/SHIB2/Configure+CAS+Server+for+AD+Authentication--> >> >> >> >> <bean id="userDetailsService" >> class="org.springframework.security.userdetails.memory.InMemoryDaoImpl"> >> >> <property name="userMap"> >> >> <value> >> >> >> >> </value> >> >> </property> >> >> </bean> >> >> >> >> <!-- <bean id="attributeRepository" >> class="org.jasig.services.persondir.support.StubPersonAttributeDao"> >> >> <property name="backingMap"> >> >> <map> >> >> <entry key="uid" value="uid" /> >> >> </map> >> >> </property> >> >> </bean> >> >> >> >> <bean id="serviceRegistryDao" >> class="org.jasig.cas.services.InMemoryServiceRegistryDaoImpl" /> >> >> --> >> >> >> >> <!-- Default section from stock file follows --> >> >> >> >> <!-- >> >> Bean that defines the attributes that a service may return. This >> example uses the Stub/Mock version. A real implementation >> >> may go against a database or LDAP server. The id should remain >> "attributeRepository" though. >> >> --> >> >> <bean id="attributeRepository" >> class="org.jasig.services.persondir.support.StubPersonAttributeDao"> >> >> <property name="backingMap"> >> >> <map> >> >> <entry key="uid" value="uid" /> >> >> <entry key="eduPersonAffiliation" >> value="eduPersonAffiliation" /> >> >> <entry key="groupMembership" >> value="groupMembership" /> >> >> </map> >> >> </property> >> >> </bean> >> >> >> >> <!-- >> >> Sample, in-memory data store for the ServiceRegistry. A real >> implementation >> >> would probably want to replace this with the JPA-backed >> ServiceRegistry DAO >> >> The name of this bean should remain "serviceRegistryDao". >> >> --> >> >> >> >> <bean id="serviceRegistryDao" >> class="org.jasig.cas.services.InMemoryServiceRegistryDaoImpl" /> >> >> >> >> </beans> >> >> >> >> >> >> >> >> Cas.log output: >> >> >> >> >> >> The Spring ContextLoaderListener we wrap threw on contextInitialized. >> >> But for our having caught this error, the web application context would >> not have initialized. >> >> org.springframework.beans.factory.BeanCreationException: Error creating >> bean with name 'scheduler' defined in ServletContext resource >> [/WEB-INF/spring-configuration/applicationContext.xml]: Invocation of init >> method failed; nested exception is >> org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find >> class [org.springframework.security.userdetails.memory.InMemoryDaoImpl] for >> bean with name 'userDetailsService' defined in ServletContext resource >> [/WEB-INF/deployerConfigContext.xml]; nested exception is >> java.lang.ClassNotFoundException: >> org.springframework.security.userdetails.memory.InMemoryDaoImpl >> >> at >> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1403) >> >> at >> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513) >> >> at >> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:450) >> >> at >> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:290) >> >> at >> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) >> >> at >> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:287) >> >> at >> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:189) >> >> at >> org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:545) >> >> at >> org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:871) >> >> at >> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:423) >> >> at >> org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:272) >> >> at >> org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:196) >> >> at >> org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47) >> >> at >> org.jasig.cas.web.init.SafeContextLoaderListener.contextInitialized_aroundBody0(SafeContextLoaderListener.java:62) >> >> at >> org.jasig.cas.web.init.SafeContextLoaderListener.contextInitialized_aroundBody1$advice(SafeContextLoaderListener.java:44) >> >> at >> org.jasig.cas.web.init.SafeContextLoaderListener.contextInitialized(SafeContextLoaderListener.java:1) >> >> at >> org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3764) >> >> at >> org.apache.catalina.core.StandardContext.start(StandardContext.java:4212) >> >> at >> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760) >> >> at >> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740) >> >> at >> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544) >> >> at >> org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:825) >> >> at >> org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:714) >> >> at >> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490) >> >> at >> org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138) >> >> at >> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311) >> >> at >> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120) >> >> at >> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022) >> >> at >> org.apache.catalina.core.StandardHost.start(StandardHost.java:736) >> >> at >> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014) >> >> at >> org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) >> >> at >> org.apache.catalina.core.StandardService.start(StandardService.java:448) >> >> at >> org.apache.catalina.core.StandardServer.start(StandardServer.java:700) >> >> at org.apache.catalina.startup.Catalina.start(Catalina.java:552) >> >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> >> at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >> >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> >> at java.lang.reflect.Method.invoke(Method.java:616) >> >> at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295) >> >> at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433) >> >> Caused by: org.springframework.beans.factory.CannotLoadBeanClassException: >> Cannot find class >> [org.springframework.security.userdetails.memory.InMemoryDaoImpl] for bean >> with name 'userDetailsService' defined in ServletContext resource >> [/WEB-INF/deployerConfigContext.xml]; nested exception is >> java.lang.ClassNotFoundException: >> org.springframework.security.userdetails.memory.InMemoryDaoImpl >> >> at >> org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1208) >> >> at >> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:570) >> >> at >> org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1277) >> >> at >> org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:303) >> >> at >> org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:382) >> >> at >> org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:376) >> >> at >> org.springframework.context.support.AbstractApplicationContext.getBeansOfType(AbstractApplicationContext.java:1109) >> >> at >> org.jasig.cas.util.AutowiringSchedulerFactoryBean.afterPropertiesSet(AutowiringSchedulerFactoryBean.java:31) >> >> at >> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1460) >> >> at >> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1400) >> >> ... 39 more >> >> Caused by: java.lang.ClassNotFoundException: >> org.springframework.security.userdetails.memory.InMemoryDaoImpl >> >> at >> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1359) >> >> at >> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1205) >> >> at >> org.springframework.util.ClassUtils.forName(ClassUtils.java:258) >> >> at >> org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:408) >> >> at >> org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1229) >> >> at >> org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1200) >> >> >> >> >> >> >> >> Any help would be greatly appreciated >> >> TIA, >> >> Steve >> >> -- >> You are currently subscribed to [email protected] as: [email protected] >> >> >> >> To unsubscribe, change settings or access archives, see >> http://www.ja-sig.org/wiki/display/JSG/cas-user >> >> > -- > You are currently subscribed to [email protected] as: > [email protected] > > To unsubscribe, change settings or access archives, see > http://www.ja-sig.org/wiki/display/JSG/cas-user > > -- You are currently subscribed to [email protected] as: [email protected] To unsubscribe, change settings or access archives, see http://www.ja-sig.org/wiki/display/JSG/cas-user
