<?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">
  <display-name>Apache OFBiz - Marketing Manager</display-name>
  <description>Marketing Manager Module of the Apache OFBiz Project</description>

  <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>marketing</param-value>
  </context-param>
  <context-param>
    <description>BeanShell Script Location</description>
    <param-name>scriptLocationPath</param-name>
    <param-value>/WEB-INF/bsh</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://marketing/widget/CommonScreens.xml</param-value>
  </context-param>

    <filter>
        <display-name>ContextFilter</display-name>
        <filter-name>ContextFilter</filter-name>
        <filter-class>org.ofbiz.webapp.control.ContextFilter</filter-class>
        <init-param>
            <param-name>disableContextSecurity</param-name>
            <param-value>N</param-value>
        </init-param>
        <init-param>
            <param-name>allowedPaths</param-name>
            <param-value>/error:/control:/select:/index.html:/index.jsp:/default.html:/default.jsp:/images:/includes/maincss.css</param-value>
        </init-param>
        <init-param>
            <param-name>errorCode</param-name>
            <param-value>403</param-value>
        </init-param>
        <init-param>
            <param-name>redirectPath</param-name>
            <param-value>/control/main</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>ContextFilter</filter-name>
            <url-pattern>/*</url-pattern>
    </filter-mapping>

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

  <servlet>
    <description>Main Control Servlet</description>
    <display-name>ControlServlet</display-name>
    <servlet-name>ControlServlet</servlet-name>
    <servlet-class>org.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>
