Hello,
I'm trying deploy a CAS server usin openLDAP as directory.
I've read *a lot* of documentations and mailing list to solve several
troubles and finally I have this configuration in
deployerConfigContext.xml :
<?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"
xmlns:sec="http://www.springframework.org/schema/security"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.0.xsd">
<bean id="authenticationManager"
class="org.jasig.cas.authentication.AuthenticationManagerImpl">
<property name="credentialsToPrincipalResolvers">
<list>
<bean
class="org.jasig.cas.authentication.principal.CredentialsToLDAPAttributePrincipalResolver">
<property name="credentialsToPrincipalResolver">
<bean id="ldapToPrincipalResolver"
class="org.jasig.cas.authentication.principal.UsernamePasswordCredentialsToPrincipalResolver"
/>
</property>
<property name="filter" value="(ENTPersonLogin=%u)" />
<!-- The attribute used to define the new Principal ID -->
<property name="principalAttributeName" value="ENTPersonLogin" />
<property name="searchBase" value="ou=personnes,dc=myDC,dc=fr" />
<property name="contextSource" ref="contextSource" />
<property name="attributeRepository" ref="attributeRepository" />
</bean>
<bean
class="org.jasig.cas.authentication.principal.HttpBasedServiceCredentialsToPrincipalResolver"
/>
</list>
</property>
<property name="authenticationHandlers">
<list>
<bean
class="org.jasig.cas.adaptors.ldap.BindLdapAuthenticationHandler" >
<property name="filter" value="ENTPersonLogin=%u" />
<property name="searchBase"
value="ou=personnes,dc=myDC,dc=fr" />
<property name="contextSource" ref="contextSource" />
</bean>
</list>
</property>
</bean>
<bean id="contextSource"
class="org.springframework.ldap.core.support.LdapContextSource">
<property name="anonymousReadOnly" value="false" />
<property name="pooled" value="true"/>
<property name="urls">
<list>
<value>ldap://192.168.252.204/</value>
</list>
</property>
<property name="userDn" value="cn=admin,dc=emyDC,dc=fr"/> <!-- eg
uid=LdapUser,dc=yourdomain,dc=edu -->
<property name="password" value="xxxxx"/>
<property name="baseEnvironmentProperties">
<map>
<entry>
<key>
<value>java.naming.security.authentication</value>
</key>
<value>simple</value>
</entry>
</map>
</property>
</bean>
<sec:user-service id="userDetailsService">
<sec:user name="admin" password="notused" authorities="ROLE_ADMIN" />
</sec:user-service>
<bean id="attributeRepository"
class="org.jasig.services.persondir.support.ldap.LdapPersonAttributeDao">
<property name="baseDN"
value="ou=personnes,dc=myDC,dc=fr" />
<property name="contextSource" ref="contextSource" />
<property name="resultAttributeMapping">
<map>
<entry key="givenName" value="givenName"/>
<entry key="distinguishedName" value="distinguishedName" />
<entry key="sn" value="sn" />
</map>
</property>
</bean>
<bean
id="serviceRegistryDao"
class="org.jasig.cas.services.InMemoryServiceRegistryDaoImpl" />
</beans>
Tomcat stars without problem but, when i'm trying to authenticate i
got a "CAS is Unavailable,
There was an error trying to complete your request. Please notify your
support desk or try again.".
If I look at the logs, that is what i get :
Feb 19 15:27:55 debian jsvc.exec[13663]: 2010-02-19 15:27:55,022 INFO
[org.jasig.cas.authentication.AuthenticationManagerImpl] -
<AuthenticationHandler:
org.jasig.cas.adaptors.ldap.BindLdapAuthenticationHandler successfully
authenticated the user which provided the following credentials:
[username: adminesv]>
Feb 19 15:27:55 debian jsvc.exec[13663]: 2010-02-19 15:27:55,052 DEBUG
[org.springframework.webflow.execution.AnnotatedAction] - <Clearing
action execution attributes map[[empty]]>
Feb 19 15:27:55 debian jsvc.exec[13663]: 2010-02-19 15:27:55,053 DEBUG
[org.springframework.webflow.engine.impl.FlowExecutionImpl] -
<Attempting to handle
[org.springframework.webflow.execution.ActionExecutionException:
Exception thrown executing [annotatedact...@1efb003 targetAction =
[evaluateact...@118abfe expression =
authenticationViaFormAction.submit(flowRequestContext,
flowScope.credentials, messageContext), resultExposer = [null]],
attributes = map[[empty]]] in state 'realSubmit' of flow 'login' --
action execution attributes were 'map[[empty]]'] with root cause
[java.lang.NullPointerException]>
Feb 19 15:27:55 debian jsvc.exec[13663]: 2010-02-19 15:27:55,053 DEBUG
[org.springframework.webflow.engine.impl.FlowExecutionImpl] -
<Rethrowing unhandled flow execution exception>
Feb 19 15:27:55 debian jsvc.exec[13663]: 2010-02-19 15:27:55,053 DEBUG
[org.springframework.webflow.conversation.impl.SessionBindingConversationManager]
- <Unlocking conversation 1>
Feb 19 15:27:55 debian jsvc.exec[13663]: 2010-02-19 15:27:55,055 ERROR
[org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/cas3].[cas]]
- <"Servlet.service()" pour la servlet cas a généré une
exception>#012java.lang.NullPointerException#012#011at
org.jasig.cas.authentication.principal.AbstractPersonDirectoryCredentialsToPrincipalResolver.resolvePrincipal_aroundBody0(AbstractPersonDirectoryCredentialsToPrincipalResolver.java:54)#012#011at
org.jasig.cas.authentication.principal.AbstractPersonDirectoryCredentialsToPrincipalResolver.resolvePrincipal_aroundBody1$advice(AbstractPersonDirectoryCredentialsToPrincipalResolver.java:44)#012#011at
org.jasig.cas.authentication.principal.AbstractPersonDirectoryCredentialsToPrincipalResolver.resolvePrincipal(AbstractPersonDirectoryCredentialsToPrincipalResolver.java:1)#012#011at
org.jasig.cas.authentication.AuthenticationManagerImpl.authenticateAndObtainPrincipal(AuthenticationManagerImpl.java:114)#012#011at
org.jasig.cas.authentication.AbstractAuthenticationManager.authenticate_aroundBody0(AbstractAuthenticationManager.java:42)
Feb 19 15:27:55 debian jsvc.exec[13663]: #011at
org.jasig.cas.authentication.AbstractAuthenticationManager.authenticate_aroundBody1$advice(AbstractAuthenticationManager.java:44)#012#011at
org.jasig.cas.authentication.AbstractAuthenticationManager.authenticate(AbstractAuthenticationManager.java:1)#012#011at
org.jasig.cas.CentralAuthenticationServiceImpl.createTicketGrantingTicket_aroundBody10(CentralAuthenticationServiceImpl.java:406)#012#011at
org.jasig.cas.CentralAuthenticationServiceImpl.createTicketGrantingTicket_aroundBody11$advice(CentralAuthenticationServiceImpl.java:44)#012#011at
org.jasig.cas.CentralAuthenticationServiceImpl.createTicketGrantingTicket(CentralAuthenticationServiceImpl.java:1)#012#011at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)#012#011at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)#012#011at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)#012#011at
java.lang.reflect.Method.invoke(Method.java:597)#012#011at
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307
Feb 19 15:27:55 debian jsvc.exec[13663]: )#012#011at
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)#012#011at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)#012#011at
org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80)#012#011at
org.perf4j.aop.AbstractTimingAspect.doPerfLogging(AbstractTimingAspect.java:71)#012#011at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)#012#011at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)#012#011at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)#012#011at
java.lang.reflect.Method.invoke(Method.java:597)#012#011at
org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:622)#012#011at
org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:611)#012#011at
org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(A
Feb 19 15:27:55 debian jsvc.exec[13663]:
spectJAroundAdvice.java:65)#012#011at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)#012#011at
org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)#012#011at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)#012#011at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)#012#011at
$Proxy15.createTicketGrantingTicket(Unknown Source)#012#011at
org.jasig.cas.web.flow.AuthenticationViaFormAction.submit_aroundBody2(AuthenticationViaFormAction.java:87)#012#011at
org.jasig.cas.web.flow.AuthenticationViaFormAction.submit_aroundBody3$advice(AuthenticationViaFormAction.java:44)#012#011at
org.jasig.cas.web.flow.AuthenticationViaFormAction.submit(AuthenticationViaFormAction.java:1)#012#011at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)#012#011at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)#012#011at
sun.reflect.DelegatingMethodAccessorI
Feb 19 15:27:55 debian jsvc.exec[13663]:
mpl.invoke(DelegatingMethodAccessorImpl.java:25)#012#011at
java.lang.reflect.Method.invoke(Method.java:597)#012#011at
ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:830)#012#011at
ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1253)#012#011at
ognl.ObjectMethodAccessor.callMethod(ObjectMethodAccessor.java:68)#012#011at
ognl.OgnlRuntime.callMethod(OgnlRuntime.java:1329)#012#011at
ognl.ASTMethod.getValueBody(ASTMethod.java:90)#012#011at
ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)#012#011at
ognl.SimpleNode.getValue(SimpleNode.java:258)#012#011at
ognl.ASTChain.getValueBody(ASTChain.java:141)#012#011at
ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)#012#011at
ognl.SimpleNode.getValue(SimpleNode.java:258)#012#011at
ognl.Ognl.getValue(Ognl.java:494)#012#011at
org.springframework.binding.expression.ognl.OgnlExpression.getValue(OgnlExpression.java:85)#012#011at
org.springframework.webflow.action.EvaluateAction.doExecute(EvaluateAction.java:77)#012#011at
org.springframework.webflow.action.AbstractAction.execute(AbstractAction.java:188)#012#011at
org.springframework.webflow.executi
Feb 19 15:27:55 debian jsvc.exec[13663]:
on.AnnotatedAction.execute(AnnotatedAction.java:145)#012#011at
org.springframework.webflow.execution.ActionExecutor.execute(ActionExecutor.java:51)#012#011at
org.springframework.webflow.engine.ActionState.doEnter(ActionState.java:101)#012#011at
org.springframework.webflow.engine.State.enter(State.java:194)#012#011at
org.springframework.webflow.engine.Transition.execute(Transition.java:227)#012#011at
org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:391)#012#011at
org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214)#012#011at
org.springframework.webflow.engine.TransitionableState.handleEvent(TransitionableState.java:119)#012#011at
org.springframework.webflow.engine.Flow.handleEvent(Flow.java:555)#012#011at
org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:386)#012#011at
org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210)#012#011at
org.springframework.webflow.engine.ViewState.h
Feb 19 15:27:55 debian jsvc.exec[13663]:
andleEvent(ViewState.java:230)#012#011at
org.springframework.webflow.engine.ViewState.resume(ViewState.java:196)#012#011at
org.springframework.webflow.engine.Flow.resume(Flow.java:545)#012#011at
org.springframework.webflow.engine.impl.FlowExecutionImpl.resume(FlowExecutionImpl.java:259)#012#011at
org.springframework.webflow.executor.FlowExecutorImpl.resumeExecution(FlowExecutorImpl.java:163)#012#011at
org.springframework.webflow.mvc.servlet.FlowHandlerAdapter.handle(FlowHandlerAdapter.java:183)#012#011at
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:771)#012#011at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716)#012#011at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:647)#012#011at
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:563)#012#011at
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)#012#011at
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)#012#011at
org.jasig.cas.web.init.SafeDispatcherServlet.service
Feb 19 15:27:55 debian jsvc.exec[13663]:
_aroundBody2(SafeDispatcherServlet.java:115)#012#011at
org.jasig.cas.web.init.SafeDispatcherServlet.service_aroundBody3$advice(SafeDispatcherServlet.java:44)#012#011at
org.jasig.cas.web.init.SafeDispatcherServlet.service(SafeDispatcherServlet.java:1)#012#011at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)#012#011at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)#012#011at
org.inspektr.common.web.ClientInfoThreadLocalFilter.doFilter(ClientInfoThreadLocalFilter.java:46)#012#011at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)#012#011at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)#012#011at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)#012#011at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)#012#011at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)#012#011at
org.apache.catalina.valves.E
Feb 19 15:27:55 debian jsvc.exec[13663]: rrorRepo
²Feb 19 15:27:55 debian jsvc.exec[13663]:
rtValve.invoke(ErrorReportValve.java:117)#012#011at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)#012#011at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)#012#011at
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:834)#012#011at
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:640)#012#011at
org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1286)#012#011at
java.lang.Thread.run(Thread.java:619)
I am totally lost with these messages :( . Has anybody an idea ?
Thank you very much.
Regards.
Marc
PS :
Debian - Tomcat5.5 - CAS 3.3.6 (built from sources) - SUN JDK
--
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-dev