<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
  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 - Content Empty placeholder</display-name>
    <description>Empty placeholder, see http://svn.apache.org/viewvc?view=revision&amp;revision=1658621 </description>
    <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>
</web-app>
