We have a somewhat critical issue with CAS 4.0.0: We are using LDAP
authentication with the following attribute mapping:
<bean id="ldapAuthenticationHandler"
class="org.jasig.cas.authentication.LdapAuthenticationHandler"
p:principalIdAttribute="uid"
c:authenticator-ref="authenticator">
<property name="principalAttributeMap">
<map>
<!--
| This map provides a simple attribute resolution
mechanism.
| Keys are LDAP attribute names, values are CAS
attribute names.
| Use this facility instead of a PrincipalResolver if
LDAP is
| the only attribute source.
-->
<entry key="uid" value="uid" />
<entry key="mail" value="mail" />
<entry key="cn" value="displayName" />
<entry key="eduPersonPrincipalName"
value="eduPersonPrincipalName" />
</map>
</property>
</bean>
The authentication is working correctly and everything works fine with
our Google SAML integration which requires the eduPersonPrincipalName to
map the Google user ID. Service redirects to mod_auth_cas which seems
to pull the user ID from the service ticket are also working. What is
not working are those things that seem to rely on the definition of the
primaryPrincipalResolver to function.
We are seeing problems with the services management webapp which is
complaining about " BadCredentialsException::No principal was found in
the response from the CAS server."
and when we try to grab the logged in user in the casGenericSuccessView
by . I have logging turned up to debug level and we are seeing that the
principal is being removed from the view model for casGenericSuccessView
because it is null. Here is the snippet of the logs pertinent to a user
hitting the ..../cas/login page again after having successfully logging
in with credentials (and therefore having a TGT generated):
2014-08-25 13:04:35,950 DEBUG
[org.springframework.web.servlet.DispatcherServlet] - <DispatcherServlet
with name 'cas' processing GET request for [/cas/login]>
2014-08-25 13:04:35,951 DEBUG
[org.springframework.webflow.mvc.servlet.FlowHandlerMapping] - <Mapping
request with URI '/cas/login' to flow with id 'login'>
2014-08-25 13:04:35,951 DEBUG
[org.springframework.web.servlet.DispatcherServlet] - <Last-Modified
value for [/cas/login] is: -1>
2014-08-25 13:04:35,951 DEBUG
[org.springframework.webflow.executor.FlowExecutorImpl] - <Launching new
execution of flow 'login' with input null>
2014-08-25 13:04:35,951 DEBUG
[org.springframework.webflow.definition.registry.FlowDefinitionRegistryImpl]
- <Getting FlowDefinition with id 'login'>
2014-08-25 13:04:35,951 DEBUG
[org.springframework.webflow.engine.impl.FlowExecutionImplFactory] -
<Creating new execution of 'login'>
2014-08-25 13:04:35,951 DEBUG
[org.springframework.webflow.execution.factory.ConditionalFlowExecutionListenerLoader]
- <Loaded [1] of possible 1 listeners for this execution request for
flow 'login', the listeners to attach are
list[org.jasig.cas.web.flow.TerminateWebSessionListener@40c908]>
2014-08-25 13:04:35,951 DEBUG
[org.springframework.webflow.engine.impl.FlowExecutionImpl] - <Starting
in org.springframework.webflow.mvc.servlet.MvcExternalContext@b1524b
with input null>
2014-08-25 13:04:35,952 DEBUG [org.springframework.webflow.engine.Flow]
- <Creating [FlowVariable@16ae57 name = 'credential', valueFactory =
[BeanFactoryVariableValueFactory@1a4f5d7 type =
UsernamePasswordCredential]]>
2014-08-25 13:04:35,952 DEBUG
[org.springframework.beans.factory.support.DefaultListableBeanFactory] -
<Creating instance of bean
'org.jasig.cas.authentication.UsernamePasswordCredential'>
2014-08-25 13:04:35,952 DEBUG
[org.springframework.beans.factory.support.DefaultListableBeanFactory] -
<Finished creating instance of bean
'org.jasig.cas.authentication.UsernamePasswordCredential'>
2014-08-25 13:04:35,952 DEBUG
[org.springframework.webflow.execution.ActionExecutor] - <Executing
[EvaluateAction@1548350 expression = initialFlowSetupAction,
resultExpression = [null]]>
2014-08-25 13:04:35,952 DEBUG
[org.springframework.webflow.execution.AnnotatedAction] - <Putting
action execution attributes map[[empty]]>
2014-08-25 13:04:35,953 DEBUG
[org.springframework.beans.factory.support.DefaultListableBeanFactory] -
<Returning cached instance of singleton bean 'initialFlowSetupAction'>
2014-08-25 13:04:35,953 DEBUG
[org.springframework.webflow.execution.ActionExecutor] - <Executing
org.jasig.cas.web.flow.InitialFlowSetupAction@1c99557>
2014-08-25 13:04:35,953 DEBUG
[org.jasig.cas.web.support.CasArgumentExtractor] - <Extractor did not
generate service.>
2014-08-25 13:04:35,958 DEBUG
[org.jasig.cas.support.saml.web.support.SamlArgumentExtractor] -
<Extractor did not generate service.>
2014-08-25 13:04:35,958 DEBUG
[org.jasig.cas.support.saml.web.support.GoogleAccountsArgumentExtractor]
- <Extractor did not generate service.>
2014-08-25 13:04:35,958 DEBUG
[org.springframework.webflow.execution.ActionExecutor] - <Finished
executing org.jasig.cas.web.flow.InitialFlowSetupAction@1c99557; result
= success>
2014-08-25 13:04:35,958 DEBUG
[org.springframework.webflow.execution.AnnotatedAction] - <Clearing
action execution attributes map[[empty]]>
2014-08-25 13:04:35,959 DEBUG
[org.springframework.webflow.execution.ActionExecutor] - <Finished
executing [EvaluateAction@1548350 expression = initialFlowSetupAction,
resultExpression = [null]]; result = success>
2014-08-25 13:04:35,959 DEBUG
[org.springframework.webflow.engine.ActionState] - <Entering state
'ticketGrantingTicketCheck' of flow 'login'>
2014-08-25 13:04:35,959 DEBUG
[org.springframework.webflow.execution.ActionExecutor] - <Executing
[EvaluateAction@da9653 expression =
ticketGrantingTicketCheckAction.checkValidity(flowRequestContext),
resultExpression = [null]]>
2014-08-25 13:04:35,959 DEBUG
[org.springframework.webflow.execution.AnnotatedAction] - <Putting
action execution attributes map[[empty]]>
2014-08-25 13:04:35,959 DEBUG
[org.springframework.beans.factory.support.DefaultListableBeanFactory] -
<Returning cached instance of singleton bean
'ticketGrantingTicketCheckAction'>
2014-08-25 13:04:35,959 DEBUG
[org.springframework.webflow.execution.AnnotatedAction] - <Clearing
action execution attributes map[[empty]]>
2014-08-25 13:04:35,959 DEBUG
[org.springframework.webflow.execution.ActionExecutor] - <Finished
executing [EvaluateAction@da9653 expression =
ticketGrantingTicketCheckAction.checkValidity(flowRequestContext),
resultExpression = [null]]; result = valid>
2014-08-25 13:04:35,959 DEBUG
[org.springframework.webflow.engine.Transition] - <Executing
[Transition@b14b20 on = valid, to = hasServiceCheck]>
2014-08-25 13:04:35,959 DEBUG
[org.springframework.webflow.engine.Transition] - <Exiting state
'ticketGrantingTicketCheck'>
2014-08-25 13:04:35,959 DEBUG
[org.springframework.webflow.engine.DecisionState] - <Entering state
'hasServiceCheck' of flow 'login'>
2014-08-25 13:04:35,960 DEBUG
[org.springframework.webflow.engine.Transition] - <Executing
[Transition@1dadb42 on = *, to = viewGenericLoginSuccess]>
2014-08-25 13:04:35,960 DEBUG
[org.springframework.webflow.engine.Transition] - <Exiting state
'hasServiceCheck'>
2014-08-25 13:04:35,960 DEBUG
[org.springframework.webflow.engine.EndState] - <Entering state
'viewGenericLoginSuccess' of flow 'login'>
2014-08-25 13:04:35,960 DEBUG
[org.springframework.webflow.execution.ActionExecutor] - <Executing
[EvaluateAction@19c5d1c expression =
authenticationSupport.getAuthenticatedPrincipalFrom(requestScope.ticketGrantingTicketId),
resultExpression = requestScope.principal]>
2014-08-25 13:04:35,960 DEBUG
[org.springframework.webflow.execution.AnnotatedAction] - <Putting
action execution attributes map[[empty]]>
2014-08-25 13:04:35,960 DEBUG
[org.springframework.beans.factory.support.DefaultListableBeanFactory] -
<Returning cached instance of singleton bean 'authenticationSupport'>
2014-08-25 13:04:35,960 DEBUG
[org.springframework.webflow.execution.AnnotatedAction] - <Clearing
action execution attributes map[[empty]]>
2014-08-25 13:04:35,960 DEBUG
[org.springframework.webflow.execution.ActionExecutor] - <Finished
executing [EvaluateAction@19c5d1c expression =
authenticationSupport.getAuthenticatedPrincipalFrom(requestScope.ticketGrantingTicketId),
resultExpression = requestScope.principal]; result = success>
2014-08-25 13:04:35,960 DEBUG
[org.springframework.webflow.execution.ActionExecutor] - <Executing
org.springframework.webflow.action.ViewFactoryActionAdapter@1bc7620>
2014-08-25 13:04:35,960 DEBUG
[org.springframework.webflow.mvc.view.AbstractMvcView] - <Rendering MVC
[org.springframework.web.servlet.view.JstlView: name
'casLoginGenericSuccessView'; URL
[/WEB-INF/view/jsp/default/ui/casGenericSuccess.jsp]] with model map
[{principal=null, currentUser=null, credential=null+password,
warnCookieValue=false, service=null,
ticketGrantingTicketId=TGT-1-0KFqWA1EeLlP2YyDEegWUXze2sreWrpKevPiyVQgPQSsxL9e6A-caramel-dev.cwru.edu,
flashScope=map[[empty]],
flowRequestContext=[RequestControlContextImpl@1d7ce2d externalContext =
org.springframework.webflow.mvc.servlet.MvcExternalContext@b1524b,
currentEvent = valid, requestScope = map['principal' -> [null]],
attributes = map[[empty]], messageContext =
[DefaultMessageContext@1300dd2 sourceMessages = map[[null] ->
list[[empty]]]], flowExecution = [FlowExecutionImpl@47ec7f flow =
'login', flowSessions = list[[FlowSessionImpl@52cc36 flow = 'login',
state = 'viewGenericLoginSuccess', scope = map['credential' ->
null+password, 'warnCookieValue' -> false, 'service' -> [null],
'ticketGrantingTicketId' ->
'TGT-1-0KFqWA1EeLlP2YyDEegWUXze2sreWrpKevPiyVQgPQSsxL9e6A-caramel-dev.cwru.edu']]]]]}]>
2014-08-25 13:04:35,961 DEBUG
[org.springframework.web.servlet.view.JstlView] - <Removed model object
'principal' from request in view with name 'casLoginGenericSuccessView'>
2014-08-25 13:04:35,961 DEBUG
[org.springframework.web.servlet.view.JstlView] - <Removed model object
'currentUser' from request in view with name 'casLoginGenericSuccessView'>
2014-08-25 13:04:35,961 DEBUG
[org.springframework.web.servlet.view.JstlView] - <Added model object
'credential' of type
[org.jasig.cas.authentication.UsernamePasswordCredential] to request in
view with name 'casLoginGenericSuccessView'>
2014-08-25 13:04:35,961 DEBUG
[org.springframework.web.servlet.view.JstlView] - <Added model object
'warnCookieValue' of type [java.lang.Boolean] to request in view with
name 'casLoginGenericSuccessView'>
2014-08-25 13:04:35,961 DEBUG
[org.springframework.web.servlet.view.JstlView] - <Removed model object
'service' from request in view with name 'casLoginGenericSuccessView'>
2014-08-25 13:04:35,961 DEBUG
[org.springframework.web.servlet.view.JstlView] - <Added model object
'ticketGrantingTicketId' of type [java.lang.String] to request in view
with name 'casLoginGenericSuccessView'>
2014-08-25 13:04:35,961 DEBUG
[org.springframework.web.servlet.view.JstlView] - <Added model object
'flashScope' of type
[org.springframework.webflow.core.collection.LocalAttributeMap] to
request in view with name 'casLoginGenericSuccessView'>
2014-08-25 13:04:35,961 DEBUG
[org.springframework.web.servlet.view.JstlView] - <Added model object
'flowRequestContext' of type
[org.springframework.webflow.engine.impl.RequestControlContextImpl] to
request in view with name 'casLoginGenericSuccessView'>
2014-08-25 13:04:35,961 DEBUG
[org.springframework.web.servlet.view.JstlView] - <Forwarding to
resource [/WEB-INF/view/jsp/default/ui/casGenericSuccess.jsp] in
InternalResourceView 'casLoginGenericSuccessView'>
2014-08-25 13:04:35,962 DEBUG
[org.jasig.cas.web.support.CasArgumentExtractor] - <Extractor did not
generate service.>
2014-08-25 13:04:35,962 DEBUG
[org.jasig.cas.support.saml.web.support.SamlArgumentExtractor] -
<Extractor did not generate service.>
2014-08-25 13:04:35,962 DEBUG
[org.jasig.cas.support.saml.web.support.GoogleAccountsArgumentExtractor]
- <Extractor did not generate service.>
2014-08-25 13:04:35,963 DEBUG
[org.springframework.webflow.execution.ActionExecutor] - <Finished
executing
org.springframework.webflow.action.ViewFactoryActionAdapter@1bc7620;
result = success>
2014-08-25 13:04:35,963 DEBUG
[org.jasig.cas.web.flow.TerminateWebSessionListener] - <Terminate web
session 07D8D27C660BB9B2657A48A3664AAD26 in 2 seconds>
2014-08-25 13:04:35,963 DEBUG
[org.springframework.webflow.engine.Transition] - <Completed transition
execution. As a result, the flow execution has ended>
2014-08-25 13:04:35,963 DEBUG
[org.springframework.webflow.engine.Transition] - <Completed transition
execution. As a result, the flow execution has ended>
2014-08-25 13:04:35,963 DEBUG
[org.springframework.web.servlet.DispatcherServlet] - <Null ModelAndView
returned to DispatcherServlet with name 'cas': assuming HandlerAdapter
completed request handling>
2014-08-25 13:04:35,963 DEBUG
[org.springframework.web.servlet.DispatcherServlet] - <Successfully
completed request>
2014-08-25 13:04:36,082 DEBUG
[org.springframework.web.servlet.DispatcherServlet] - <DispatcherServlet
with name 'cas' processing GET request for [/cas/login]>
2014-08-25 13:04:36,082 DEBUG
[org.springframework.webflow.mvc.servlet.FlowHandlerMapping] - <Mapping
request with URI '/cas/login' to flow with id 'login'>
2014-08-25 13:04:36,082 DEBUG
[org.springframework.web.servlet.DispatcherServlet] - <Last-Modified
value for [/cas/login] is: -1>
2014-08-25 13:04:36,082 DEBUG
[org.springframework.webflow.executor.FlowExecutorImpl] - <Launching new
execution of flow 'login' with input null>
2014-08-25 13:04:36,082 DEBUG
[org.springframework.webflow.definition.registry.FlowDefinitionRegistryImpl]
- <Getting FlowDefinition with id 'login'>
2014-08-25 13:04:36,082 DEBUG
[org.springframework.webflow.engine.impl.FlowExecutionImplFactory] -
<Creating new execution of 'login'>
2014-08-25 13:04:36,082 DEBUG
[org.springframework.webflow.execution.factory.ConditionalFlowExecutionListenerLoader]
- <Loaded [1] of possible 1 listeners for this execution request for
flow 'login', the listeners to attach are
list[org.jasig.cas.web.flow.TerminateWebSessionListener@40c908]>
2014-08-25 13:04:36,082 DEBUG
[org.springframework.webflow.engine.impl.FlowExecutionImpl] - <Starting
in org.springframework.webflow.mvc.servlet.MvcExternalContext@16816b2
with input null>
2014-08-25 13:04:36,083 DEBUG [org.springframework.webflow.engine.Flow]
- <Creating [FlowVariable@16ae57 name = 'credential', valueFactory =
[BeanFactoryVariableValueFactory@1a4f5d7 type =
UsernamePasswordCredential]]>
2014-08-25 13:04:36,083 DEBUG
[org.springframework.beans.factory.support.DefaultListableBeanFactory] -
<Creating instance of bean
'org.jasig.cas.authentication.UsernamePasswordCredential'>
2014-08-25 13:04:36,083 DEBUG
[org.springframework.beans.factory.support.DefaultListableBeanFactory] -
<Finished creating instance of bean
'org.jasig.cas.authentication.UsernamePasswordCredential'>
2014-08-25 13:04:36,083 DEBUG
[org.springframework.webflow.execution.ActionExecutor] - <Executing
[EvaluateAction@1548350 expression = initialFlowSetupAction,
resultExpression = [null]]>
2014-08-25 13:04:36,083 DEBUG
[org.springframework.webflow.execution.AnnotatedAction] - <Putting
action execution attributes map[[empty]]>
2014-08-25 13:04:36,083 DEBUG
[org.springframework.beans.factory.support.DefaultListableBeanFactory] -
<Returning cached instance of singleton bean 'initialFlowSetupAction'>
2014-08-25 13:04:36,083 DEBUG
[org.springframework.webflow.execution.ActionExecutor] - <Executing
org.jasig.cas.web.flow.InitialFlowSetupAction@1c99557>
2014-08-25 13:04:36,083 DEBUG
[org.jasig.cas.web.support.CasArgumentExtractor] - <Extractor did not
generate service.>
2014-08-25 13:04:36,083 DEBUG
[org.jasig.cas.support.saml.web.support.SamlArgumentExtractor] -
<Extractor did not generate service.>
2014-08-25 13:04:36,083 DEBUG
[org.jasig.cas.support.saml.web.support.GoogleAccountsArgumentExtractor]
- <Extractor did not generate service.>
2014-08-25 13:04:36,083 DEBUG
[org.springframework.webflow.execution.ActionExecutor] - <Finished
executing org.jasig.cas.web.flow.InitialFlowSetupAction@1c99557; result
= success>
2014-08-25 13:04:36,083 DEBUG
[org.springframework.webflow.execution.AnnotatedAction] - <Clearing
action execution attributes map[[empty]]>
2014-08-25 13:04:36,083 DEBUG
[org.springframework.webflow.execution.ActionExecutor] - <Finished
executing [EvaluateAction@1548350 expression = initialFlowSetupAction,
resultExpression = [null]]; result = success>
2014-08-25 13:04:36,083 DEBUG
[org.springframework.webflow.engine.ActionState] - <Entering state
'ticketGrantingTicketCheck' of flow 'login'>
2014-08-25 13:04:36,083 DEBUG
[org.springframework.webflow.execution.ActionExecutor] - <Executing
[EvaluateAction@da9653 expression =
ticketGrantingTicketCheckAction.checkValidity(flowRequestContext),
resultExpression = [null]]>
2014-08-25 13:04:36,083 DEBUG
[org.springframework.webflow.execution.AnnotatedAction] - <Putting
action execution attributes map[[empty]]>
2014-08-25 13:04:36,083 DEBUG
[org.springframework.beans.factory.support.DefaultListableBeanFactory] -
<Returning cached instance of singleton bean
'ticketGrantingTicketCheckAction'>
2014-08-25 13:04:36,084 DEBUG
[org.springframework.webflow.execution.AnnotatedAction] - <Clearing
action execution attributes map[[empty]]>
2014-08-25 13:04:36,084 DEBUG
[org.springframework.webflow.execution.ActionExecutor] - <Finished
executing [EvaluateAction@da9653 expression =
ticketGrantingTicketCheckAction.checkValidity(flowRequestContext),
resultExpression = [null]]; result = valid>
2014-08-25 13:04:36,084 DEBUG
[org.springframework.webflow.engine.Transition] - <Executing
[Transition@b14b20 on = valid, to = hasServiceCheck]>
2014-08-25 13:04:36,084 DEBUG
[org.springframework.webflow.engine.Transition] - <Exiting state
'ticketGrantingTicketCheck'>
2014-08-25 13:04:36,084 DEBUG
[org.springframework.webflow.engine.DecisionState] - <Entering state
'hasServiceCheck' of flow 'login'>
2014-08-25 13:04:36,084 DEBUG
[org.springframework.webflow.engine.Transition] - <Executing
[Transition@1dadb42 on = *, to = viewGenericLoginSuccess]>
2014-08-25 13:04:36,084 DEBUG
[org.springframework.webflow.engine.Transition] - <Exiting state
'hasServiceCheck'>
2014-08-25 13:04:36,084 DEBUG
[org.springframework.webflow.engine.EndState] - <Entering state
'viewGenericLoginSuccess' of flow 'login'>
2014-08-25 13:04:36,084 DEBUG
[org.springframework.webflow.execution.ActionExecutor] - <Executing
[EvaluateAction@19c5d1c expression =
authenticationSupport.getAuthenticatedPrincipalFrom(requestScope.ticketGrantingTicketId),
resultExpression = requestScope.principal]>
2014-08-25 13:04:36,084 DEBUG
[org.springframework.webflow.execution.AnnotatedAction] - <Putting
action execution attributes map[[empty]]>
2014-08-25 13:04:36,084 DEBUG
[org.springframework.beans.factory.support.DefaultListableBeanFactory] -
<Returning cached instance of singleton bean 'authenticationSupport'>
2014-08-25 13:04:36,084 DEBUG
[org.springframework.webflow.execution.AnnotatedAction] - <Clearing
action execution attributes map[[empty]]>
2014-08-25 13:04:36,084 DEBUG
[org.springframework.webflow.execution.ActionExecutor] - <Finished
executing [EvaluateAction@19c5d1c expression =
authenticationSupport.getAuthenticatedPrincipalFrom(requestScope.ticketGrantingTicketId),
resultExpression = requestScope.principal]; result = success>
2014-08-25 13:04:36,084 DEBUG
[org.springframework.webflow.execution.ActionExecutor] - <Executing
org.springframework.webflow.action.ViewFactoryActionAdapter@1bc7620>
2014-08-25 13:04:36,084 DEBUG
[org.springframework.webflow.mvc.view.AbstractMvcView] - <Rendering MVC
[org.springframework.web.servlet.view.JstlView: name
'casLoginGenericSuccessView'; URL
[/WEB-INF/view/jsp/default/ui/casGenericSuccess.jsp]] with model map
[{principal=null, currentUser=null, credential=null+password,
warnCookieValue=false, service=null,
ticketGrantingTicketId=TGT-1-0KFqWA1EeLlP2YyDEegWUXze2sreWrpKevPiyVQgPQSsxL9e6A-caramel-dev.cwru.edu,
flashScope=map[[empty]],
flowRequestContext=[RequestControlContextImpl@1186a07 externalContext =
org.springframework.webflow.mvc.servlet.MvcExternalContext@16816b2,
currentEvent = valid, requestScope = map['principal' -> [null]],
attributes = map[[empty]], messageContext =
[DefaultMessageContext@1bb612e sourceMessages = map[[null] ->
list[[empty]]]], flowExecution = [FlowExecutionImpl@142d83d flow =
'login', flowSessions = list[[FlowSessionImpl@789f21 flow = 'login',
state = 'viewGenericLoginSuccess', scope = map['credential' ->
null+password, 'warnCookieValue' -> false, 'service' -> [null],
'ticketGrantingTicketId' ->
'TGT-1-0KFqWA1EeLlP2YyDEegWUXze2sreWrpKevPiyVQgPQSsxL9e6A-caramel-dev.cwru.edu']]]]]}]>
2014-08-25 13:04:36,084 DEBUG
[org.springframework.web.servlet.view.JstlView] - <Removed model object
'principal' from request in view with name 'casLoginGenericSuccessView'>
2014-08-25 13:04:36,084 DEBUG
[org.springframework.web.servlet.view.JstlView] - <Removed model object
'currentUser' from request in view with name 'casLoginGenericSuccessView'>
2014-08-25 13:04:36,084 DEBUG
[org.springframework.web.servlet.view.JstlView] - <Added model object
'credential' of type
[org.jasig.cas.authentication.UsernamePasswordCredential] to request in
view with name 'casLoginGenericSuccessView'>
2014-08-25 13:04:36,084 DEBUG
[org.springframework.web.servlet.view.JstlView] - <Added model object
'warnCookieValue' of type [java.lang.Boolean] to request in view with
name 'casLoginGenericSuccessView'>
2014-08-25 13:04:36,084 DEBUG
[org.springframework.web.servlet.view.JstlView] - <Removed model object
'service' from request in view with name 'casLoginGenericSuccessView'>
2014-08-25 13:04:36,084 DEBUG
[org.springframework.web.servlet.view.JstlView] - <Added model object
'ticketGrantingTicketId' of type [java.lang.String] to request in view
with name 'casLoginGenericSuccessView'>
2014-08-25 13:04:36,084 DEBUG
[org.springframework.web.servlet.view.JstlView] - <Added model object
'flashScope' of type
[org.springframework.webflow.core.collection.LocalAttributeMap] to
request in view with name 'casLoginGenericSuccessView'>
2014-08-25 13:04:36,084 DEBUG
[org.springframework.web.servlet.view.JstlView] - <Added model object
'flowRequestContext' of type
[org.springframework.webflow.engine.impl.RequestControlContextImpl] to
request in view with name 'casLoginGenericSuccessView'>
2014-08-25 13:04:36,085 DEBUG
[org.springframework.web.servlet.view.JstlView] - <Forwarding to
resource [/WEB-INF/view/jsp/default/ui/casGenericSuccess.jsp] in
InternalResourceView 'casLoginGenericSuccessView'>
2014-08-25 13:04:36,085 DEBUG
[org.jasig.cas.web.support.CasArgumentExtractor] - <Extractor did not
generate service.>
2014-08-25 13:04:36,085 DEBUG
[org.jasig.cas.support.saml.web.support.SamlArgumentExtractor] -
<Extractor did not generate service.>
2014-08-25 13:04:36,085 DEBUG
[org.jasig.cas.support.saml.web.support.GoogleAccountsArgumentExtractor]
- <Extractor did not generate service.>
2014-08-25 13:04:36,086 DEBUG
[org.springframework.webflow.execution.ActionExecutor] - <Finished
executing
org.springframework.webflow.action.ViewFactoryActionAdapter@1bc7620;
result = success>
2014-08-25 13:04:36,086 DEBUG
[org.jasig.cas.web.flow.TerminateWebSessionListener] - <Terminate web
session 07D8D27C660BB9B2657A48A3664AAD26 in 2 seconds>
2014-08-25 13:04:36,086 DEBUG
[org.springframework.webflow.engine.Transition] - <Completed transition
execution. As a result, the flow execution has ended>
2014-08-25 13:04:36,086 DEBUG
[org.springframework.webflow.engine.Transition] - <Completed transition
execution. As a result, the flow execution has ended>
2014-08-25 13:04:36,086 DEBUG
[org.springframework.web.servlet.DispatcherServlet] - <Null ModelAndView
returned to DispatcherServlet with name 'cas': assuming HandlerAdapter
completed request handling>
2014-08-25 13:04:36,086 DEBUG
[org.springframework.web.servlet.DispatcherServlet] - <Successfully
completed request>
We are currently using the "stub" primaryPrincipalResolver as defined in
the original source:
<!--
| Resolves a principal from a credential using an attribute
repository that is configured to resolve
| against a deployer-specific store (e.g. LDAP).
-->
<bean id="primaryPrincipalResolver"
class="org.jasig.cas.authentication.principal.PersonDirectoryPrincipalResolver"
>
<property name="attributeRepository" ref="attributeRepository" />
</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"
p:backingMap-ref="attrRepoBackingMap" />
<util:map id="attrRepoBackingMap">
<entry key="uid" value="uid" />
</util:map>
My searches through the documentation seem to suggest that the
definition needs to be changed to reflect the use of the LDAP
authentication, but I can find no solid examples that would guide me
through HOW to make the changes. Looking through the user list, seems
to indicate several other people are having the same or similar issues
getting primaryPrincipalResolver to behave properly.
Any help would be very greatly appreciated.
--
--
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-user