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

    Copyright (c) 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 version="5.0"
         xmlns="https://jakarta.ee/xml/ns/jakartaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
         metadata-complete="false">
  <display-name>servlet_sec_secform</display-name>
  <servlet>
    <servlet-name>ControlServletLogicalName</servlet-name>
    <servlet-class>servlet.tck.spec.security.secform.ControlServlet</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>Login</servlet-name>
    <jsp-file>/login.jsp</jsp-file>
    <security-role-ref>
      <role-name>ADM</role-name>
      <role-link>Administrator</role-link>
    </security-role-ref>
    <security-role-ref>
      <role-name>MGR</role-name>
      <role-link>Manager</role-link>
    </security-role-ref>
    <security-role-ref>
      <role-name>VP</role-name>
      <role-link>VP</role-link>
    </security-role-ref>
    <security-role-ref>
      <role-name>EMP</role-name>
      <role-link>Employee</role-link>
    </security-role-ref>
  </servlet>
  <servlet>
    <servlet-name>RoleReverseAnnoTestLogicalName</servlet-name>
    <servlet-class>servlet.tck.spec.security.secform.RoleReverseAnnoTestServlet</servlet-class>
    <security-role-ref>
      <role-name>MGR</role-name>
      <role-link>Administrator</role-link>
    </security-role-ref>
    <security-role-ref>
      <role-name>ADM</role-name>
      <role-link>Manager</role-link>
    </security-role-ref>
    <security-role-ref>
      <role-name>VP</role-name>
      <role-link>VP</role-link>
    </security-role-ref>
    <security-role-ref>
      <role-name>EMP</role-name>
      <role-link>Employee</role-link>
    </security-role-ref>
  </servlet>
  <servlet>
    <servlet-name>RoleReverseTestLogicalName</servlet-name>
    <servlet-class>servlet.tck.spec.security.secform.RoleReverseTestServlet</servlet-class>
    <security-role-ref>
      <role-name>MGR</role-name>
      <role-link>Administrator</role-link>
    </security-role-ref>
    <security-role-ref>
      <role-name>ADM</role-name>
      <role-link>Manager</role-link>
    </security-role-ref>
    <security-role-ref>
      <role-name>VP</role-name>
      <role-link>VP</role-link>
    </security-role-ref>
    <security-role-ref>
      <role-name>EMP</role-name>
      <role-link>Employee</role-link>
    </security-role-ref>
  </servlet>
  <servlet>
    <servlet-name>ServletSecAnnoTestLogicalName</servlet-name>
    <servlet-class>servlet.tck.spec.security.secform.ServletSecAnnoTestServlet</servlet-class>
    <security-role-ref>
      <role-name>ADM</role-name>
      <role-link>Administrator</role-link>
    </security-role-ref>
    <security-role-ref>
      <role-name>MGR</role-name>
      <role-link>Manager</role-link>
    </security-role-ref>
    <security-role-ref>
      <role-name>VP</role-name>
      <role-link>VP</role-link>
    </security-role-ref>
    <security-role-ref>
      <role-name>EMP</role-name>
      <role-link>Employee</role-link>
    </security-role-ref>
  </servlet>
  <servlet>
    <servlet-name>TwoTestServletLogicalName</servlet-name>
    <servlet-class>servlet.tck.spec.security.secform.TwoTestServlet</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>GuestPageTestLogicalName</servlet-name>
    <servlet-class>servlet.tck.spec.security.secform.GuestPageTestServlet</servlet-class>
    <security-role-ref>
      <role-name>ADM</role-name>
      <role-link>Administrator</role-link>
    </security-role-ref>
    <security-role-ref>
      <role-name>MGR</role-name>
      <role-link>Manager</role-link>
    </security-role-ref>
    <security-role-ref>
      <role-name>VP</role-name>
      <role-link>VP</role-link>
    </security-role-ref>
    <security-role-ref>
      <role-name>EMP</role-name>
      <role-link>Employee</role-link>
    </security-role-ref>
  </servlet>
  <servlet>
    <servlet-name>ForwardedServletLogicalName</servlet-name>
    <servlet-class>servlet.tck.spec.security.secform.ForwardedServlet</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>SampleTestServletLogicalName</servlet-name>
    <servlet-class>servlet.tck.spec.security.secform.SampleTestServlet</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>ServletSecTestLogicalName</servlet-name>
    <servlet-class>servlet.tck.spec.security.secform.ServletSecTestServlet</servlet-class>
    <security-role-ref>
      <role-name>ADM</role-name>
      <role-link>Administrator</role-link>
    </security-role-ref>
    <security-role-ref>
      <role-name>MGR</role-name>
      <role-link>Manager</role-link>
    </security-role-ref>
    <security-role-ref>
      <role-name>VP</role-name>
      <role-link>VP</role-link>
    </security-role-ref>
    <security-role-ref>
      <role-name>EMP</role-name>
      <role-link>Employee</role-link>
    </security-role-ref>
  </servlet>
  <servlet>
    <servlet-name>allRolesTestServletLogicalName</servlet-name>
    <servlet-class>servlet.tck.spec.security.secform.allRolesTestServlet</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>error</servlet-name>
    <jsp-file>/error.jsp</jsp-file>
    <security-role-ref>
      <role-name>ADM</role-name>
      <role-link>Administrator</role-link>
    </security-role-ref>
    <security-role-ref>
      <role-name>MGR</role-name>
      <role-link>Manager</role-link>
    </security-role-ref>
    <security-role-ref>
      <role-name>VP</role-name>
      <role-link>VP</role-link>
    </security-role-ref>
    <security-role-ref>
      <role-name>EMP</role-name>
      <role-link>Employee</role-link>
    </security-role-ref>
  </servlet>
  <servlet>
    <servlet-name>UnProtectedTestLogicalName</servlet-name>
    <servlet-class>servlet.tck.spec.security.secform.UnProtectedTestServlet</servlet-class>
    <security-role-ref>
      <role-name>ADM</role-name>
      <role-link>Administrator</role-link>
    </security-role-ref>
    <security-role-ref>
      <role-name>MGR</role-name>
      <role-link>Manager</role-link>
    </security-role-ref>
    <security-role-ref>
      <role-name>VP</role-name>
      <role-link>VP</role-link>
    </security-role-ref>
    <security-role-ref>
      <role-name>EMP</role-name>
      <role-link>Employee</role-link>
    </security-role-ref>
  </servlet>
  <servlet>
    <servlet-name>ServletProgrammaticLoginLogicalName</servlet-name>
    <servlet-class>servlet.tck.spec.security.secform.ServletProgrammaticLogin</servlet-class>
    <security-role-ref>
      <role-name>ADM</role-name>
      <role-link>Administrator</role-link>
    </security-role-ref>
    <security-role-ref>
      <role-name>MGR</role-name>
      <role-link>Manager</role-link>
    </security-role-ref>
    <security-role-ref>
      <role-name>VP</role-name>
      <role-link>VP</role-link>
    </security-role-ref>
    <security-role-ref>
      <role-name>EMP</role-name>
      <role-link>Employee</role-link>
    </security-role-ref>
  </servlet>
  <servlet>
    <servlet-name>ServletProgrammaticLogoutLogicalName</servlet-name>
    <servlet-class>servlet.tck.spec.security.secform.ServletProgrammaticLogout</servlet-class>
    <security-role-ref>
      <role-name>ADM</role-name>
      <role-link>Administrator</role-link>
    </security-role-ref>
    <security-role-ref>
      <role-name>MGR</role-name>
      <role-link>Manager</role-link>
    </security-role-ref>
    <security-role-ref>
      <role-name>VP</role-name>
      <role-link>VP</role-link>
    </security-role-ref>
    <security-role-ref>
      <role-name>EMP</role-name>
      <role-link>Employee</role-link>
    </security-role-ref>
  </servlet>
  <servlet>
    <servlet-name>ServletProgrammaticAuthenLogicalName</servlet-name>
    <servlet-class>servlet.tck.spec.security.secform.ServletProgrammaticAuthen</servlet-class>
    <security-role-ref>
      <role-name>ADM</role-name>
      <role-link>Administrator</role-link>
    </security-role-ref>
    <security-role-ref>
      <role-name>MGR</role-name>
      <role-link>Manager</role-link>
    </security-role-ref>
    <security-role-ref>
      <role-name>VP</role-name>
      <role-link>VP</role-link>
    </security-role-ref>
    <security-role-ref>
      <role-name>EMP</role-name>
      <role-link>Employee</role-link>
    </security-role-ref>
  </servlet>
  <servlet>
    <servlet-name>IncludedServletLogicalName</servlet-name>
    <servlet-class>servlet.tck.spec.security.secform.IncludedServlet</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>OneTestServletLogicalName</servlet-name>
    <servlet-class>servlet.tck.spec.security.secform.OneTestServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>ControlServletLogicalName</servlet-name>
    <url-pattern>/ControlServlet</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>Login</servlet-name>
    <url-pattern>/login.jsp</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>RoleReverseTestLogicalName</servlet-name>
    <url-pattern>/RoleReverseTest</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>TwoTestServletLogicalName</servlet-name>
    <url-pattern>/TwoTest</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>TwoTestServletLogicalName</servlet-name>
    <url-pattern>*.jsp</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>TwoTestServletLogicalName</servlet-name>
    <url-pattern>*.two</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>GuestPageTestLogicalName</servlet-name>
    <url-pattern>/GuestPageTest</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>ForwardedServletLogicalName</servlet-name>
    <url-pattern>/ForwardedServlet</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>SampleTestServletLogicalName</servlet-name>
    <url-pattern>/SampleTest</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>ServletSecTestLogicalName</servlet-name>
    <url-pattern>/ServletSecTest</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>allRolesTestServletLogicalName</servlet-name>
    <url-pattern>/allRolesTest</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>error</servlet-name>
    <url-pattern>/error.jsp</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>UnProtectedTestLogicalName</servlet-name>
    <url-pattern>/UnProtectedTest</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>ServletProgrammaticLoginLogicalName</servlet-name>
    <url-pattern>/ServletProgrammaticLogin</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>ServletProgrammaticLogoutLogicalName</servlet-name>
    <url-pattern>/ServletProgrammaticLogout</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>ServletProgrammaticAuthenLogicalName</servlet-name>
    <url-pattern>/ServletProgrammaticAuthen</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>IncludedServletLogicalName</servlet-name>
    <url-pattern>/IncludedServlet</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>OneTestServletLogicalName</servlet-name>
    <url-pattern>/OneTest</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>OneTestServletLogicalName</servlet-name>
    <url-pattern>/On*</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>OneTestServletLogicalName</servlet-name>
    <url-pattern>/One/index.html</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>OneTestServletLogicalName</servlet-name>
    <url-pattern>/One/*</url-pattern>
  </servlet-mapping>
  <session-config>
    <session-timeout>54</session-timeout>
  </session-config>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>MySecureBit0</web-resource-name>
      <url-pattern>/login.jsp</url-pattern>
      <http-method>GET</http-method>
      <http-method>POST</http-method>
    </web-resource-collection>
    <user-data-constraint>
      <transport-guarantee>NONE</transport-guarantee>
    </user-data-constraint>
  </security-constraint>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>MySecureBit4</web-resource-name>
      <url-pattern>/SampleTest</url-pattern>
    </web-resource-collection>
    <auth-constraint>
      <role-name>Administrator</role-name>
    </auth-constraint>
    <user-data-constraint>
      <transport-guarantee>NONE</transport-guarantee>
    </user-data-constraint>
  </security-constraint>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>MySecureBit9</web-resource-name>
      <url-pattern>/IncludedServlet</url-pattern>
    </web-resource-collection>
    <auth-constraint/>
    <user-data-constraint>
      <transport-guarantee>NONE</transport-guarantee>
    </user-data-constraint>
  </security-constraint>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>MySecureBit6</web-resource-name>
      <url-pattern>/allRolesTest</url-pattern>
    </web-resource-collection>
    <auth-constraint>
      <role-name>Administrator</role-name>
      <role-name>*</role-name>
    </auth-constraint>
    <user-data-constraint>
      <transport-guarantee>NONE</transport-guarantee>
    </user-data-constraint>
  </security-constraint>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>MySecureBit8</web-resource-name>
      <url-pattern>/ForwardedServlet</url-pattern>
    </web-resource-collection>
    <auth-constraint/>
    <user-data-constraint>
      <transport-guarantee>NONE</transport-guarantee>
    </user-data-constraint>
  </security-constraint>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>MySecureBit2</web-resource-name>
      <url-pattern>/GuestPageTest</url-pattern>
      <http-method>GET</http-method>
      <http-method>POST</http-method>
    </web-resource-collection>
    <auth-constraint>
      <role-name>Administrator</role-name>
      <role-name>Manager</role-name>
      <role-name>VP</role-name>
    </auth-constraint>
    <user-data-constraint>
      <transport-guarantee>NONE</transport-guarantee>
    </user-data-constraint>
  </security-constraint>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>MySecureBit7</web-resource-name>
      <url-pattern>/ControlServlet</url-pattern>
    </web-resource-collection>
    <auth-constraint>
      <role-name>Administrator</role-name>
    </auth-constraint>
    <user-data-constraint>
      <transport-guarantee>NONE</transport-guarantee>
    </user-data-constraint>
  </security-constraint>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>MySecureBit3</web-resource-name>
      <url-pattern>/RoleReverseTest</url-pattern>
      <http-method>GET</http-method>
      <http-method>POST</http-method>
    </web-resource-collection>
    <auth-constraint>
      <role-name>Employee</role-name>
    </auth-constraint>
    <user-data-constraint>
      <transport-guarantee>NONE</transport-guarantee>
    </user-data-constraint>
  </security-constraint>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>MySecureBit1</web-resource-name>
      <url-pattern>/ServletSecTest</url-pattern>
      <http-method>GET</http-method>
      <http-method>POST</http-method>
    </web-resource-collection>
    <auth-constraint>
      <role-name>Administrator</role-name>
    </auth-constraint>
    <user-data-constraint>
      <transport-guarantee>NONE</transport-guarantee>
    </user-data-constraint>
  </security-constraint>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>MySecureBit10</web-resource-name>
      <url-pattern>/ServletProgrammaticLogout</url-pattern>
      <http-method>GET</http-method>
      <http-method>POST</http-method>
    </web-resource-collection>
    <auth-constraint>
      <role-name>Administrator</role-name>
    </auth-constraint>
    <user-data-constraint>
      <transport-guarantee>NONE</transport-guarantee>
    </user-data-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 administrator role</description>
    <role-name>Administrator</role-name>
  </security-role>
  <security-role>
    <description>the manager role</description>
    <role-name>Manager</role-name>
  </security-role>
  <security-role>
    <description>the VP role</description>
    <role-name>VP</role-name>
  </security-role>
  <security-role>
    <description>the employee role</description>
    <role-name>Employee</role-name>
  </security-role>
</web-app>
