`
iamlotus
  • 浏览: 108095 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

在web.xml的filter中拦截welcome-page

 
阅读更多

在用spring security作权限控制的过程中,遇到以下需求:

如果用户已经登录了,那么输入主页url时不要到登录页(index.html),而是直接跳到登录后的主页(main.html)。

由于"/"和"index.html"本来不需要权限,所以在applicationContext-security.xml里是如下配置的

 

<s:intercept-url pattern="/" filters="none" />
<s:intercept-url pattern="/index.html" filters="none" />

 

 本想去掉这两行在自定义的ProcessingFilter里判断如果登录就直接chain.filter(...),结果发现不行。因为如果不用filters="none",那么spring security缺省会匹配到/**,而/**是有权限要求的。

 

没办法,只好自己写一个Filter配到web.xml中实现此功能。当然,这样看上去很不优雅,不过暂时没有更好的解决方法。这里要注意,按照servlet 2.4 spec的说法,对于mapping中的url

 

 写道
• A string containing only the ’/’ character indicates the "default" servlet of
the application. In this case the servlet path is the request URI minus the context
path and the path info is null.

 

 但实际上如果自己写的那个Filter在mapping中配成 

    <filter-mapping>

		<filter-name>directlyNavigateToMainPageWhenAuthenticationSuccessFilter</filter-name>
		<url-pattern>/</url-pattern>
	</filter-mapping>

 

是怎么也捕捉不到"/"和”/index.html“的,解决方法是直接在这里配成welcome-page中的地址

	<filter-mapping>
		<filter-name>directlyNavigateToMainPageWhenAuthenticationSuccessFilter</filter-name>
		<url-pattern>/index.html</url-pattern>
	</filter-mapping>
 

这样就能捕获了。

 

不知道是我对spec理解错误了吗?总觉得 "/"应该可以捕获缺省页的啊。

0
3
分享到:
评论

相关推荐

    web.xml详细说明

    `web.xml`是Java Web应用程序中的核心配置文件,用于描述和配置Web应用程序的各种属性、组件及其行为。本文档将详细解析`web.xml`中的各个元素及其功能,帮助开发者更好地理解和使用该文件。 #### 二、常用元素及其...

    web.xml 详解

    在开始解析`web.xml`文件前,我们先了解其基本结构。部署描述符文件即`web.xml`文件,像所有XML文件一样,必须以一个XML头开始。这个头声明指定了可用的XML版本及文件的字符编码。紧随其后的`DOCTYPE`声明则告知...

    Web.xml常用元素

    通过以上元素的详细解释,我们可以看出`Web.xml`文件在Java Web开发中扮演着至关重要的角色,它不仅定义了应用程序的基本结构,还提供了灵活的配置选项来满足不同的需求。理解和掌握这些元素的使用,对于构建高效、...

    web.xml加载顺序与web.xml常用节点解析

    过滤器按照在`web.xml`中定义的顺序初始化,并按顺序拦截请求。`&lt;filter-mapping&gt;`必须出现在其对应的`&lt;filter&gt;`之后,否则会导致解析错误。 - `&lt;servlet&gt;`和`&lt;servlet-mapping&gt;`:定义Servlet及其URL映射,与过滤...

    java web项目 web.xml配置详解

    在Java Web开发中,`web.xml`文件是应用的核心配置文件,它定义了Servlet、过滤器、监听器等组件,并负责映射它们的行为。本文将深入解析`web.xml`配置,帮助开发者理解其背后的原理和用途。 一、web.xml文件概述 `...

    web.xml配置详解

    Web 应用程序部署描述符文件 `web.xml` 是配置 Java Web 应用的核心文件,它定义了应用程序的行为和结构。文件的正确配置对于确保应用的正常运行至关重要。以下是 `web.xml` 中主要元素的详细解释: 1. **定义头和...

    J2EE中关于web.xml文件的配置[文].pdf

    在J2EE环境中,`web.xml`是Web应用程序的部署描述符,它是整个应用的核心配置文件,用于定义应用的行为、组件、安全性以及与其他服务的交互方式。下面将详细介绍其中的一些关键元素。 1. **&lt;web-app&gt;**: 这是web....

    Web.xml配置详解

    在Web开发中,`web.xml`文件是Web应用程序的部署描述符,它是Java Servlet规范的一部分,用于配置Web应用的各种组件,如Servlet、过滤器、监听器等。理解并熟练掌握`web.xml`的配置对于任何Web开发者来说都至关重要...

    web.xml配置详细介绍(CHM)

    在Java Web开发中,`web.xml`是部署描述符(Deployment Descriptor)的核心文件,它定义了应用程序的行为和结构。这个CHM文件深入解析了`web.xml`的各种配置元素,帮助开发者更好地理解和控制Web应用程序的运行方式...

    web.xml文件的作用及基本配置.pdf

    在本文档中,我们将详细介绍web.xml文件的作用、结构以及基本配置方法。 web.xml文件位于Web应用程序的WEB-INF目录下,是遵循Java EE规范的Web容器(如Apache Tomcat、Jetty等)识别的一个配置文件。它遵循特定的...

    web.xml详细解析四合一.docx

    web.xml是Java EE应用程序中的核心配置文件,它定义了Web应用的行为和结构。此文件对于理解Web应用如何运行至关重要,因为它提供了服务器如何处理请求、初始化Servlet、过滤请求以及处理错误等信息。本文将深入解析...

    我收集的servlet中事件监听器机制we吧xml配置详解

    在Servlet中,事件监听器机制和`web.xml`配置是两个关键的概念,它们极大地增强了应用的灵活性和可扩展性。 事件监听器机制在Servlet中扮演着重要角色,它允许程序员对特定的事件进行响应,例如请求到达、会话创建...

    XML配置详解

    XML配置文件在Java Web开发中扮演着至关重要的角色,特别是`web.xml`,它是每个Web应用程序的核心配置文件之一。本文将深入解析`web.xml`中的各项元素及其作用,帮助开发者更好地理解和掌握如何通过配置文件来控制...

    springSecurity3入门级文档.doc

    &lt;filter-class&gt;org.springframework.web.filter.DelegatingFilterProxy&lt;/filter-class&gt; &lt;/filter&gt; &lt;filter-mapping&gt; &lt;filter-name&gt;springSecurityFilterChain&lt;/filter-name&gt; &lt;url-pattern&gt;/*&lt;/url-pattern&gt; &lt;/...

    Struts2_通配符映射

    - 在`WebContent\WEB-INF\`目录下创建`web.xml`文件,配置Struts2的Filter以处理所有的请求路径(`/*`)。这一步是Struts2通配符映射的关键配置之一。 ```xml &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;web-app xmlns...

    servlet的配置

    在 Web.xml 文件中,&lt;display-name&gt; 元素定义了 Web 应用的名称,而 &lt;description&gt; 元素则定义了 Web 应用的描述信息。这些信息将被用来描述 Web 应用程序的基本信息。 2. 初始化参数 &lt;context-param&gt; 元素定义了...

Global site tag (gtag.js) - Google Analytics