Thank you. I'm having another difficulty; I'm working from the instructions at http://www.ja-sig.org/wiki/display/CAS/Examples+to+Configure+CAS and http://www.ja-sig.org/wiki/display/CASUM/LDAP :
17:26:02,589 INFO [STDOUT] 2007-12-03 17:26:02,589 ERROR [ org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/cas-web]] - <SafeDispatcherServlet: The Spring DispatcherServlet we wrap threw on init. But for our having caught this error, the servlet would not have initialized.> org.springframework.beans.factory.BeanDefinitionStoreException: Error registering bean with name 'contextSource' defined in ServletContext resource [/WEB-INF/deployerConfigContext.xml]: Bean class [ org.jasig.cas.adaptors.ldap.util.Authe nticatedLdapContextSource] not found; nested exception is java.lang.ClassNotFoundException: org.jasig.cas.adaptors.ldap.util.AuthenticatedLdapContextSource Caused by: java.lang.ClassNotFoundException: org.jasig.cas.adaptors.ldap.util.AuthenticatedLdapContextSource [snip] My current draft of deployerConfigContext.xml reads as below. Do any errors jump out? <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" " http://www.springframework.org/dtd/spring-beans.dtd"> <!-- | deployerConfigContext.xml centralizes into one file some of the declarative configuration that | all CAS deployers will need to modify. | | This file declares some of the Spring-managed JavaBeans that make up a CAS deployment. | The beans declared in this file are instantiated at context initialization time by the Spring | ContextLoaderListener declared in web.xml. It finds this file because this | file is among those declared in the context parameter "contextConfigLocation". | | By far the most common change you will need to make in this file is to change the last bean | declaration to replace the default SimpleTestUsernamePasswordAuthenticationHandler with | one implementing your approach for authenticating usernames and passwords. +--> <beans> <!-- | This bean declares our AuthenticationManager. The CentralAuthenticationService service bean | declared in applicationContext.xml picks up this AuthenticationManager by reference to its id, | "authenticationManager". Most deployers will be able to use the default AuthenticationManager | implementation and so do not need to change the class of this bean. We include the whole | AuthenticationManager here in the userConfigContext.xml so that you can see the things you will | need to change in context. +--> <bean id="authenticationManager" class=" org.jasig.cas.authentication.AuthenticationManagerImpl"> <!-- | This is the List of CredentialToPrincipalResolvers that identify what Principal is trying to authenticate. | The AuthenticationManagerImpl considers them in order, finding a CredentialToPrincipalResolver which | supports the presented credentials. | | AuthenticationManagerImpl uses these resolvers for two purposes. First, it uses them to identify the Principal | attempting to authenticate to CAS /login . In the default configuration, it is the DefaultCredentialsToPrincipalResolver | that fills this role. If you are using some other kind of credentials than UsernamePasswordCredentials, you will need to replace | DefaultCredentialsToPrincipalResolver with a CredentialsToPrincipalResolver that supports the credentials you are | using. | | Second, AuthenticationManagerImpl uses these resolvers to identify a service requesting a proxy granting ticket. | In the default configuration, it is the HttpBasedServiceCredentialsToPrincipalResolver that serves this purpose. | You will need to change this list if you are identifying services by something more or other than their callback URL. +--> <property name="credentialsToPrincipalResolvers"> <list> <!-- | UsernamePasswordCredentialsToPrincipalResolver supports the UsernamePasswordCredentials that we use for /login | by default and produces SimplePrincipal instances conveying the username from the credentials. | | If you've changed your LoginFormAction to use credentials other than UsernamePasswordCredentials then you will also | need to change this bean declaration (or add additional declarations) to declare a CredentialsToPrincipalResolver that supports the | Credentials you are using. +--> <bean class=" org.jasig.cas.authentication.principal.UsernamePasswordCredentialsToPrincipalResolver" /> <!-- | HttpBasedServiceCredentialsToPrincipalResolver supports HttpBasedCredentials. It supports the CAS 2.0 approach of | authenticating services by SSL callback, extracting the callback URL from the Credentials and representing it as a | SimpleService identified by that callback URL. | | If you are representing services by something more or other than an HTTPS URL whereat they are able to | receive a proxy callback, you will need to change this bean declaration (or add additional declarations). +--> <bean class=" org.jasig.cas.authentication.principal.HttpBasedServiceCredentialsToPrincipalResolver" /> </list> </property> <!-- | Whereas CredentialsToPrincipalResolvers identify who it is some Credentials might authenticate, | AuthenticationHandlers actually authenticate credentials. Here we declare the AuthenticationHandlers that | authenticate the Principals that the CredentialsToPrincipalResolvers identified. CAS will try these handlers in turn | until it finds one that both supports the Credentials presented and succeeds in authenticating. +--> <property name="authenticationHandlers"> <list> <!-- | This is the authentication handler that authenticates services by means of callback via SSL, thereby validating | a server side SSL certificate. +--> <bean class=" org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler" /> <!-- | This is the authentication handler declaration that every CAS deployer will need to change before deploying CAS | into production. The default SimpleTestUsernamePasswordAuthenticationHandler authenticates UsernamePasswordCredentials | where the username equals the password. You will need to replace this with an AuthenticationHandler that implements your | local authentication strategy. You might accomplish this by coding a new such handler and declaring | edu.someschool.its.cas.MySpecialHandler here, or you might use one of the handlers provided in the adaptors modules. +--> <bean class=" org.jasig.cas.adaptors.ldap.BindLdapAuthenticationHandler"> <property name="filter" value="sAMAccountName=%u" /> <property name="searchBase" value="[DELETED]" /> <property name="contextSource" ref="contextSource" /> <property name="ignorePartialResultException" value="yes" /> <!-- fix because of how AD returns results --> </bean> </list> </property> </bean> <bean id="contextSource" class=" org.jasig.cas.adaptors.ldap.util.AuthenticatedLdapContextSource"> <property name="anonymousReadOnly" value="false" /> <property name="pooled" value="true" /> <property name="urls"> <list> <value>ldap://[DELETED]</value> </list> </property> <property name="userName" value="[DELETED]" /> <property name="password" value="[DELETED]" /> <property name="baseEnvironmentProperties"> <map> <entry> <key><value> java.naming.security.protocol</value></key> <value>ssl</value> </entry> <entry> <key><value> java.naming.security.authentication</value></key> <value>simple</value> </entry> </map> </property> </bean> </beans> On Dec 3, 2007 10:06 AM, Smith, Matt <[EMAIL PROTECTED]> wrote: > I'd recommend either using CAS' LDAP support and doing an LDAP Bind > against AD, or using CAS' JAASAuthenticationHandler and a JAAS config > for Kerberos similar to the one in the IBM article you referenced. > Check out the CAS wiki for more info on both of these. > > HTH, > -Matt > > On Mon, 2007-12-03 at 09:46 -0600, Jonathan Hayward > http://JonathansCorner.com wrote: > > I want to get CAS to authenticate against Active Directory > > username/password pairs. > > > > I was looking at Build and Implement a single sign-on solution at > > http://www.ibm.com/developerworks/web/library/wa-singlesign/ ; it > > seems to describe what I want, but it is from 2003 and I want to work > > with current software versions. The author provides a ZIP at > > > http://download.boulder.ibm.com/ibmdl/pub/software/dw/library/wa-singlesign/KerberosAuthSrc.zip, > and > KerberosAuthHandler.java didn't compile. (It implements interface > PasswordHandler, possibly from package edu.yale.its.tp.cas.auth , and I > have been having trouble finding the interface.) > > > > How should I be going about this? Should I be taking another approach, > > or can some details be changed while I use the basic approach at > > http://www.ibm.com/developerworks/web/library/wa-singlesign/ ? > > > > RTFM links would be appreciated; I've been having trouble finding > > them. > > > > -- > > ++ Jonathan Hayward, [EMAIL PROTECTED] > > ** To see an award-winning website with stories, essays, artwork, > > ** games, and a four-dimensional maze, why not visit my home page? > > ** All of this is waiting for you at http://JonathansCorner.com > > _______________________________________________ > > Yale CAS mailing list > > [email protected] > > http://tp.its.yale.edu/mailman/listinfo/cas > -- > Matt Smith > [EMAIL PROTECTED] > University Information Technology Services (UITS) > University of Connecticut > PGP Key ID: 0xE9C5244E > > _______________________________________________ > Yale CAS mailing list > [email protected] > http://tp.its.yale.edu/mailman/listinfo/cas > > -- ++ Jonathan Hayward, [EMAIL PROTECTED] ** To see an award-winning website with stories, essays, artwork, ** games, and a four-dimensional maze, why not visit my home page? ** All of this is waiting for you at http://JonathansCorner.com
_______________________________________________ Yale CAS mailing list [email protected] http://tp.its.yale.edu/mailman/listinfo/cas
