<?xml version="1.0" encoding="UTF-8"?>
<!--

    Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0, which is available at
    http://www.eclipse.org/legal/epl-2.0.

    This Source Code may also be made available under the following Secondary
    Licenses when the conditions for such availability set forth in the
    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
    version 2 with the GNU Classpath Exception, which is available at
    https://www.gnu.org/software/classpath/license.html.

    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0

-->

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
         http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
         version="2.4">

    <filter>
        <filter-name>FilterTest</filter-name>
        <filter-class>test.FilterTest</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>FilterTest</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>INCLUDE</dispatcher>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>ERROR</dispatcher>
    </filter-mapping>

    <servlet>
        <display-name>ServletTest</display-name>
        <servlet-name>ServletTest</servlet-name>
        <servlet-class>test.ServletTest</servlet-class>
    </servlet>
    <servlet>
        <display-name>ServletTest2</display-name>
        <servlet-name>ServletTest2</servlet-name>
        <servlet-class>test.ServletTest2</servlet-class>
    </servlet>
    <servlet>
        <display-name>ServletTest3</display-name>
        <servlet-name>ServletTest3</servlet-name>
        <servlet-class>test.ServletTest3</servlet-class>
    </servlet>

   <servlet-mapping>
        <servlet-name>ServletTest</servlet-name>
        <url-pattern>/ServletTest</url-pattern>
    </servlet-mapping>
   <servlet-mapping>
        <servlet-name>ServletTest2</servlet-name>
        <url-pattern>/ServletTest2</url-pattern>
    </servlet-mapping>
   <servlet-mapping>
        <servlet-name>ServletTest3</servlet-name>
        <url-pattern>/ServletTest3</url-pattern>
    </servlet-mapping>

    <session-config>
        <session-timeout>10</session-timeout>
    </session-config>

    <security-constraint>
        <web-resource-collection>
              <web-resource-name>ServletTest</web-resource-name>
              <url-pattern>/*</url-pattern>
              <http-method>GET</http-method>
              <http-method>POST</http-method>
         </web-resource-collection>
      <auth-constraint>
        <role-name>tomcat</role-name>
      </auth-constraint>
    </security-constraint>
  <login-config>
    <auth-method>FORM</auth-method>
    <realm-name>default</realm-name>
    <form-login-config>
      <form-login-page>/login.jsp</form-login-page>
      <form-error-page>/error.jsp</form-error-page>
    </form-login-config>
  </login-config>

   <security-role>
     <description>the tomcatistrator role</description>
     <role-name>tomcat</role-name>
   </security-role>
</web-app>

