Two things:

First your Httpbasedservicescredentialsauthenticationhandler will need a
<property name="httpClient" ref="httpClient" />

Second, you've defined the ContextSource bean within the
AuthenticationManager bean.  Just move it outside (you'll notice the bottom
of your xml is </bean></bean>).

-Scott

On 5/3/07, Zouhair BOUNOUALA <[EMAIL PROTECTED]> wrote:

Hi,

I want to deploy cas.war after modification in the cas-server (V3.0.7)
with OpenlDAP 2.2.In fact, my deployerConfigContext.xml configuration
is as below:

<?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.xmlso 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
">
                  <property name="httpClient" ref="httpClient" />
</bean>



                <!--
                        | This is the authentication handler declaration
that every CAS
deployer will need to change before deploying CAS
                        | into production.
                        | With this configuration you'll be using LDAP
search-and-bind
authentication.
                        +-->
                <bean
                        class="
org.jasig.cas.adaptors.ldap.BindLdapAuthenticationHandler" >
                                <property name="filter" value="uid=%u" />
                                <property name="searchBase"
value="ou=users,dc=chabaka,dc=net" />
                                <property name="contextSource"
ref="contextSource" />
                </bean>
        </list>
</property>




<bean id="contextSource"
class="org.jasig.cas.adaptors.ldap.util.AuthenticatedLdapContextSource">
                 <property name="authenticatedReadOnly" value="true" />
                 <property name="userName" value="{username_goes_here}" />
                 <property name="password" value="{password_goes_here}" />
                 <property name="urls">
                         <list>
                                 <value>ldaps://127.0.0.1/</value>
                                 <value>ldaps://127.0.0.1/</value>
                         </list>
                 </property>
                 <property name="baseEnvironmentProperties">
                         <map>
                                 <entry>

<key><value>java.naming.security.authentication</value></key>
                                         <value>simple</value>
                                 </entry>
                        </map>
                </property>
</bean>

</bean>

</beans>


But when I deployed cas.war under tomcat, one error in the
catalina.out is noticed as below :

INFO: DÃ(c)ploiement de l'archive cas.war de l'application web
2007-05-03 12:37:50,607 ERROR
[org.springframework.web.context.ContextLoader] - <Context
initialization failed>
org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException:
Line 128 in XML document from ServletContext resource
[/WEB-INF/deployerConfigContext.x
ml] is invalid; nested exception is org.xml.sax.SAXParseException: The
content of element type "bean" must match
"(description?,(constructor-arg|property|look
up-method|replaced-method)*)".
Caused by:
org.xml.sax.SAXParseException: The content of element type "bean" must
match
"(description?,(constructor-arg|property|lookup-method|replaced-method)*)".
        at
org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown
Source)
        at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown
Source)
        at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown
Source)
        at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown
Source)
        at org.apache.xerces.impl.dtd.XMLDTDValidator.handleEndElement
(Unknown
Source)
        at org.apache.xerces.impl.dtd.XMLDTDValidator.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.DOMParser.parse(Unknown Source)
        at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown
Source)
        at
org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(
DefaultDocumentLoader.java:76)
        at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions
(XmlBeanDefinitionReader.java:351)
        at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions
(XmlBeanDefinitionReader.java:303)
        at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions
(XmlBeanDefinitionReader.java:280)
        at
org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions
(AbstractBeanDefinitionReader.java:131)
        at
org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions
(AbstractBeanDefinitionReader.java:147)
        at
org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions
(XmlWebApplicationContext.java:124)
        at
org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions
(XmlWebApplicationContext.java:92)
        at
org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory
(AbstractRefreshableApplicationContext.java:100)
        at
org.springframework.context.support.AbstractApplicationContext.refresh(
AbstractApplicationContext.java:298)
        at
org.springframework.web.context.ContextLoader.createWebApplicationContext(
ContextLoader.java:241)
        at
org.springframework.web.context.ContextLoader.initWebApplicationContext(
ContextLoader.java:184)
        at
org.springframework.web.context.ContextLoaderListener.contextInitialized(
ContextLoaderListener.java:49)
        at
org.jasig.cas.web.init.SafeContextLoaderListener.contextInitialized(
SafeContextLoaderListener.java:62)
        at org.apache.catalina.core.StandardContext.listenerStart(
StandardContext.java:3729)
        at org.apache.catalina.core.StandardContext.start(
StandardContext.java:4187)
        at org.apache.catalina.core.ContainerBase.addChildInternal(
ContainerBase.java:759)
        at org.apache.catalina.core.ContainerBase.addChild(
ContainerBase.java:739)
        at org.apache.catalina.core.StandardHost.addChild(
StandardHost.java:524)
        at org.apache.catalina.startup.HostConfig.deployWAR(
HostConfig.java:809)
        at org.apache.catalina.startup.HostConfig.deployWARs(
HostConfig.java:698)
        at org.apache.catalina.startup.HostConfig.deployApps(
HostConfig.java:472)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java
:1122)
        at org.apache.catalina.startup.HostConfig.lifecycleEvent(
HostConfig.java:310)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(
LifecycleSupport.java:119)



I don't know when I made one mistake? If they are an example of this
file deployerConfigContext.xml to connect CAS + LDAP, I will be glad!

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




--
-Scott Battaglia

LinkedIn: http://www.linkedin.com/in/scottbattaglia
_______________________________________________
Yale CAS mailing list
[email protected]
http://tp.its.yale.edu/mailman/listinfo/cas

Reply via email to