Hi Adam - 

Thanks!! I got it to work! You were right on the money, it took both changes
to make it work. I changed:

uid=%u to sAMAccountName=%u   (I think maybe the AD server is not 2003 but
Win 2000) and 
anonymousReadOnly = false 

Thank you so much for the advice! 

Jin


Adam Rybicki wrote:
> 
> 
> 
> 
>   
>   
> 
> 
> Jin, 
> 
> Your contextSource bean is configured with the anonymousReadOnly
> property set to true.  I think this means that the LDAP search will
> be
> performed "anonymously" without using the username and password
> properties that you have also provided.  Can you try to set
> anonymousReadOnly to false and test again?  Also, your LDAP search is
> for the "uid" attribute. Can you make sure that this is the correct
> attribute to search for?  I am asking because I am not sure that AD
> has
> that attribute populated by default. 
> 
> Adam 
> 
> auron wrote:
> 
>   Hi Andrew,
> 
> Thanks for the reply. Here is my latest deployerConfigContext:
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <!--
>       | 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 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"; >
>       <!--
>               | 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"
>                                       p:httpClient-ref="httpClient" />
>                               <!--
>                                       | 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="uid=%u"/>
>                                       <property name="searchBase"
> value="ou=[removed],dc=[removed],dc=[removed],dc=[removed]"/>
>                                       <property name="contextSource" 
> ref="contextSource"/>
>                               </bean>
>                       </list>
>               </property>
>       </bean>
>       <bean id="contextSource"
> class="org.jasig.cas.adaptors.ldap.util.AuthenticatedLdapContextSource">
>               <property name="anonymousReadOnly" value="true"/>
>               <property name="pooled" value="true"/>
>               <property name="urls">
>                       <list>
>                               <value> ldap:// 
> [removed]:389</value>
>                       </list>
>               </property>
>               <property name="userName"
> value="cn=[removed],cn=Users,dc=[removed],dc=[removed]"/>
>               <property name="password" value="[removed]"/>
>               <property name="baseEnvironmentProperties">
>                       <map>
>                               <entry>
>                                       <key>
>                                               
> <value>java.naming.security.authentication</value>
>                                       </key>
>                                       <value>simple</value>
>                               </entry>
>                       </map>
>               </property>
>       </bean>
>       <!--
>       This bean defines the security roles for the Services Management
> application.  Simple deployments can use the in-memory version.
>       More robust deployments will want to use another option, such as the 
> Jdbc
> version.
>       
>       The name of this should remain "userDetailsService" in order for Acegi 
> to
> find it. 
>       
>       To use this, you should add an entry similar to the following between 
> the
> two value tags:
>       battags=notused,ROLE_ADMIN
>       
>       where battags is the username you want to grant access to.  You can put
> one
> entry per line.
>        --> 
>       <bean id="userDetailsService"
> class="org.acegisecurity.userdetails.memory.InMemoryDaoImpl">
>               <property name="userMap">
>                       <value>
>                       </value>
>               </property>
>       </bean> 
>       
>       <!-- 
>       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" />
>                       </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>
> 
> 
> Thanks again for any insight,
> Jin Lee
> 
> 
> 
> Andrew R Feller wrote:
>   
>   
>     Please post your deployerContext.xml file.
> 
>  
> 
> Andrew R Feller, Analyst
> 
> University Information Systems
> 
> 200 Fred Frey Building
> 
> Louisiana State University
> 
> Baton Rouge, LA, 70803
> 
> (225) 578-3737 (office)
> 
> ________________________________
> 
> From: [EMAIL PROTECTED]  [ mailto:[EMAIL PROTECTED] ]
> On Behalf Of Jin Lee
> Sent: Monday, December 10, 2007 1:04 PM
> To: [email protected] 
> Subject: LDAP not working, please advise
> 
>  
> 
> Hello everyone,
> 
> First off, thank you for the hard work in writing and maintaining CAS.
> From
> what I have seen so far it looks great. I have been trying to get CAS
> and
> LDAP working together but after 6 days of being stuck, I am hoping
> someone 
> here can provide me with some insight.
> 
> I am in a Windows 2003 environment, Java 6 Update 3, Tomcat 5.5.
> 
> I've setup Tomcat w/ SSL using the self signed cert (keytool), and
> verified
> tomcat is up w/ SSL 
> I've included the ldap jar dependency in my pom and built the cas war.
> Copied the war into tomcat/webapps and did a test deployment (verified
> the
> SimpleUsernamePassword to be working)
> Modified the deployerConfigContext to use LDAP (note: I've tried both 
> FastBind and regular Bind and both have the same problem, defined below)
> 
> The problem I am experiencing is well, aside from a brief message saying
> that CAS could not validate, I don't get much else. I've checked my
> tomcat 
> logs, changed the logger to DEBUG, and I can't seem to get any
> significant
> messages indicating whether the LDAP server connection was successful.
> This
> is leading me to believe I am doing something wrong outside of LDAP, but
> I 
> don't know what it is.
> 
> Here is the log file output:
> 
> 2007-12-10 10:47:01,611 DEBUG
> [org.jasig.cas.web.flow.Initial
> 
> FlowSetupAction] - <Action
> 'InitialFlowSetupAction' beginning execution> 
> 2007-12-10 10:47:01,611 INFO
> [org.jasig.cas.web.flow.InitialFlowSetupAction]
> - <Setting ContextPath for cookies to: /cas>
> 2007-12-10 10:47:01,627 DEBUG
> [org.jasig.cas.web.flow.InitialFlowSetupAction] - <Action 
> 'InitialFlowSetupAction' completed execution; result is 'success'>
> 2007-12-10 10:47:01,642 DEBUG
> [org.jasig.cas.web.flow.AuthenticationViaFormAction] - <Action
> 'AuthenticationViaFormAction' beginning execution> 
> 2007-12-10 10:47:01,642 DEBUG
> [org.jasig.cas.web.flow.AuthenticationViaFormAction] - <Executing
> setupForm>
> 2007-12-10 10:47:01,642 DEBUG
> [org.jasig.cas.web.flow.AuthenticationViaFormAction] - <Creating new
> form 
> object with name 'credentials'>
> 2007-12-10 10:47:01,642 DEBUG
> [org.jasig.cas.web.flow.AuthenticationViaFormAction] - <Creating new
> instance of form object class [class
> org.jasig.cas.authentication.principal.UsernamePasswordCredentials ]>
> 2007-12-10 10:47:01,642 DEBUG
> [org.jasig.cas.web.flow.AuthenticationViaFormAction] - <Putting form
> object
> of type [class
> org.jasig.cas.authentication.principal.UsernamePasswordCredentials] in
> scope
> Flow with name 'credentials'>
> 2007-12-10 10:47:01,642 DEBUG
> [org.jasig.cas.web.flow.AuthenticationViaFormAction] - <Creating new
> form
> errors for object with name 'credentials'>
> 2007-12-10 10:47:01,658 DEBUG 
> [org.jasig.cas.web.flow.AuthenticationViaFormAction] - <No property
> editor
> registrar set, no custom editors to register>
> 2007-12-10 10:47:01,658 DEBUG
> [org.jasig.cas.web.flow.AuthenticationViaFormAction ] - <Putting form
> errors
> instance in scope Flash>
> 2007-12-10 10:47:01,658 DEBUG
> [org.jasig.cas.web.flow.AuthenticationViaFormAction] - <Action
> 'AuthenticationViaFormAction' completed execution; result is 'success'> 
> 2007-12-10 10:47:01,658 DEBUG
> [org.jasig.cas.web.flow.AuthenticationViaFormAction] - <Action
> 'AuthenticationViaFormAction' beginning execution>
> 2007-12-10 10:47:01,658 DEBUG
> [org.jasig.cas.web.flow.AuthenticationViaFormAction ] - <Action
> 'AuthenticationViaFormAction' completed execution; result is 'success'>
> 2007-12-10 10:47:07,017 DEBUG
> [org.jasig.cas.web.flow.AuthenticationViaFormAction] - <Action
> 'AuthenticationViaFormAction' beginning execution> 
> 2007-12-10 10:47:07,017 DEBUG
> [org.jasig.cas.web.flow.AuthenticationViaFormAction] - <Executing
> bind>
> 2007-12-10 10:47:07,017 DEBUG
> [org.jasig.cas.web.flow.AuthenticationViaFormAction] - <Found existing
> form 
> object with name 'credentials' of type [class
> org.jasig.cas.authentication.principal.UsernamePasswordCredentials] in
> scope
> Flow>
> 2007-12-10 10:47:07,017 DEBUG
> [org.jasig.cas.web.flow.AuthenticationViaFormAction ] - <No property
> editor
> registrar set, no custom editors to register>
> 2007-12-10 10:47:07,017 DEBUG
> [org.jasig.cas.web.flow.AuthenticationViaFormAction] - <Binding allowed
> request parameters in map['lt' -> 
> '_cB59CE041-38DB-EFCE-F712-75D2FCEBE2C2_k31A0F302-F07F-C630-2113-C14D2C0
> 209F6',
> '_eventId' -> 'submit', 'null' -> '', 'password' -> 'testpass',
> 'submit'
> -> 
> 'LOGIN', 'username' -> 'jlee'] to form object with name 'credentials',
> pre-bind formObject toString = null>
> 2007-12-10 10:47:07,017 DEBUG
> [org.jasig.cas.web.flow.AuthenticationViaFormAction ] - <(Any field is
> allowed)>
> 2007-12-10 10:47:07,033 DEBUG
> [org.jasig.cas.web.flow.AuthenticationViaFormAction] - <Binding
> completed
> for form object with name 'credentials', post-bind formObject toString =
> 
> jlee>
> 2007-12-10 10:47:07,033 DEBUG
> [org.jasig.cas.web.flow.AuthenticationViaFormAction] - <There are [0]
> errors, details: []>
> 2007-12-10 10:47:07,033 DEBUG
> [org.jasig.cas.web.flow.AuthenticationViaFormAction ] - <Executing
> validation>
> 2007-12-10 10:47:07,033 DEBUG
> [org.jasig.cas.web.flow.AuthenticationViaFormAction] - <Invoking
> validator
> [EMAIL PROTECTED] >
> 2007-12-10 10:47:07,033 DEBUG
> [org.jasig.cas.web.flow.AuthenticationViaFormAction] - <Validation
> completed
> for form object>
> 2007-12-10 10:47:07,033 DEBUG
> [org.jasig.cas.web.flow.AuthenticationViaFormAction ] - <There are [0]
> errors, details: []>
> 2007-12-10 10:47:07,033 DEBUG
> [org.jasig.cas.web.flow.AuthenticationViaFormAction] - <Putting form
> errors
> instance in scope Flash>
> 2007-12-10 10:47:07,033 DEBUG 
> [org.jasig.cas.web.flow.AuthenticationViaFormAction] - <Action
> 'AuthenticationViaFormAction' completed execution; result is 'success'>
> 2007-12-10 10:47:07,033 DEBUG
> [org.jasig.cas.web.flow.AuthenticationViaFormAction ] - <Action
> 'AuthenticationViaFormAction' beginning execution>
> 2007-12-10 10:47:07,033 DEBUG
> [org.jasig.cas.web.flow.AuthenticationViaFormAction] - <Found existing
> form
> object with name 'credentials' of type [class 
> org.jasig.cas.authentication.principal.UsernamePasswordCredentials] in
> scope
> Flow>
> 2007-12-10 10:47:07,033 DEBUG
> [org.jasig.cas.CentralAuthenticationServiceImpl] - <Attempting to
> create
> TicketGrantingTicket for jlee> 
> 2007-12-10 10:47:07,049 INFO
> [org.jasig.cas.authentication.AuthenticationManagerImpl] -
> <AuthenticationHandler:
> org.jasig.cas.adaptors.ldap.FastBindLdapAuthenticationHandler failed to
> authenticate the user which provided the following credentials: jlee> 
> 2007-12-10 10:47:07,049 DEBUG
> [org.jasig.cas.web.flow.AuthenticationViaFormAction] - <Found existing
> form
> object with name 'credentials' of type [class
> org.jasig.cas.authentication.principal.UsernamePasswordCredentials ] in
> scope
> Flow>
> 2007-12-10 10:47:07,049 DEBUG
> [org.jasig.cas.web.flow.AuthenticationViaFormAction] - <No property
> editor
> registrar set, no custom editors to register>
> 2007-12-10 10:47:07,049 DEBUG 
> [org.jasig.cas.web.flow.AuthenticationViaFormAction] - <Action
> 'AuthenticationViaFormAction' completed execution; result is 'error'>
> 2007-12-10 10:47:07,049 DEBUG
> [org.jasig.cas.web.flow.AuthenticationViaFormAction ] - <Action
> 'AuthenticationViaFormAction' beginning execution>
> 2007-12-10 10:47:07,049 DEBUG
> [org.jasig.cas.web.flow.AuthenticationViaFormAction] - <Executing
> setupForm>
> 2007-12-10 10:47:07,049 DEBUG 
> [org.jasig.cas.web.flow.AuthenticationViaFormAction] - <Found existing
> form
> object with name 'credentials' of type [class
> org.jasig.cas.authentication.principal.UsernamePasswordCredentials] in
> scope
> Flow>
> 2007-12-10 10:47:07,049 DEBUG
> [org.jasig.cas.web.flow.AuthenticationViaFormAction] - <No property
> editor
> registrar set, no custom editors to register>
> 2007-12-10 10:47:07,049 DEBUG
> [org.jasig.cas.web.flow.AuthenticationViaFormAction ] - <Action
> 'AuthenticationViaFormAction' completed execution; result is 'success'>
> 2007-12-10 10:47:07,049 DEBUG
> [org.jasig.cas.web.flow.AuthenticationViaFormAction] - <Action
> 'AuthenticationViaFormAction' beginning execution> 
> 2007-12-10 10:47:07,049 DEBUG
> [org.jasig.cas.web.flow.AuthenticationViaFormAction] - <Action
> 'AuthenticationViaFormAction' completed execution; result is 'success'>
> 2007-12-10 10:47:16,143 INFO 
> [org.jasig.cas.ticket.registry.support.DefaultTicketRegistryCleaner] -
> <Starting cleaning of expired tickets from ticket registry at [Mon Dec
> 10
> 10:47:16 PST 2007]>
> 2007-12-10 10:47:16,158 INFO
> [org.jasig.cas.ticket.registry.support.DefaultTicketRegistryCleaner ] -
> <0
> found to be removed.  Removing now.>
> 2007-12-10 10:47:16,158 INFO
> [org.jasig.cas.ticket.registry.support.DefaultTicketRegistryCleaner] -
> <Finished cleaning of expired tickets from ticket registry at [Mon Dec
> 10 
> 10:47:16 PST 2007]>
> 
> 
> 
> If anyone can give me some sort of guidance or point me in the right
> directly, it would be greatly appreciated. Thank you very much,
> 
> Jin Lee
> 
> 
> _______________________________________________
> Yale CAS mailing list
> [email protected] 
> http://tp.its.yale.edu/mailman/listinfo/cas 
> 
> 
>     
>   
>   
>   
> 
> 
> 
> 
> begin:vcard
> fn:Adam Rybicki
> n:Rybicki;Adam
> org:Unicon, Inc.;Professional Services
> adr:Suite 113;;3140 North Arizona Avenue;Chandler;AZ;85225;United States
> email;internet:[EMAIL PROTECTED]
> tel;work:+1-480-558-2400
> tel;home:+1-310-265-8286
> tel;cell:+1-310-980-2758
> x-mozilla-html:FALSE
> url:http://www.unicon.net/
> version:2.1
> end:vcard
> 
> 
>  
> _______________________________________________
> Yale CAS mailing list
> [email protected]
> http://tp.its.yale.edu/mailman/listinfo/cas
> 
> 

-- 
View this message in context: 
http://www.nabble.com/LDAP-not-working%2C-please-advise-tp14259540p14262492.html
Sent from the CAS Users mailing list archive at Nabble.com.

_______________________________________________
Yale CAS mailing list
[email protected]
http://tp.its.yale.edu/mailman/listinfo/cas

Reply via email to