<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance" xmlns=" http://java.sun.com/xml/ns/javaee"
xmlns:web=" http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation=" http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<!-- 在启动时,系统缓存web应用的跟路径,获取方式:String root = System.getProperty("platform.root") -->
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>platform.root</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.WebAppRootListener</listener-class>
</listener>
<!-- 在启动时,实例化Spring容器,自动加载Spring配置文件,IOC控制反转管理bean -->
<!-- 假如没有配置这个,Spring默认加载applicationContext.xml文件,配置这个之后,就按照对应路径加载 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath*:/spring-base.xml
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 为了避免使用第三方应用(Struts、Quartz等)产生的内存溢出 -->
<listener>
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
</listener>
<!-- Spring为我们解决Hibernate的Session的关闭与开启问题,将事物和session绑定在一个线程 -->
<filter>
<filter-name>OpenSessionInViewFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
<init-param>
<param-name>excludeSuffixs</param-name>
<param-value>js,css,jpg,gif,png</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>OpenSessionInViewFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Spring管理设置request和response的编码为UTF-8 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 基于redis缓存的请求过滤验证 -->
<filter>
<display-name>RedisSessionFilter</display-name>
<filter-name>RedisSessionFilter</filter-name>
<filter-class>com.demo.filter.session.RedisSessionFilter</filter-class>
<!-- 传输到过滤器类的参数 -->
<init-param>
<param-name>sessionId</param-name>
<param-value>platform6sid</param-value>
</init-param>
<init-param>
<param-name>cookieDomain</param-name>
<param-value></param-value>
</init-param>
<init-param>
<param-name>cookiePath</param-name>
<param-value>/</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>RedisSessionFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 设置session的过滤器 -->
<filter>
<filter-name>loginFilter</filter-name>
<filter-class>
com.demo.api.syssso.filter.LoginFilter
</filter-class>
<init-param>
<param-name>httpheaderlogin</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>ssologin</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>loginPage</param-name>
<param-value>login_sso_cas.jsp</param-value>
</init-param>
<init-param>
<param-name>authSessionVars</param-name>
<param-value>CURRENT_LOGINUSER</param-value>
</init-param>
<init-param>
<param-name>redirectURIVarName</param-name>
<param-value>sourceURI</param-value>
</init-param>
<init-param>
<param-name>redirectQueryStringVarName</param-name>
<param-value>sourceQueryString</param-value>
</init-param>
<init-param>
<param-name>notFilters</param-name>
<param-value>login_sso_cas.jsp,login-normal.jsp,logout_forCas.jsp,logout.jsp,login.action,login_sso_err.jsp,login.jsp,login4.jsp</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>loginFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>loginFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<!-- sso demo cas -->
<filter>
<filter-name>ssoCasFiller</filter-name>
<filter-class>
com.demo.api.syssso.filter.CASFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>ssoCasFiller</filter-name>
<url-pattern>/login/login_sso_cas.jsp</url-pattern>
</filter-mapping>
<!-- shrio 安全过滤器 -->
<filter>
<filter-name>contextShirocommonFilter</filter-name>
<filter-class>com.demo.api.sysshirolog.filter.ShiroContextPersistenceFilter</filter-class>
<init-param>
<!-- 系统初始化缓存开关-->
<param-name>initLoadFlag</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<!-- 线程安全操作类-->
<param-name>frameworkContextRepository</param-name>
<param-value>com.demo.api.sysshirolog.utils.HttpSessionFrameworkContextRepository</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>contextShirocommonFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 把容器初始化的数据保存起来,可以作用在容器的每个bean上 -->
<filter>
<filter-name>shiroFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<init-param>
<param-name>targetFilterLifecycle</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>shiroFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--
<filter>
<filter-name>RestAuthFilter</filter-name>
<filter-class>com.demo.core.rest.auth.RestAuthFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>RestAuthFilter</filter-name>
<url-pattern>/rest/*</url-pattern>
</filter-mapping>
-->
<!-- 初始化功能模块的组件至父容器,ContextLoaderListner初始化的是全局(父容器) -->
<servlet>
<servlet-name>springServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:/spring-mvc.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springServlet</servlet-name>
<url-pattern>/demo/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- 附件以swf形式上传下载 -->
<servlet>
<servlet-name>swfUpload</servlet-name>
<servlet-class>
com.demo.modules.system.sysfileupload.action.SwfUploadServlet
</servlet-class>
<load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>swfUpload</servlet-name>
<url-pattern>/swfUpload</url-pattern>
</servlet-mapping>
</web-app>