authserver/casserver/simple-cas4-overlay-template/src/main/webapp/WEB-INF/cas-servlet.xml
changeset 8 5a0cbbe0922a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/authserver/casserver/simple-cas4-overlay-template/src/main/webapp/WEB-INF/cas-servlet.xml	Wed May 27 15:34:06 2015 +0200
@@ -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.Cas20ProtocolValidationSpecification"/>
+
+  <!--  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.Cas20ProtocolValidationSpecification"/>
+
+  <!--  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>