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.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">
                  <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

Reply via email to