|
1 <?xml version="1.0" encoding="UTF-8"?> |
|
2 <!-- |
|
3 |
|
4 Licensed to Jasig under one or more contributor license |
|
5 agreements. See the NOTICE file distributed with this work |
|
6 for additional information regarding copyright ownership. |
|
7 Jasig licenses this file to you under the Apache License, |
|
8 Version 2.0 (the "License"); you may not use this file |
|
9 except in compliance with the License. You may obtain a |
|
10 copy of the License at the following location: |
|
11 |
|
12 http://www.apache.org/licenses/LICENSE-2.0 |
|
13 |
|
14 Unless required by applicable law or agreed to in writing, |
|
15 software distributed under the License is distributed on an |
|
16 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
|
17 KIND, either express or implied. See the License for the |
|
18 specific language governing permissions and limitations |
|
19 under the License. |
|
20 |
|
21 --> |
|
22 <beans xmlns="http://www.springframework.org/schema/beans" |
|
23 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
|
24 xmlns:webflow="http://www.springframework.org/schema/webflow-config" |
|
25 xmlns:p="http://www.springframework.org/schema/p" |
|
26 xmlns:c="http://www.springframework.org/schema/c" |
|
27 xmlns:util="http://www.springframework.org/schema/util" |
|
28 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd |
|
29 http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd |
|
30 http://www.springframework.org/schema/webflow-config http://www.springframework.org/schema/webflow-config/spring-webflow-config-2.3.xsd"> |
|
31 |
|
32 <import resource="spring-configuration/propertyFileConfigurer.xml"/> |
|
33 |
|
34 <!-- Theme Resolver --> |
|
35 <bean id="themeResolver" class="org.jasig.cas.services.web.ServiceThemeResolver" |
|
36 p:defaultThemeName="${cas.themeResolver.defaultThemeName}" |
|
37 p:argumentExtractors-ref="argumentExtractors" |
|
38 p:servicesManager-ref="servicesManager"> |
|
39 <property name="mobileBrowsers"> |
|
40 <util:map> |
|
41 <entry key=".*iPhone.*" value="iphone"/> |
|
42 <entry key=".*Android.*" value="iphone"/> |
|
43 <entry key=".*Safari.*Pre.*" value="iphone"/> |
|
44 <entry key=".*Nokia.*AppleWebKit.*" value="iphone"/> |
|
45 </util:map> |
|
46 </property> |
|
47 </bean> |
|
48 |
|
49 <!-- View Resolver --> |
|
50 <bean id="viewResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver" |
|
51 p:order="0"> |
|
52 <property name="basenames"> |
|
53 <util:list> |
|
54 <value>${cas.viewResolver.basename}</value> |
|
55 <value>protocol_views</value> |
|
56 </util:list> |
|
57 </property> |
|
58 </bean> |
|
59 |
|
60 <!-- Locale Resolver --> |
|
61 <bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver" p:defaultLocale="en" /> |
|
62 |
|
63 <bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"/> |
|
64 |
|
65 <bean id="urlBasedViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver" |
|
66 p:viewClass="org.springframework.web.servlet.view.InternalResourceView" |
|
67 p:prefix="/WEB-INF/view/jsp/" |
|
68 p:suffix=".jsp" |
|
69 p:order="1"/> |
|
70 |
|
71 <bean id="errorHandlerResolver" class="org.jasig.cas.web.FlowExecutionExceptionResolver"/> |
|
72 |
|
73 <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/> |
|
74 |
|
75 <bean |
|
76 id="handlerMappingC" |
|
77 class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping" |
|
78 p:alwaysUseFullPath="true"> |
|
79 <property name="mappings"> |
|
80 <util:properties> |
|
81 <prop key="/serviceValidate">serviceValidateController</prop> |
|
82 <prop key="/proxyValidate">proxyValidateController</prop> |
|
83 |
|
84 <prop key="/p3/serviceValidate">v3ServiceValidateController</prop> |
|
85 <prop key="/p3/proxyValidate">v3ProxyValidateController</prop> |
|
86 |
|
87 <prop key="/validate">legacyValidateController</prop> |
|
88 <prop key="/proxy">proxyController</prop> |
|
89 <prop key="/authorizationFailure.html">passThroughController</prop> |
|
90 <prop key="/status">healthCheckController</prop> |
|
91 <prop key="/statistics">statisticsController</prop> |
|
92 </util:properties> |
|
93 </property> |
|
94 <!-- |
|
95 uncomment this to enable sending PageRequest events. |
|
96 <property |
|
97 name="interceptors"> |
|
98 <list> |
|
99 <ref bean="pageRequestHandlerInterceptorAdapter" /> |
|
100 </list> |
|
101 </property> |
|
102 --> |
|
103 </bean> |
|
104 |
|
105 <bean id="passThroughController" class="org.springframework.web.servlet.mvc.UrlFilenameViewController"/> |
|
106 |
|
107 <!-- login webflow configuration --> |
|
108 <bean id="loginFlowHandlerMapping" class="org.springframework.webflow.mvc.servlet.FlowHandlerMapping" |
|
109 p:flowRegistry-ref="loginFlowRegistry" p:order="2"> |
|
110 <property name="interceptors"> |
|
111 <ref local="localeChangeInterceptor" /> |
|
112 </property> |
|
113 </bean> |
|
114 |
|
115 <bean id="loginHandlerAdapter" class="org.jasig.cas.web.flow.SelectiveFlowHandlerAdapter" |
|
116 p:supportedFlowId="login" p:flowExecutor-ref="loginFlowExecutor" p:flowUrlHandler-ref="loginFlowUrlHandler" /> |
|
117 |
|
118 <bean id="loginFlowUrlHandler" class="org.jasig.cas.web.flow.CasDefaultFlowUrlHandler" /> |
|
119 |
|
120 <webflow:flow-executor id="loginFlowExecutor" flow-registry="loginFlowRegistry"> |
|
121 <webflow:flow-execution-attributes> |
|
122 <webflow:always-redirect-on-pause value="false" /> |
|
123 <webflow:redirect-in-same-state value="false" /> |
|
124 </webflow:flow-execution-attributes> |
|
125 <webflow:flow-execution-listeners> |
|
126 <webflow:listener ref="terminateWebSessionListener" /> |
|
127 </webflow:flow-execution-listeners> |
|
128 </webflow:flow-executor> |
|
129 |
|
130 <webflow:flow-registry id="loginFlowRegistry" flow-builder-services="builder"> |
|
131 <webflow:flow-location path="/WEB-INF/login-webflow.xml" id="login" /> |
|
132 </webflow:flow-registry> |
|
133 |
|
134 <!-- logout webflow configuration --> |
|
135 <bean id="logoutFlowHandlerMapping" class="org.springframework.webflow.mvc.servlet.FlowHandlerMapping" |
|
136 p:flowRegistry-ref="logoutFlowRegistry" p:order="3"> |
|
137 <property name="interceptors"> |
|
138 <ref local="localeChangeInterceptor" /> |
|
139 </property> |
|
140 </bean> |
|
141 |
|
142 <bean id="logoutHandlerAdapter" class="org.jasig.cas.web.flow.SelectiveFlowHandlerAdapter" |
|
143 p:supportedFlowId="logout" p:flowExecutor-ref="logoutFlowExecutor" p:flowUrlHandler-ref="logoutFlowUrlHandler" /> |
|
144 |
|
145 <bean id="logoutFlowUrlHandler" class="org.jasig.cas.web.flow.CasDefaultFlowUrlHandler" |
|
146 p:flowExecutionKeyParameter="RelayState" /> |
|
147 |
|
148 <webflow:flow-executor id="logoutFlowExecutor" flow-registry="logoutFlowRegistry"> |
|
149 <webflow:flow-execution-attributes> |
|
150 <webflow:always-redirect-on-pause value="false" /> |
|
151 <webflow:redirect-in-same-state value="false" /> |
|
152 </webflow:flow-execution-attributes> |
|
153 <webflow:flow-execution-listeners> |
|
154 <webflow:listener ref="terminateWebSessionListener" /> |
|
155 </webflow:flow-execution-listeners> |
|
156 </webflow:flow-executor> |
|
157 |
|
158 <webflow:flow-registry id="logoutFlowRegistry" flow-builder-services="builder"> |
|
159 <webflow:flow-location path="/WEB-INF/logout-webflow.xml" id="logout" /> |
|
160 </webflow:flow-registry> |
|
161 |
|
162 <webflow:flow-builder-services id="builder" view-factory-creator="viewFactoryCreator" expression-parser="expressionParser" /> |
|
163 |
|
164 <bean id="logoutConversionService" class="org.jasig.cas.web.flow.LogoutConversionService" /> |
|
165 |
|
166 <bean id="terminateWebSessionListener" class="org.jasig.cas.web.flow.TerminateWebSessionListener" /> |
|
167 |
|
168 <bean id="expressionParser" class="org.springframework.webflow.expression.spel.WebFlowSpringELExpressionParser" |
|
169 c:conversionService-ref="logoutConversionService"> |
|
170 <constructor-arg> |
|
171 <bean class="org.springframework.expression.spel.standard.SpelExpressionParser" /> |
|
172 </constructor-arg> |
|
173 </bean> |
|
174 |
|
175 <bean id="viewFactoryCreator" class="org.springframework.webflow.mvc.builder.MvcViewFactoryCreator"> |
|
176 <property name="viewResolvers"> |
|
177 <util:list> |
|
178 <ref local="viewResolver"/> |
|
179 </util:list> |
|
180 </property> |
|
181 </bean> |
|
182 |
|
183 <!-- CAS 2 Protocol service/proxy validation --> |
|
184 <bean id="abstractValidateController" class="org.jasig.cas.web.ServiceValidateController" abstract="true" |
|
185 p:centralAuthenticationService-ref="centralAuthenticationService" |
|
186 p:proxyHandler-ref="proxy20Handler" |
|
187 p:argumentExtractor-ref="casArgumentExtractor"/> |
|
188 |
|
189 <bean id="proxyValidateController" parent="abstractValidateController" /> |
|
190 |
|
191 <bean id="serviceValidateController" parent="abstractValidateController" |
|
192 p:validationSpecificationClass="org.jasig.cas.validation.Cas20ProtocolValidationSpecification"/> |
|
193 |
|
194 <!-- CAS 3 Protocol service/proxy validation with attributes --> |
|
195 <bean id="v3AbstractValidateController" parent="abstractValidateController" abstract="true" |
|
196 p:successView="cas3ServiceSuccessView" |
|
197 p:failureView="cas3ServiceFailureView" /> |
|
198 |
|
199 <bean id="v3ProxyValidateController" parent="v3AbstractValidateController" /> |
|
200 |
|
201 <bean id="v3ServiceValidateController" parent="v3AbstractValidateController" |
|
202 p:validationSpecificationClass="org.jasig.cas.validation.Cas20ProtocolValidationSpecification"/> |
|
203 |
|
204 <!-- CAS 1 legacy validation --> |
|
205 <bean id="legacyValidateController" parent="abstractValidateController" |
|
206 p:proxyHandler-ref="proxy10Handler" |
|
207 p:successView="cas1ServiceSuccessView" |
|
208 p:failureView="cas1ServiceFailureView" |
|
209 p:validationSpecificationClass="org.jasig.cas.validation.Cas10ProtocolValidationSpecification"/> |
|
210 |
|
211 <bean id="proxyController" class="org.jasig.cas.web.ProxyController" |
|
212 p:centralAuthenticationService-ref="centralAuthenticationService"/> |
|
213 |
|
214 <bean id="statisticsController" class="org.jasig.cas.web.StatisticsController" |
|
215 p:casTicketSuffix="${host.name}" c:ticketRegistry-ref="ticketRegistry" /> |
|
216 |
|
217 <bean id="logoutAction" class="org.jasig.cas.web.flow.LogoutAction" |
|
218 p:servicesManager-ref="servicesManager" |
|
219 p:followServiceRedirects="${cas.logout.followServiceRedirects:false}"/> |
|
220 |
|
221 <bean id="frontChannelLogoutAction" class="org.jasig.cas.web.flow.FrontChannelLogoutAction" |
|
222 c:logoutManager-ref="logoutManager"/> |
|
223 |
|
224 <bean id="healthCheckController" class="org.jasig.cas.web.HealthCheckController" |
|
225 p:healthCheckMonitor-ref="healthCheckMonitor"/> |
|
226 |
|
227 <bean id="initialFlowSetupAction" class="org.jasig.cas.web.flow.InitialFlowSetupAction" |
|
228 p:argumentExtractors-ref="argumentExtractors" |
|
229 p:warnCookieGenerator-ref="warnCookieGenerator" |
|
230 p:ticketGrantingTicketCookieGenerator-ref="ticketGrantingTicketCookieGenerator"/> |
|
231 |
|
232 <bean id="authenticationViaFormAction" class="org.jasig.cas.web.flow.AuthenticationViaFormAction" |
|
233 p:centralAuthenticationService-ref="centralAuthenticationService" |
|
234 p:warnCookieGenerator-ref="warnCookieGenerator" |
|
235 p:ticketRegistry-ref="ticketRegistry"/> |
|
236 |
|
237 <bean id="authenticationExceptionHandler" class="org.jasig.cas.web.flow.AuthenticationExceptionHandler" /> |
|
238 |
|
239 <bean id="generateServiceTicketAction" class="org.jasig.cas.web.flow.GenerateServiceTicketAction" |
|
240 p:centralAuthenticationService-ref="centralAuthenticationService"/> |
|
241 |
|
242 <bean id="sendTicketGrantingTicketAction" class="org.jasig.cas.web.flow.SendTicketGrantingTicketAction" |
|
243 p:centralAuthenticationService-ref="centralAuthenticationService" |
|
244 p:ticketGrantingTicketCookieGenerator-ref="ticketGrantingTicketCookieGenerator"/> |
|
245 |
|
246 <bean id="gatewayServicesManagementCheck" class="org.jasig.cas.web.flow.GatewayServicesManagementCheck" |
|
247 c:servicesManager-ref="servicesManager" /> |
|
248 |
|
249 <bean id="serviceAuthorizationCheck" class="org.jasig.cas.web.flow.ServiceAuthorizationCheck" |
|
250 c:servicesManager-ref="servicesManager" /> |
|
251 |
|
252 <bean id="generateLoginTicketAction" class="org.jasig.cas.web.flow.GenerateLoginTicketAction" |
|
253 p:ticketIdGenerator-ref="loginTicketUniqueIdGenerator"/> |
|
254 |
|
255 <bean id="messageInterpolator" class="org.jasig.cas.util.SpringAwareMessageMessageInterpolator"/> |
|
256 |
|
257 <bean id="credentialsValidator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" |
|
258 p:messageInterpolator-ref="messageInterpolator"/> |
|
259 |
|
260 <bean id="ticketGrantingTicketCheckAction" class="org.jasig.cas.web.flow.TicketGrantingTicketCheckAction" |
|
261 c:registry-ref="ticketRegistry" /> |
|
262 |
|
263 <bean id="terminateSessionAction" class="org.jasig.cas.web.flow.TerminateSessionAction" |
|
264 c:cas-ref="centralAuthenticationService" |
|
265 c:tgtCookieGenerator-ref="ticketGrantingTicketCookieGenerator" |
|
266 c:warnCookieGenerator-ref="warnCookieGenerator"/> |
|
267 </beans> |