<?xml version="1.0"?>

<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->

<web-app version="3.0">
  <description>Party Manager Module of the Apache OFBiz Project</description>
  <display-name>Apache OFBiz - Party Manager</display-name>

  <context-param>
    <description>The Name of the Entity Delegator to use, defined in entityengine.xml</description>
    <param-name>entityDelegatorName</param-name>
    <param-value>default</param-value>
  </context-param>
  <context-param>
    <description>A unique name used to identify/recognize the local dispatcher for the Service Engine</description>
    <param-name>localDispatcherName</param-name>
    <param-value>partymgr</param-value>
  </context-param>
  <context-param>
    <description>The location of the main-decorator screen to use for this webapp; referred to as a context variable in screen def XML files.</description>
    <param-name>mainDecoratorLocation</param-name>
    <param-value>component://party/widget/partymgr/CommonScreens.xml</param-value>
  </context-param>

  <filter>
      <display-name>ControlFilter</display-name>
      <filter-name>ControlFilter</filter-name>
      <filter-class>org.apache.ofbiz.webapp.control.ControlFilter</filter-class>
      <init-param>
          <param-name>allowedPaths</param-name>
          <param-value>/error:/control:/select:/index.html:/index.jsp:/default.html:/default.jsp:/images:/static</param-value>
      </init-param>
      <init-param>
          <param-name>redirectPath</param-name>
          <param-value>/control/main</param-value>
      </init-param>
  </filter>
  <filter>
      <display-name>ContextFilter</display-name>
      <filter-name>ContextFilter</filter-name>
      <filter-class>org.apache.ofbiz.webapp.control.ContextFilter</filter-class>
  </filter>
  <filter-mapping>
      <filter-name>ControlFilter</filter-name>
      <url-pattern>/*</url-pattern>
  </filter-mapping>
  <filter-mapping>
      <filter-name>ContextFilter</filter-name>
      <url-pattern>/*</url-pattern>
  </filter-mapping>

  <listener><listener-class>org.apache.ofbiz.webapp.control.ControlEventListener</listener-class></listener>
  <listener><listener-class>org.apache.ofbiz.webapp.control.LoginEventListener</listener-class></listener>
  <!-- NOTE: not all app servers support mounting implementations of the HttpSessionActivationListener interface -->
  <!-- <listener><listener-class>org.apache.ofbiz.webapp.control.ControlActivationEventListener</listener-class></listener> -->
  <description>Main Control Servlet</description>

  <servlet>
    <display-name>ControlServlet</display-name>
    <servlet-name>ControlServlet</servlet-name>
    <servlet-class>org.apache.ofbiz.webapp.control.ControlServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>ControlServlet</servlet-name>
    <url-pattern>/control/*</url-pattern>
  </servlet-mapping>

  <session-config>
    <session-timeout>60</session-timeout>    <!-- in minutes -->
    <cookie-config>
      <http-only>true</http-only>
      <secure>true</secure>
    </cookie-config>
    <tracking-mode>COOKIE</tracking-mode>
  </session-config>

  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
<!--
  <error-page>
    <error-code>403</error-code>
    <location>/error/error403.jsp</location>
  </error-page>
  <error-page>
    <error-code>404</error-code>
    <location>/error/error404.jsp</location>
  </error-page>
  <error-page>
    <error-code>410</error-code>
    <location>/error/error.jsp</location>
  </error-page>
  <error-page>
    <error-code>500</error-code>
    <location>/error/error.jsp</location>
  </error-page>
-->

<!-- HTTP Response Code definitions:
| "400"   ; Bad Request
| "401"   ; Unauthorized
| "402"   ; Payment Required
| "403"   ; Forbidden
| "404"   ; Not Found
| "405"   ; Method Not Allowed
| "406"   ; Not Acceptable
| "407"   ; Proxy Authentication Required
| "408"   ; Request Time-out
| "409"   ; Conflict
| "410"   ; Gone
| "411"   ; Length Required
| "412"   ; Precondition Failed
| "413"   ; Request Entity Too Large
| "414"   ; Request-URI Too Large
| "415"   ; Unsupported Media Type
| "500"   ; Internal Server Error
| "501"   ; Not Implemented
| "502"   ; Bad Gateway
| "503"   ; Service Unavailable
| "504"   ; Gateway Time-out
| "505"   ; HTTP Version not supported
-->

<!--
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>Entire Site</web-resource-name>
      <description>Entire Site</description>
      <url-pattern>/*</url-pattern>
    </web-resource-collection>
-->
    <!-- For enabling SSL, specify CONFIDENTIAL or INTEGRAL. -->
<!--
    <user-data-constraint>
      <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
  </security-constraint>
-->
</web-app>
