<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	id="WebApp_ID" version="2.5">
	<display-name>apimanager.war</display-name>
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
	</welcome-file-list>

	<servlet>
		<display-name>API Proxy</display-name>
		<servlet-name>APIProxy</servlet-name>
		<servlet-class>com.ibm.apimgmt.security.util.APIProxy</servlet-class>
		<init-param>
			<param-name>targetContextPath</param-name>
			<param-value>/v1</param-value>
		</init-param>
	</servlet>
	<servlet-mapping>
		<servlet-name>APIProxy</servlet-name>
		<url-pattern>/proxy/*</url-pattern>
	</servlet-mapping>

	<servlet>
		<display-name>Login Orchestration Servlet</display-name>
		<servlet-name>LoginServlet</servlet-name>
		<servlet-class>com.ibm.apimgmt.security.login.servlet.LoginServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>LoginServlet</servlet-name>
		<url-pattern>/login</url-pattern>
	</servlet-mapping>


	<servlet>
		<display-name>SAML Sign On</display-name>
		<servlet-name>SamlSignOnServlet</servlet-name>
		<servlet-class>com.ibm.apimgmt.security.util.SAMLSignOn</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>SamlSignOnServlet</servlet-name>
		<url-pattern>/saml/signon</url-pattern>
	</servlet-mapping>

	<servlet>
		<display-name>UAA Sign On</display-name>
		<servlet-name>UAASignOnServlet</servlet-name>
		<servlet-class>com.ibm.apimgmt.security.uaa.servlet.UAASignOn</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>UAASignOnServlet</servlet-name>
		<url-pattern>/uaa/signon</url-pattern>
	</servlet-mapping>

	<servlet>
		<display-name>Openid Sign On</display-name>
		<servlet-name>OpenidSignOn</servlet-name>
		<servlet-class>com.ibm.apimgmt.security.openid.servlet.OpenidSignOn</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>OpenidSignOn</servlet-name>
		<url-pattern>/openid/signon</url-pattern>
	</servlet-mapping>

	<servlet>
		<display-name>UAA Redirect</display-name>
		<servlet-name>UAARedirectServlet</servlet-name>
		<servlet-class>com.ibm.apimgmt.security.uaa.servlet.UAARedirect</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>UAARedirectServlet</servlet-name>
		<url-pattern>/uaa/redirect</url-pattern>
	</servlet-mapping>

	<security-role>
		<description>All Authenticated User</description>
		<role-name>*</role-name>
	</security-role>

	<security-constraint>
		<display-name>Everything Private By Default</display-name>
		<web-resource-collection>
			<web-resource-name>Everything</web-resource-name>
			<url-pattern>/*</url-pattern>
		</web-resource-collection>
		<auth-constraint>
			<role-name>*</role-name>
		</auth-constraint>
		<user-data-constraint>
			<transport-guarantee>CONFIDENTIAL</transport-guarantee>
		</user-data-constraint>
	</security-constraint>

	<security-constraint>
		<display-name>Auth free access to registration and password reset.</display-name>
		<web-resource-collection>
			<web-resource-name>Registration</web-resource-name>
			<url-pattern>/saml/signon</url-pattern>
			<url-pattern>/uaa/signon</url-pattern>
			<url-pattern>/openid/signon</url-pattern>
			<url-pattern>/uaa/redirect</url-pattern>
		</web-resource-collection>
		<user-data-constraint>
			<transport-guarantee>CONFIDENTIAL</transport-guarantee>
		</user-data-constraint>
	</security-constraint>

	<security-constraint>
		<display-name>Auth free access to non sensitive stuff</display-name>
		<web-resource-collection>
			<web-resource-name>non-sensitive</web-resource-name>
			<url-pattern>/apim/*</url-pattern>
			<url-pattern>/bower_components/*</url-pattern>
			<url-pattern>/config/*</url-pattern>
			<url-pattern>/fonts/*</url-pattern>
			<url-pattern>/images/*</url-pattern>
			<url-pattern>/scripts/*</url-pattern>
			<url-pattern>/spec-files/*</url-pattern>
			<url-pattern>/styles/*</url-pattern>
			<url-pattern>/templates/*</url-pattern>
			<url-pattern>/views/*</url-pattern>
			<url-pattern>/webapibuilder/*</url-pattern>
		</web-resource-collection>
		<user-data-constraint>
			<transport-guarantee>CONFIDENTIAL</transport-guarantee>
		</user-data-constraint>
	</security-constraint>

	<error-page>
		<error-code>403</error-code>
		<location>/login.jsp?failure=true</location>
	</error-page>

	<error-page>
		<error-code>404</error-code>
		<location>/404.html</location>
	</error-page>

	<error-page>
		<error-code>408</error-code>
		<location>/login.jsp?messageNLSKey=sessionExpiredDetail&amp;result=failure</location>
	</error-page>

	<login-config>
		<auth-method>FORM</auth-method>
		<form-login-config>
			<form-login-page>/login</form-login-page>
			<form-error-page>/login.jsp?failure=true</form-error-page>
		</form-login-config>
	</login-config>

	<filter>
		<filter-name>no-cache</filter-name>
		<filter-class>com.ibm.wsci.omniapps.filters.CacheFilter</filter-class>
		<init-param>
			<param-name>Cache-Control</param-name>
			<param-value>no-cache, no-store, must-revalidate</param-value>
		</init-param>
	</filter>
	<filter>
		<filter-name>weekly-cache</filter-name>
		<filter-class>com.ibm.wsci.omniapps.filters.CacheFilter</filter-class>
		<init-param>
			<param-name>Cache-Control</param-name>
			<param-value>max-age=604800, public</param-value>
		</init-param>
	</filter>
	<filter>
		<filter-name>quick-cache</filter-name>
		<filter-class>com.ibm.wsci.omniapps.filters.CacheFilter</filter-class>
		<init-param>
			<param-name>Cache-Control</param-name>
			<param-value>max-age=1, public</param-value>
		</init-param>
	</filter>

	<filter-mapping>
		<filter-name>no-cache</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	<filter-mapping>
		<filter-name>weekly-cache</filter-name>
		<url-pattern>/rest/messages/nls/*</url-pattern>
		<url-pattern>*.js</url-pattern>
		<url-pattern>*.css</url-pattern>
		<url-pattern>*.png</url-pattern>
		<url-pattern>*.jpg</url-pattern>
		<url-pattern>*.gif</url-pattern>
		<url-pattern>*.woff</url-pattern>
		<url-pattern>*.ttf</url-pattern>
	</filter-mapping>
	<filter-mapping>
		<filter-name>quick-cache</filter-name>
		<url-pattern>/rest/secureconnectors/configFile/*</url-pattern>
	</filter-mapping>
	<filter>
        <filter-name>CSRF-Filter</filter-name>
        <filter-class>com.ibm.apim.sessions.CsrfFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>CSRF-Filter</filter-name>
        <url-pattern>/proxy/*</url-pattern>
    </filter-mapping>
</web-app>