1 |
51769
|
tsampikos.
|
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
|
|
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
3 |
|
|
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
|
4 |
|
|
|
5 |
|
|
<display-name>Shibboleth Identity Provider</display-name>
|
6 |
|
|
|
7 |
|
|
<!-- Spring application context files. Files are loaded in the order they appear with subsequent files overwriting
|
8 |
|
|
same named beans in previous files. -->
|
9 |
|
|
<context-param>
|
10 |
|
|
<param-name>contextConfigLocation</param-name>
|
11 |
|
|
<param-value>classpath*:/META-INF/net.shibboleth.idp/preconfig.xml,${idp.home}/system/conf/global-system.xml,classpath*:/META-INF/net.shibboleth.idp/config.xml,classpath*:/META-INF/net.shibboleth.idp/postconfig.xml</param-value>
|
12 |
|
|
</context-param>
|
13 |
|
|
|
14 |
|
|
<context-param>
|
15 |
|
|
<param-name>contextClass</param-name>
|
16 |
|
|
<param-value>net.shibboleth.ext.spring.context.DelimiterAwareApplicationContext</param-value>
|
17 |
|
|
</context-param>
|
18 |
|
|
|
19 |
|
|
<context-param>
|
20 |
|
|
<param-name>contextInitializerClasses</param-name>
|
21 |
|
|
<param-value>net.shibboleth.idp.spring.IdPPropertiesApplicationContextInitializer</param-value>
|
22 |
|
|
</context-param>
|
23 |
|
|
|
24 |
|
|
<!-- Spring listener used to load up the configuration -->
|
25 |
|
|
<listener>
|
26 |
|
|
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
|
27 |
|
|
</listener>
|
28 |
|
|
|
29 |
|
|
<!-- Filter for CORS -->
|
30 |
|
|
<filter>
|
31 |
|
|
<filter-name>CorsFilter</filter-name>
|
32 |
|
|
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
|
33 |
|
|
<init-param>
|
34 |
|
|
<param-name>cors.allowed.origins</param-name>
|
35 |
|
|
<param-value>*</param-value>
|
36 |
|
|
</init-param>
|
37 |
|
|
<init-param>
|
38 |
|
|
<param-name>cors.allowed.methods</param-name>
|
39 |
|
|
<param-value>GET,POST,HEAD,OPTIONS,DELETE</param-value>
|
40 |
|
|
</init-param>
|
41 |
|
|
<init-param>
|
42 |
|
|
<param-name>cors.exposed.headers</param-name>
|
43 |
|
|
<param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentials,Access-Control-Allow-Methods</param-value>
|
44 |
|
|
</init-param>
|
45 |
|
|
<init-param>
|
46 |
|
|
<param-name>cors.support.credentials</param-name>
|
47 |
|
|
<param-value>true</param-value>
|
48 |
|
|
</init-param>
|
49 |
|
|
<init-param>
|
50 |
|
|
<param-name>cors.allowed.headers</param-name>
|
51 |
|
|
<param-value>Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers,X-XSRF-TOKEN,withcredentials</param-value>
|
52 |
|
|
</init-param>
|
53 |
|
|
</filter>
|
54 |
|
|
<filter-mapping>
|
55 |
|
|
<filter-name>CorsFilter</filter-name>
|
56 |
|
|
<url-pattern>/*</url-pattern>
|
57 |
|
|
</filter-mapping>
|
58 |
|
|
|
59 |
|
|
<!-- CORS FILTER -->
|
60 |
|
|
|
61 |
|
|
<!-- Filters and filter mappings -->
|
62 |
|
|
<!-- Try and force I18N, probably won't help much. -->
|
63 |
|
|
<filter>
|
64 |
|
|
<filter-name>CharacterEncodingFilter</filter-name>
|
65 |
|
|
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
|
66 |
|
|
<init-param>
|
67 |
|
|
<param-name>encoding</param-name>
|
68 |
|
|
<param-value>UTF-8</param-value>
|
69 |
|
|
</init-param>
|
70 |
|
|
<init-param>
|
71 |
|
|
<param-name>forceEncoding</param-name>
|
72 |
|
|
<param-value>true</param-value>
|
73 |
|
|
</init-param>
|
74 |
|
|
</filter>
|
75 |
|
|
<!-- Lets us lump repeated Set-Cookie headers into one, something containers rarely support. -->
|
76 |
|
|
<filter>
|
77 |
|
|
<filter-name>CookieBufferingFilter</filter-name>
|
78 |
|
|
<filter-class>net.shibboleth.utilities.java.support.net.CookieBufferingFilter</filter-class>
|
79 |
|
|
</filter>
|
80 |
|
|
<!-- Automates TLS-based propagation of HttpServletRequest/Response into beans. -->
|
81 |
|
|
<filter>
|
82 |
|
|
<filter-name>RequestResponseContextFilter</filter-name>
|
83 |
|
|
<filter-class>net.shibboleth.utilities.java.support.net.RequestResponseContextFilter</filter-class>
|
84 |
|
|
</filter>
|
85 |
|
|
<!-- Manages logging MDC. -->
|
86 |
|
|
<filter>
|
87 |
|
|
<filter-name>SLF4JMDCServletFilter</filter-name>
|
88 |
|
|
<filter-class>net.shibboleth.idp.log.SLF4JMDCServletFilter</filter-class>
|
89 |
|
|
</filter>
|
90 |
|
|
<filter-mapping>
|
91 |
|
|
<filter-name>CookieBufferingFilter</filter-name>
|
92 |
|
|
<url-pattern>/profile/Logout</url-pattern>
|
93 |
|
|
<url-pattern>/profile/Shibboleth/SSO</url-pattern>
|
94 |
|
|
<url-pattern>/profile/SAML2/Unsolicited/SSO</url-pattern>
|
95 |
|
|
<url-pattern>/profile/SAML2/Redirect/SSO</url-pattern>
|
96 |
|
|
<url-pattern>/profile/SAML2/POST/SSO</url-pattern>
|
97 |
|
|
<url-pattern>/profile/SAML2/POST-SimpleSign/SSO</url-pattern>
|
98 |
|
|
<url-pattern>/profile/SAML2/Redirect/SLO</url-pattern>
|
99 |
|
|
<url-pattern>/profile/SAML2/POST/SLO</url-pattern>
|
100 |
|
|
<url-pattern>/profile/SAML2/POST-SimpleSign/SLO</url-pattern>
|
101 |
|
|
<url-pattern>/profile/cas/login</url-pattern>
|
102 |
|
|
</filter-mapping>
|
103 |
|
|
<filter-mapping>
|
104 |
|
|
<filter-name>CharacterEncodingFilter</filter-name>
|
105 |
|
|
<url-pattern>/*</url-pattern>
|
106 |
|
|
</filter-mapping>
|
107 |
|
|
<filter-mapping>
|
108 |
|
|
<filter-name>RequestResponseContextFilter</filter-name>
|
109 |
|
|
<url-pattern>/*</url-pattern>
|
110 |
|
|
</filter-mapping>
|
111 |
|
|
<filter-mapping>
|
112 |
|
|
<filter-name>SLF4JMDCServletFilter</filter-name>
|
113 |
|
|
<url-pattern>/*</url-pattern>
|
114 |
|
|
</filter-mapping>
|
115 |
|
|
|
116 |
|
|
<!-- Servlets and servlet mappings -->
|
117 |
|
|
<servlet>
|
118 |
|
|
<servlet-name>idp</servlet-name>
|
119 |
|
|
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
|
120 |
|
|
<init-param>
|
121 |
|
|
<param-name>contextConfigLocation</param-name>
|
122 |
|
|
<param-value>${idp.home}/system/conf/mvc-beans.xml, ${idp.home}/system/conf/webflow-config.xml</param-value>
|
123 |
|
|
</init-param>
|
124 |
|
|
<init-param>
|
125 |
|
|
<param-name>contextClass</param-name>
|
126 |
|
|
<param-value>net.shibboleth.ext.spring.context.DelimiterAwareApplicationContext</param-value>
|
127 |
|
|
</init-param>
|
128 |
|
|
<load-on-startup>1</load-on-startup>
|
129 |
|
|
</servlet>
|
130 |
|
|
<servlet-mapping>
|
131 |
|
|
<servlet-name>idp</servlet-name>
|
132 |
|
|
<url-pattern>/status</url-pattern>
|
133 |
|
|
<url-pattern>/profile/*</url-pattern>
|
134 |
|
|
</servlet-mapping>
|
135 |
|
|
|
136 |
|
|
<!-- Servlet protected by container used for RemoteUser authentication -->
|
137 |
|
|
<servlet>
|
138 |
|
|
<servlet-name>RemoteUserAuthHandler</servlet-name>
|
139 |
|
|
<servlet-class>net.shibboleth.idp.authn.impl.RemoteUserAuthServlet</servlet-class>
|
140 |
|
|
<load-on-startup>2</load-on-startup>
|
141 |
|
|
</servlet>
|
142 |
|
|
<servlet-mapping>
|
143 |
|
|
<servlet-name>RemoteUserAuthHandler</servlet-name>
|
144 |
|
|
<url-pattern>/Authn/RemoteUser</url-pattern>
|
145 |
|
|
</servlet-mapping>
|
146 |
|
|
|
147 |
|
|
<!-- Servlet protected by container used for X.509 authentication -->
|
148 |
|
|
<servlet>
|
149 |
|
|
<servlet-name>X509AuthHandler</servlet-name>
|
150 |
|
|
<servlet-class>net.shibboleth.idp.authn.impl.X509AuthServlet</servlet-class>
|
151 |
|
|
<load-on-startup>3</load-on-startup>
|
152 |
|
|
</servlet>
|
153 |
|
|
<servlet-mapping>
|
154 |
|
|
<servlet-name>X509AuthHandler</servlet-name>
|
155 |
|
|
<url-pattern>/Authn/X509</url-pattern>
|
156 |
|
|
</servlet-mapping>
|
157 |
|
|
|
158 |
|
|
<!-- Send request for the EntityID to the SAML metadata echoing JSP. -->
|
159 |
|
|
<servlet>
|
160 |
|
|
<servlet-name>shibboleth_jsp</servlet-name>
|
161 |
|
|
<jsp-file>/WEB-INF/jsp/metadata.jsp</jsp-file>
|
162 |
|
|
</servlet>
|
163 |
|
|
<servlet-mapping>
|
164 |
|
|
<servlet-name>shibboleth_jsp</servlet-name>
|
165 |
|
|
<url-pattern>/shibboleth</url-pattern>
|
166 |
|
|
</servlet-mapping>
|
167 |
|
|
|
168 |
|
|
<!-- Send servlet errors through the IdP's MVC error handling. -->
|
169 |
|
|
<error-page>
|
170 |
|
|
<exception-type>net.shibboleth.idp.authn.ExternalAuthenticationException</exception-type>
|
171 |
|
|
<location>/profile/RaiseError</location>
|
172 |
|
|
</error-page>
|
173 |
|
|
|
174 |
|
|
<!-- Block commonly flagged methods by using an empty auth-constraint. -->
|
175 |
|
|
<security-constraint>
|
176 |
|
|
<web-resource-collection>
|
177 |
|
|
<web-resource-name>Non-API Content</web-resource-name>
|
178 |
|
|
<url-pattern>/*</url-pattern>
|
179 |
|
|
<http-method>PUT</http-method>
|
180 |
|
|
<http-method>PATCH</http-method>
|
181 |
|
|
<http-method>DELETE</http-method>
|
182 |
|
|
<http-method>OPTIONS</http-method>
|
183 |
|
|
<http-method>TRACE</http-method>
|
184 |
|
|
</web-resource-collection>
|
185 |
|
|
<auth-constraint/>
|
186 |
|
|
</security-constraint>
|
187 |
|
|
|
188 |
|
|
<!-- Allow any HTTP methods to the API flows. -->
|
189 |
|
|
<security-constraint>
|
190 |
|
|
<web-resource-collection>
|
191 |
|
|
<web-resource-name>Administrative APIs</web-resource-name>
|
192 |
|
|
<url-pattern>/profile/admin/*</url-pattern>
|
193 |
|
|
</web-resource-collection>
|
194 |
|
|
<!-- no auth-constraint tag here -->
|
195 |
|
|
</security-constraint>
|
196 |
|
|
|
197 |
|
|
<!--
|
198 |
|
|
Uncomment to use container managed authentication. The new servlet spec (3.1)
|
199 |
|
|
supports "**" as a wildcard syntax to avoid role usage, which is normally desirable.
|
200 |
|
|
Older containers usually support "*" when proprietary options are used (e.g., Jetty
|
201 |
|
|
requires setting the Strict property on the SecurityManager.)
|
202 |
|
|
-->
|
203 |
|
|
<!--
|
204 |
|
|
<security-constraint>
|
205 |
|
|
<display-name>Web Login Service</display-name>
|
206 |
|
|
<web-resource-collection>
|
207 |
|
|
<web-resource-name>user authentication</web-resource-name>
|
208 |
|
|
<url-pattern>/Authn/RemoteUser</url-pattern>
|
209 |
|
|
<url-pattern>/profile/SAML2/SOAP/ECP</url-pattern>
|
210 |
|
|
<http-method>POST</http-method>
|
211 |
|
|
</web-resource-collection>
|
212 |
|
|
<auth-constraint>
|
213 |
|
|
<role-name>**</role-name>
|
214 |
|
|
</auth-constraint>
|
215 |
|
|
<user-data-constraint>
|
216 |
|
|
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
|
217 |
|
|
</user-data-constraint>
|
218 |
|
|
</security-constraint>
|
219 |
|
|
-->
|
220 |
|
|
|
221 |
|
|
<!-- Uncomment if you want BASIC auth managed by the container. -->
|
222 |
|
|
<!--
|
223 |
|
|
<login-config>
|
224 |
|
|
<auth-method>BASIC</auth-method>
|
225 |
|
|
<realm-name>Web Login Service</realm-name>
|
226 |
|
|
</login-config>
|
227 |
|
|
-->
|
228 |
|
|
|
229 |
|
|
<!--
|
230 |
|
|
Uncomment if you want form-based auth managed by the container.
|
231 |
|
|
NOTE that the default form-login UI in the IdP is not compatible
|
232 |
|
|
with this option, and you will need to supply your own JSP form
|
233 |
|
|
and error page. This is not a recommended approach and is severely
|
234 |
|
|
limited in functionality as compared to using the IdP's own UI.
|
235 |
|
|
-->
|
236 |
|
|
<!--
|
237 |
|
|
<login-config>
|
238 |
|
|
<auth-method>FORM</auth-method>
|
239 |
|
|
<realm-name>Web Login Service</realm-name>
|
240 |
|
|
<form-login-config>
|
241 |
|
|
<form-login-page>/login.jsp</form-login-page>
|
242 |
|
|
<form-error-page>/login-error.jsp</form-error-page>
|
243 |
|
|
</form-login-config>
|
244 |
|
|
</login-config>
|
245 |
|
|
-->
|
246 |
|
|
</web-app>
|