`

Roller4.0.1的Filter

阅读更多
Roller使用了一些自己的Filter
   <!-- 从名称上看,是安全性配置,这个是acegi的配置文件定义 -->  
   <context-param>  
       <param-name>contextConfigLocation</param-name>  
       <param-value>/WEB-INF/security.xml</param-value>  
   </context-param>  
     
   <!--  这个就是struts2的配置 ,struts2的Filter要放在最前面。以前项目中,前面放了其他的Filter,造成struts的ValueStack有问题, 页面用struts2标签获取不到元素   -->
   <filter>  
       <filter-name>struts2</filter-name>  
       <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>  
   </filter>  
     
  <!-- 要使用struts2上传,要配置这个filter,否则会有一些不知名的错误发生。同样struts的filter放在最前面 -->  
   <!-- This is really strange, but for some reason it's needed to prevent  some problems with the file uploads not working intermittently -->  
   <filter>  
       <filter-name>struts2-cleanup</filter-name>  
       <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>  
   </filter>  
     
<!-- acegi安全组件的filter,通过这个进行权限管理 -->  
   <filter>  
       <filter-name>securityFilter</filter-name>  
       <filter-class>org.acegisecurity.util.FilterToBeanProxy</filter-class>  
       <init-param>  
           <param-name>targetClass</param-name>  
           <param-value>org.acegisecurity.util.FilterChainProxy</param-value>  
       </init-param>  
   </filter>  
     
   <!-- 调试用的Filter,简单的记录request、response等信息,只是作为记录使用, 在正式的使用中可以去掉 -->  
   <filter>  
       <filter-name>DebugFilter</filter-name>  
       <filter-class>org.apache.roller.weblogger.ui.core.filters.DebugFilter</filter-class>  
   </filter>  
     
   <!-- 在处理结束后,检验一下是否Persistence Session都释放掉了。这个是一个增强的作用,保证处理结束后,Weblogger都被释放掉了 -->  
   <filter>  
       <filter-name>PersistenceSessionFilter</filter-name>  
       <filter-class>org.apache.roller.weblogger.ui.core.filters.PersistenceSessionFilter</filter-class>  
   </filter>  
     
   <!-- 检查系统是否准备好了: 有weblogger、数据库安装情况 。这个是对系统运行的基础进行一个检查    -->  
   <filter>  
       <filter-name>BootstrapFilter</filter-name>  
       <filter-class>org.apache.roller.weblogger.ui.core.filters.BootstrapFilter</filter-class>  
   </filter>  
     
   <!-- 压缩      
    Most app servers support compression, if yours doesn't then use this one,  
   but don't forget to uncomment the mapping below too.  
   <filter>  
       <filter-name>CompressionFilter</filter-name>  
       <filter-class>org.apache.roller.weblogger.ui.core.filters.CompressionFilter</filter-class>  
   </filter>  
   -->  
  
    <!-- 请求的Request可能会被一系列的RequestMapper进行检查,可能会隐含的被转到不同的处理地点   ?  -->  
   <filter>  
       <filter-name>RequestMappingFilter</filter-name>  
       <filter-class>org.apache.roller.weblogger.ui.rendering.filters.RequestMappingFilter</filter-class>  
   </filter>  
     
    <!-- 一个特殊的初始化Filter,在第一次请求发送的时候,确保有机会获取运行时的一些信息    ?   -->  
   <filter>  
       <filter-name>InitFilter</filter-name>  
       <filter-class>org.apache.roller.weblogger.ui.core.filters.InitFilter</filter-class>  
   </filter>  
     
   <!-- IP限制的Filter : 这个没有什么好说的,禁止某些IP访问。 通过在配置文件中的 ipbanlist.file定义的文件来进行限制,这个文件每一行一个IP地址,通过和request.getRemoteAddr()来进行比较  
   -->  
   <filter>  
       <filter-name>IPBanFilter</filter-name>  
       <filter-class>org.apache.roller.weblogger.ui.core.filters.IPBanFilter</filter-class>  
   </filter>  
     
   <!-- 提供安全登陆,确保登陆urls使用https ?   -->  
   <filter>  
       <filter-name>SchemeEnforcementFilter</filter-name>  
       <filter-class>org.apache.roller.weblogger.ui.core.filters.SchemeEnforcementFilter</filter-class>  
   </filter>  
     
   <!-- 所有请求的入口,保证请求用UTF-8编码。这个通常是处理链上的第一个和最后一个。 Roller要求的编码方式是UTF-8,在进行处理之前进行保证  
    -->  
   <filter>  
       <filter-name>CharEncodingFilter</filter-name>  
       <filter-class>org.apache.roller.weblogger.ui.core.filters.CharEncodingFilter</filter-class>  
   </filter>  


Roller自己提供的几个Filter:

1.DebugFilter: 

  org.apache.roller.weblogger.ui.core.filters.DebugFilter

2.PersistenceSessionFilter:

  org.apache.roller.weblogger.ui.core.filters.PersistenceSessionFilter

3. BootstrapFilter :

  org.apache.roller.weblogger.ui.core.filters.BootstrapFilter

  其实这个也只有在安装的时候管用,正常运行起来就不需要了

4.RequestMappingFilter:

  org.apache.roller.weblogger.ui.rendering.filters.RequestMappingFilter

5.InitFilter:

  org.apache.roller.weblogger.ui.core.filters.InitFilter

6.IPBanFilter:

  org.apache.roller.weblogger.ui.core.filters.IPBanFilter

  这个简单,只需要知道IPban的配置,以及配置文件如何写即可

7.SchemeEnforcementFilter

  org.apache.roller.weblogger.ui.core.filters.SchemeEnforcementFilter

8.CharEncodingFilter:
    org.apache.roller.weblogger.ui.core.filters.CharEncodingFilter

Filter-Mapping如下:
    <!-- ******************************************
         Filter mappings - order IS important here.  
         ****************************************** -->
    
    <!--
     NOTE: Wherever "dispatcher" elements are specified in the filter mappings, they are
     required for Servlet API 2.4 containers, such as Tomcat 5+ and Resin 3+, but should be
     commented out for Servlet API 2.3 containers, like Tomcat 4.x and Resin 2.x.
    -->
    
    <!-- This filter ensures that the request encoding is set to UTF-8 before any 
     other processing forces request parsing using a default encoding.
    Note: Any filters preceding this one MUST not cause request parsing. -->
    <filter-mapping>
        <filter-name>CharEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>
    
    <!-- Ip Banning is mapped for comment and trackbacks only.
    Note: this filter does nothing if an ip ban list is not configured. -->
    <filter-mapping>
        <filter-name>IPBanFilter</filter-name>
        <url-pattern>/roller-ui/rendering/comment/*</url-pattern>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>
    <filter-mapping>
        <filter-name>IPBanFilter</filter-name>
        <url-pattern>/roller-ui/rendering/trackback/*</url-pattern>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>
    
    <!-- Scheme enforcement.  Only here until we get Acegi scheme enforcement working -->
    <filter-mapping>
        <filter-name>SchemeEnforcementFilter</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
    </filter-mapping>
    
    <!-- Acegi Security filters - controls secure access to different parts of Roller -->
    <filter-mapping>
        <filter-name>securityFilter</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>
    
    <filter-mapping>
        <filter-name>BootstrapFilter</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
    </filter-mapping>
    
    <!-- Map everything to the PersistenceSessionFilter.
    NOTE: Any filters preceding this one MUST NOT use persistence sessions.-->
    <filter-mapping>
        <filter-name>PersistenceSessionFilter</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
    </filter-mapping>
    
    <!-- Init filter.  performs some initialization on first request -->
    <filter-mapping>
        <filter-name>InitFilter</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
    </filter-mapping>
    
    <!-- Request mapping.  this is what allows the urls to work -->
    <filter-mapping>
        <filter-name>RequestMappingFilter</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
    </filter-mapping>
    
    <!-- 
    Most app servers support compression, if yours doesn't then use this one,
    but don't forget to uncomment the filter definition above too.
    <filter-mapping>
        <filter-name>CompressionFilter</filter-name>
        <url-pattern>/roller-ui/rendering/page/*</url-pattern>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>
    <filter-mapping>
        <filter-name>CompressionFilter</filter-name>
        <url-pattern>/roller-ui/rendering/feed/*</url-pattern>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>
    -->
    
    <!-- Struts2 -->
    <filter-mapping>
        <filter-name>struts2-cleanup</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>
    
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>
    
    
    <!-- Context Listeners -->
	<!-- 控制session的启动和关闭 -->
    <listener>
        <listener-class>org.apache.roller.weblogger.ui.core.RollerSession</listener-class>
    </listener>
    
	<!-- 初始化Roller web application/context -->
    <listener>
        <listener-class>org.apache.roller.weblogger.ui.core.RollerContext</listener-class>
    </listener>
    
	<!-- Tile的一个监听器 -->
    <listener>
        <listener-class>org.apache.tiles.web.startup.TilesListener</listener-class>
    </listener>
分享到:
评论

相关推荐

    apache-roller-4.0.1

    这个压缩包"apache-roller-4.0.1"包含了Apache Roller的第4.0.1版本,这是一个基于Java技术构建的Web应用程序。接下来,我们将深入探讨Apache Roller的核心功能、特性以及与Java相关的技术细节。 1. **Apache ...

    apache-roller-src-4.0.1 源代码

    源代码包"apache-roller-src-4.0.1"是Roller项目的4.0.1版本的源码,对开发者来说,这是一个深入了解Roller工作原理和学习Java Web开发的宝贵资源。 1. **Java技术栈**: Apache Roller的源代码基于Java语言编写,...

    apache-roller-src-4.0.1.part2.rar

    apache-roller-src-4.0.1.part2.rar

    3DMAX卷曲修改器Roller下载

    在3DMAX中,卷曲修改器是实现复杂动态效果的重要工具,而Roller正是这样一款专为卷曲效果设计的插件。这款插件能够帮助用户轻松创建出卷曲形状的模型,不仅限于静态的造型,还能生成逼真的卷曲和展开的动画效果。 ...

    roller

    标题中的"roller"很可能指的是Apache Roller,一个开源的博客服务器平台。这个平台允许用户创建、管理和发布多个博客,并且提供了丰富的API供开发者扩展其功能。接下来,我们将深入探讨与"roller"相关的技术知识点。...

    博客(Blog)-Roller Weblogger ,MeEclipse下搭建

    - Roller4.0.1: Roller博客系统的版本号,也是搭建的目标版本。 - Apache Roller: 为Apache软件基金会下的一个开源项目,通过上述提供的下载链接可以获取Roller的源码和压缩文件。 3. **配置步骤**: - 数据库...

    roller安装

    《roller安装指南——深入探索源码与工具应用》 在IT行业中,经常需要处理各种开源项目,以便定制、学习或优化。"roller"是一个颇受欢迎的开源博客引擎,它为开发者提供了一个强大的平台来创建、管理和发布个人或...

    Roller初体验

    【标题】:“Roller初体验” 在IT领域,Roller是一款开源的Java博客系统,它提供了丰富的功能,便于用户创建、管理和分享个人或团队的博客内容。本文将围绕Roller的初体验,深入探讨其核心特性,源码结构以及如何与...

    apache优秀Java开源项目源代码—— apache-roller!

    Apache Roller是一款功能强大的开源博客系统,它由Apache软件基金会维护,是Java开发者学习和研究的绝佳实例。通过深入分析Roller的源代码,我们可以了解到Java Web应用开发的多个关键知识点,包括但不限于以下方面...

    Apache Roller

    Apache Roller是一个全功能,多用户和组博客服务器,适合大型和小型博客网站。它运行一个Java Web应用程序应该能够运行在任何Java EE服务器和关系数据库。目前,Apache Roller能很好的支持Tomcat和MySQL。 本人用...

    roller5 for tomcat

    《Roller 5 for Tomcat:一款便捷的博客平台整合指南》 在互联网技术日新月异的今天,各类Web应用程序层出不穷,其中博客系统作为个人和团队表达思想、分享知识的重要平台,一直受到广泛关注。Roller 5 for Tomcat...

    开源Java博客Roller v5.0 for tomcat.zip

    Roller 是一个全功能的多用户博客平台,于2002年首发,采用Java语言开发,设计精巧,源代码是很好的学习资料。它支持weblogging应有的特性如:评论功能,所见即所得HTML编辑,TrackBack,提供页面模板,RSS ...

    Apacheroller

    ### Apache Roller 安装指南详解 #### 概览 本文档详细介绍了如何安装 Apache Roller Weblogger 软件。它涵盖了安装前需要准备的内容、如何下载 Roller、如何配置 Roller 以及如何将其安装到现有的 Java 应用...

    roller-part01

    apache-roller-srapaapache-roller-srcche-roller-srccapache-rolaapache-roller-srcpache-roller-srcler-srcapapache-roller-srcache-roller-srcapache-roller-src

    roller install、user、template guide

    在IT行业中,"roller"可能是指一个开源项目或者软件工具,但具体信息不足,我们只能根据常规的安装、用户和模板指南来理解这个主题。以下是对这些概念的详细解释: 一、roller install(roller安装指南) 在安装...

    roller-part2

    apache-rollapachapache-roller-srce-roller-srcer-srcapache-rolleapacapache-roller-srche-roller-srcr-srcapache-roapache-roller-srcller-srcapache-roller-src

    apache-roller-src

    apache-roller-src apache-roller-src apache-roller-src apache-roller-src apache-roller-src apache-roller-src apache-roller-src apache-roller-src apache-roller-src apache-roller-src

Global site tag (gtag.js) - Google Analytics