<?xml version="1.0" encoding="UTF-8" ?>
<web-app version="2.4" 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">
	

	<context-param>
		<param-name>container</param-name>
		<param-value>mscontainer</param-value>
	</context-param>
	
	
	<listener>
		<listener-class>kd.bos.service.web.ServiceInitListener</listener-class>
	</listener>
	
	<welcome-file-list>
       <welcome-file>index.html</welcome-file>
    </welcome-file-list>
  


  
    <filter>
      <filter-name>threadLifeCycleFilter</filter-name>
      <filter-class>kd.bos.framework.filter.ThreadLifeCycleFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>threadLifeCycleFilter</filter-name>
		<url-pattern>*.do</url-pattern>
	</filter-mapping>
	<filter-mapping>
		<filter-name>threadLifeCycleFilter</filter-name>
		<url-pattern>/kapi/*</url-pattern>
	</filter-mapping>
	<filter-mapping>
		<filter-name>threadLifeCycleFilter</filter-name>
		<url-pattern>/kws/*</url-pattern>
	</filter-mapping>
	<filter-mapping>
		<filter-name>threadLifeCycleFilter</filter-name>
		<url-pattern>/kdctlres/*</url-pattern>
	</filter-mapping>
  
  
	<filter>
      <filter-name>traceFilter</filter-name>
      <filter-class>kd.bos.trace.instrument.web.TraceFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>traceFilter</filter-name>
		<url-pattern>*.do</url-pattern>
	</filter-mapping>
<filter-mapping>
		<filter-name>traceFilter</filter-name>
		<url-pattern>/kapi/*</url-pattern>
	</filter-mapping>
	<filter-mapping>
		<filter-name>traceFilter</filter-name>
		<url-pattern>/kdctlres/*</url-pattern>
	</filter-mapping>
	
  	<filter>
      <filter-name>metricFilter</filter-name>
      <filter-class>kd.bos.metric.instruments.servlet.MetricFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>metricFilter</filter-name>
		<url-pattern>*.do</url-pattern>
	</filter-mapping>  
  
  
  
	<filter>
      <filter-name>loginFilter</filter-name>
      <filter-class>kd.bos.login.filter.LoginFilter</filter-class>
      <init-param>
      	<param-name>loginType</param-name>
      	<param-value>STANDALONE</param-value>
      </init-param>
	</filter>
	<filter-mapping>
		<filter-name>loginFilter</filter-name>
		<url-pattern>/</url-pattern>
	</filter-mapping>
	<filter-mapping>
		<filter-name>loginFilter</filter-name>
		<url-pattern>*.html</url-pattern>
	</filter-mapping>
	<filter-mapping>
		<filter-name>loginFilter</filter-name>
		<url-pattern>*.jsp</url-pattern>
	</filter-mapping>
	<filter-mapping>
		<filter-name>loginFilter</filter-name>
		<url-pattern>*.do</url-pattern>
	</filter-mapping>
	<filter-mapping>
		<filter-name>loginFilter</filter-name>
		<url-pattern>/kapi/*</url-pattern>
	</filter-mapping>
	<filter-mapping>
		<filter-name>loginFilter</filter-name>
		<url-pattern>/kws/*</url-pattern>
	</filter-mapping>
	<filter-mapping>
		<filter-name>loginFilter</filter-name>
		<url-pattern>/kdctlres/*</url-pattern>
	</filter-mapping>
	<filter>
      <filter-name>SessionContextFilter</filter-name>
      <filter-class>kd.bos.framework.filter.SessionContextFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>SessionContextFilter</filter-name>
		<url-pattern>*.do</url-pattern>
	</filter-mapping>
	<filter-mapping>
		<filter-name>SessionContextFilter</filter-name>
		<url-pattern>/kapi/*</url-pattern>
	</filter-mapping>
	<filter-mapping>
         <filter-name>loginFilter</filter-name>
         <url-pattern>/portal/*</url-pattern>
     </filter-mapping>
	<filter>
      <filter-name>actionDispatcher</filter-name>
      <filter-class>kd.bos.actiondispatcher.ActionFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>actionDispatcher</filter-name>
		<url-pattern>*.do</url-pattern>
	</filter-mapping>
	<filter>
      <filter-name>excelPreviewFilter</filter-name>
      <filter-class>kd.bos.excelpreview.ExcelPreviewFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>excelPreviewFilter</filter-name>
		<url-pattern>/excelpreview/*</url-pattern>
	</filter-mapping>
	  <servlet>
        <servlet-name>KCFServlet</servlet-name>
        <servlet-class>kd.bos.kcf.KCFServlet</servlet-class>
			<init-param>
         <param-name>route_path</param-name>
         <param-value>/sys/{formId}/{operationId}:kd.bos.web.api.ApiServiceType;/ai/do:kd.bos.web.api.AIServiceType;/app/{appId}/{servicename}/{method}:kd.bos.web.api.CustomApiServiceType</param-value>
     </init-param>
    </servlet>
    <servlet-mapping>
		<servlet-name>KCFServlet</servlet-name>
		<url-pattern>/kapi/*</url-pattern>
	</servlet-mapping>
	<servlet>
		<servlet-name>KWSServlet</servlet-name>
		<servlet-class>kd.bos.kws.KWSServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>KWSServlet</servlet-name>
		<url-pattern>/kws/*</url-pattern>
	</servlet-mapping>
	<security-constraint>
    <web-resource-collection>
      <web-resource-name>Disable OPTIONS</web-resource-name>
      <url-pattern>/*</url-pattern>
      <http-method>OPTIONS</http-method>
    </web-resource-collection>
    <auth-constraint/>
   </security-constraint>
   <security-constraint>
    <web-resource-collection>
      <web-resource-name>Disable TRACE</web-resource-name>
      <url-pattern>/*</url-pattern>
      <http-method>TRACE</http-method>
    </web-resource-collection>
    <auth-constraint/>
   </security-constraint>
   <security-constraint>
    <web-resource-collection>
      <web-resource-name>Enable everything but OPTIONS,TRACE</web-resource-name>
      <url-pattern>/*</url-pattern>
      <http-method-omission>OPTIONS,TRACE</http-method-omission>
    </web-resource-collection>
 </security-constraint>
				
</web-app>
