|
@@ -0,0 +1,267 @@
|
|
|
+<?xml version="1.0" encoding="UTF-8"?>
|
|
|
+<!--
|
|
|
+
|
|
|
+ Licensed to Jasig under one or more contributor license
|
|
|
+ agreements. See the NOTICE file distributed with this work
|
|
|
+ for additional information regarding copyright ownership.
|
|
|
+ Jasig licenses this file to you under the Apache License,
|
|
|
+ Version 2.0 (the "License"); you may not use this file
|
|
|
+ except in compliance with the License. You may obtain a
|
|
|
+ copy of the License at the following location:
|
|
|
+
|
|
|
+ http://www.apache.org/licenses/LICENSE-2.0
|
|
|
+
|
|
|
+ Unless required by applicable law or agreed to in writing,
|
|
|
+ software distributed under the License is distributed on an
|
|
|
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
|
+ KIND, either express or implied. See the License for the
|
|
|
+ specific language governing permissions and limitations
|
|
|
+ under the License.
|
|
|
+
|
|
|
+-->
|
|
|
+<beans xmlns="http://www.springframework.org/schema/beans"
|
|
|
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
|
+ xmlns:webflow="http://www.springframework.org/schema/webflow-config"
|
|
|
+ xmlns:p="http://www.springframework.org/schema/p"
|
|
|
+ xmlns:c="http://www.springframework.org/schema/c"
|
|
|
+ xmlns:util="http://www.springframework.org/schema/util"
|
|
|
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
|
|
|
+ http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
|
|
|
+ http://www.springframework.org/schema/webflow-config http://www.springframework.org/schema/webflow-config/spring-webflow-config-2.3.xsd">
|
|
|
+
|
|
|
+ <import resource="spring-configuration/propertyFileConfigurer.xml"/>
|
|
|
+
|
|
|
+ <!-- Theme Resolver -->
|
|
|
+ <bean id="themeResolver" class="org.jasig.cas.services.web.ServiceThemeResolver"
|
|
|
+ p:defaultThemeName="${cas.themeResolver.defaultThemeName}"
|
|
|
+ p:argumentExtractors-ref="argumentExtractors"
|
|
|
+ p:servicesManager-ref="servicesManager">
|
|
|
+ <property name="mobileBrowsers">
|
|
|
+ <util:map>
|
|
|
+ <entry key=".*iPhone.*" value="iphone"/>
|
|
|
+ <entry key=".*Android.*" value="iphone"/>
|
|
|
+ <entry key=".*Safari.*Pre.*" value="iphone"/>
|
|
|
+ <entry key=".*Nokia.*AppleWebKit.*" value="iphone"/>
|
|
|
+ </util:map>
|
|
|
+ </property>
|
|
|
+ </bean>
|
|
|
+
|
|
|
+ <!-- View Resolver -->
|
|
|
+ <bean id="viewResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver"
|
|
|
+ p:order="0">
|
|
|
+ <property name="basenames">
|
|
|
+ <util:list>
|
|
|
+ <value>${cas.viewResolver.basename}</value>
|
|
|
+ <value>protocol_views</value>
|
|
|
+ </util:list>
|
|
|
+ </property>
|
|
|
+ </bean>
|
|
|
+
|
|
|
+ <!-- Locale Resolver -->
|
|
|
+ <bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver" p:defaultLocale="en" />
|
|
|
+
|
|
|
+ <bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"/>
|
|
|
+
|
|
|
+ <bean id="urlBasedViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"
|
|
|
+ p:viewClass="org.springframework.web.servlet.view.InternalResourceView"
|
|
|
+ p:prefix="/WEB-INF/view/jsp/"
|
|
|
+ p:suffix=".jsp"
|
|
|
+ p:order="1"/>
|
|
|
+
|
|
|
+ <bean id="errorHandlerResolver" class="org.jasig.cas.web.FlowExecutionExceptionResolver"/>
|
|
|
+
|
|
|
+ <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
|
|
|
+
|
|
|
+ <bean
|
|
|
+ id="handlerMappingC"
|
|
|
+ class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"
|
|
|
+ p:alwaysUseFullPath="true">
|
|
|
+ <property name="mappings">
|
|
|
+ <util:properties>
|
|
|
+ <prop key="/serviceValidate">serviceValidateController</prop>
|
|
|
+ <prop key="/proxyValidate">proxyValidateController</prop>
|
|
|
+
|
|
|
+ <prop key="/p3/serviceValidate">v3ServiceValidateController</prop>
|
|
|
+ <prop key="/p3/proxyValidate">v3ProxyValidateController</prop>
|
|
|
+
|
|
|
+ <prop key="/validate">legacyValidateController</prop>
|
|
|
+ <prop key="/proxy">proxyController</prop>
|
|
|
+ <prop key="/authorizationFailure.html">passThroughController</prop>
|
|
|
+ <prop key="/status">healthCheckController</prop>
|
|
|
+ <prop key="/statistics">statisticsController</prop>
|
|
|
+ </util:properties>
|
|
|
+ </property>
|
|
|
+ <!--
|
|
|
+ uncomment this to enable sending PageRequest events.
|
|
|
+ <property
|
|
|
+ name="interceptors">
|
|
|
+ <list>
|
|
|
+ <ref bean="pageRequestHandlerInterceptorAdapter" />
|
|
|
+ </list>
|
|
|
+ </property>
|
|
|
+ -->
|
|
|
+ </bean>
|
|
|
+
|
|
|
+ <bean id="passThroughController" class="org.springframework.web.servlet.mvc.UrlFilenameViewController"/>
|
|
|
+
|
|
|
+ <!-- login webflow configuration -->
|
|
|
+ <bean id="loginFlowHandlerMapping" class="org.springframework.webflow.mvc.servlet.FlowHandlerMapping"
|
|
|
+ p:flowRegistry-ref="loginFlowRegistry" p:order="2">
|
|
|
+ <property name="interceptors">
|
|
|
+ <ref local="localeChangeInterceptor" />
|
|
|
+ </property>
|
|
|
+ </bean>
|
|
|
+
|
|
|
+ <bean id="loginHandlerAdapter" class="org.jasig.cas.web.flow.SelectiveFlowHandlerAdapter"
|
|
|
+ p:supportedFlowId="login" p:flowExecutor-ref="loginFlowExecutor" p:flowUrlHandler-ref="loginFlowUrlHandler" />
|
|
|
+
|
|
|
+ <bean id="loginFlowUrlHandler" class="org.jasig.cas.web.flow.CasDefaultFlowUrlHandler" />
|
|
|
+
|
|
|
+ <webflow:flow-executor id="loginFlowExecutor" flow-registry="loginFlowRegistry">
|
|
|
+ <webflow:flow-execution-attributes>
|
|
|
+ <webflow:always-redirect-on-pause value="false" />
|
|
|
+ <webflow:redirect-in-same-state value="false" />
|
|
|
+ </webflow:flow-execution-attributes>
|
|
|
+ <webflow:flow-execution-listeners>
|
|
|
+ <webflow:listener ref="terminateWebSessionListener" />
|
|
|
+ </webflow:flow-execution-listeners>
|
|
|
+ </webflow:flow-executor>
|
|
|
+
|
|
|
+ <webflow:flow-registry id="loginFlowRegistry" flow-builder-services="builder">
|
|
|
+ <webflow:flow-location path="/WEB-INF/login-webflow.xml" id="login" />
|
|
|
+ </webflow:flow-registry>
|
|
|
+
|
|
|
+ <!-- logout webflow configuration -->
|
|
|
+ <bean id="logoutFlowHandlerMapping" class="org.springframework.webflow.mvc.servlet.FlowHandlerMapping"
|
|
|
+ p:flowRegistry-ref="logoutFlowRegistry" p:order="3">
|
|
|
+ <property name="interceptors">
|
|
|
+ <ref local="localeChangeInterceptor" />
|
|
|
+ </property>
|
|
|
+ </bean>
|
|
|
+
|
|
|
+ <bean id="logoutHandlerAdapter" class="org.jasig.cas.web.flow.SelectiveFlowHandlerAdapter"
|
|
|
+ p:supportedFlowId="logout" p:flowExecutor-ref="logoutFlowExecutor" p:flowUrlHandler-ref="logoutFlowUrlHandler" />
|
|
|
+
|
|
|
+ <bean id="logoutFlowUrlHandler" class="org.jasig.cas.web.flow.CasDefaultFlowUrlHandler"
|
|
|
+ p:flowExecutionKeyParameter="RelayState" />
|
|
|
+
|
|
|
+ <webflow:flow-executor id="logoutFlowExecutor" flow-registry="logoutFlowRegistry">
|
|
|
+ <webflow:flow-execution-attributes>
|
|
|
+ <webflow:always-redirect-on-pause value="false" />
|
|
|
+ <webflow:redirect-in-same-state value="false" />
|
|
|
+ </webflow:flow-execution-attributes>
|
|
|
+ <webflow:flow-execution-listeners>
|
|
|
+ <webflow:listener ref="terminateWebSessionListener" />
|
|
|
+ </webflow:flow-execution-listeners>
|
|
|
+ </webflow:flow-executor>
|
|
|
+
|
|
|
+ <webflow:flow-registry id="logoutFlowRegistry" flow-builder-services="builder">
|
|
|
+ <webflow:flow-location path="/WEB-INF/logout-webflow.xml" id="logout" />
|
|
|
+ </webflow:flow-registry>
|
|
|
+
|
|
|
+ <webflow:flow-builder-services id="builder" view-factory-creator="viewFactoryCreator" expression-parser="expressionParser" />
|
|
|
+
|
|
|
+ <bean id="logoutConversionService" class="org.jasig.cas.web.flow.LogoutConversionService" />
|
|
|
+
|
|
|
+ <bean id="terminateWebSessionListener" class="org.jasig.cas.web.flow.TerminateWebSessionListener" />
|
|
|
+
|
|
|
+ <bean id="expressionParser" class="org.springframework.webflow.expression.spel.WebFlowSpringELExpressionParser"
|
|
|
+ c:conversionService-ref="logoutConversionService">
|
|
|
+ <constructor-arg>
|
|
|
+ <bean class="org.springframework.expression.spel.standard.SpelExpressionParser" />
|
|
|
+ </constructor-arg>
|
|
|
+ </bean>
|
|
|
+
|
|
|
+ <bean id="viewFactoryCreator" class="org.springframework.webflow.mvc.builder.MvcViewFactoryCreator">
|
|
|
+ <property name="viewResolvers">
|
|
|
+ <util:list>
|
|
|
+ <ref local="viewResolver"/>
|
|
|
+ </util:list>
|
|
|
+ </property>
|
|
|
+ </bean>
|
|
|
+
|
|
|
+ <!-- CAS 2 Protocol service/proxy validation -->
|
|
|
+ <bean id="abstractValidateController" class="org.jasig.cas.web.ServiceValidateController" abstract="true"
|
|
|
+ p:centralAuthenticationService-ref="centralAuthenticationService"
|
|
|
+ p:proxyHandler-ref="proxy20Handler"
|
|
|
+ p:argumentExtractor-ref="casArgumentExtractor"/>
|
|
|
+
|
|
|
+ <bean id="proxyValidateController" parent="abstractValidateController"/>
|
|
|
+
|
|
|
+ <bean id="serviceValidateController" parent="abstractValidateController"
|
|
|
+ p:validationSpecificationClass="org.jasig.cas.validation.Cas20WithoutProxyingValidationSpecification"/>
|
|
|
+
|
|
|
+ <!-- CAS 3 Protocol service/proxy validation with attributes -->
|
|
|
+ <bean id="v3AbstractValidateController" parent="abstractValidateController" abstract="true"
|
|
|
+ p:successView="cas3ServiceSuccessView"
|
|
|
+ p:failureView="cas3ServiceFailureView" />
|
|
|
+
|
|
|
+ <bean id="v3ProxyValidateController" parent="v3AbstractValidateController" />
|
|
|
+
|
|
|
+ <bean id="v3ServiceValidateController" parent="v3AbstractValidateController"
|
|
|
+ p:validationSpecificationClass="org.jasig.cas.validation.Cas20WithoutProxyingValidationSpecification"/>
|
|
|
+
|
|
|
+ <!-- CAS 1 legacy validation -->
|
|
|
+ <bean id="legacyValidateController" parent="abstractValidateController"
|
|
|
+ p:proxyHandler-ref="proxy10Handler"
|
|
|
+ p:successView="cas1ServiceSuccessView"
|
|
|
+ p:failureView="cas1ServiceFailureView"
|
|
|
+ p:validationSpecificationClass="org.jasig.cas.validation.Cas10ProtocolValidationSpecification"/>
|
|
|
+
|
|
|
+ <bean id="proxyController" class="org.jasig.cas.web.ProxyController"
|
|
|
+ p:centralAuthenticationService-ref="centralAuthenticationService"/>
|
|
|
+
|
|
|
+ <bean id="statisticsController" class="org.jasig.cas.web.StatisticsController"
|
|
|
+ p:casTicketSuffix="${host.name}" c:ticketRegistry-ref="ticketRegistry" />
|
|
|
+
|
|
|
+ <bean id="logoutAction" class="org.jasig.cas.web.flow.LogoutAction"
|
|
|
+ p:servicesManager-ref="servicesManager"
|
|
|
+ p:followServiceRedirects="${cas.logout.followServiceRedirects:false}"/>
|
|
|
+
|
|
|
+ <bean id="frontChannelLogoutAction" class="org.jasig.cas.web.flow.FrontChannelLogoutAction"
|
|
|
+ c:logoutManager-ref="logoutManager"/>
|
|
|
+
|
|
|
+ <bean id="healthCheckController" class="org.jasig.cas.web.HealthCheckController"
|
|
|
+ p:healthCheckMonitor-ref="healthCheckMonitor"/>
|
|
|
+
|
|
|
+ <bean id="initialFlowSetupAction" class="org.jasig.cas.web.flow.InitialFlowSetupAction"
|
|
|
+ p:argumentExtractors-ref="argumentExtractors"
|
|
|
+ p:warnCookieGenerator-ref="warnCookieGenerator"
|
|
|
+ p:ticketGrantingTicketCookieGenerator-ref="ticketGrantingTicketCookieGenerator"/>
|
|
|
+
|
|
|
+ <bean id="authenticationViaFormAction" class="org.jasig.cas.web.flow.AuthenticationViaFormAction"
|
|
|
+ p:centralAuthenticationService-ref="centralAuthenticationService"
|
|
|
+ p:warnCookieGenerator-ref="warnCookieGenerator"
|
|
|
+ p:ticketRegistry-ref="ticketRegistry"/>
|
|
|
+
|
|
|
+ <bean id="authenticationExceptionHandler" class="org.jasig.cas.web.flow.AuthenticationExceptionHandler" />
|
|
|
+
|
|
|
+ <bean id="generateServiceTicketAction" class="org.jasig.cas.web.flow.GenerateServiceTicketAction"
|
|
|
+ p:centralAuthenticationService-ref="centralAuthenticationService"/>
|
|
|
+
|
|
|
+ <bean id="sendTicketGrantingTicketAction" class="org.jasig.cas.web.flow.SendTicketGrantingTicketAction"
|
|
|
+ p:centralAuthenticationService-ref="centralAuthenticationService"
|
|
|
+ p:ticketGrantingTicketCookieGenerator-ref="ticketGrantingTicketCookieGenerator"/>
|
|
|
+
|
|
|
+ <bean id="gatewayServicesManagementCheck" class="org.jasig.cas.web.flow.GatewayServicesManagementCheck"
|
|
|
+ c:servicesManager-ref="servicesManager" />
|
|
|
+
|
|
|
+ <bean id="serviceAuthorizationCheck" class="org.jasig.cas.web.flow.ServiceAuthorizationCheck"
|
|
|
+ c:servicesManager-ref="servicesManager" />
|
|
|
+
|
|
|
+ <bean id="generateLoginTicketAction" class="org.jasig.cas.web.flow.GenerateLoginTicketAction"
|
|
|
+ p:ticketIdGenerator-ref="loginTicketUniqueIdGenerator"/>
|
|
|
+
|
|
|
+ <bean id="messageInterpolator" class="org.jasig.cas.util.SpringAwareMessageMessageInterpolator"/>
|
|
|
+
|
|
|
+ <bean id="credentialsValidator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"
|
|
|
+ p:messageInterpolator-ref="messageInterpolator"/>
|
|
|
+
|
|
|
+ <bean id="ticketGrantingTicketCheckAction" class="org.jasig.cas.web.flow.TicketGrantingTicketCheckAction"
|
|
|
+ c:registry-ref="ticketRegistry" />
|
|
|
+
|
|
|
+ <bean id="terminateSessionAction" class="org.jasig.cas.web.flow.TerminateSessionAction"
|
|
|
+ c:cas-ref="centralAuthenticationService"
|
|
|
+ c:tgtCookieGenerator-ref="ticketGrantingTicketCookieGenerator"
|
|
|
+ c:warnCookieGenerator-ref="warnCookieGenerator"/>
|
|
|
+</beans>
|