在用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理解错误了吗?总觉得 "/"应该可以捕获缺省页的啊。
分享到:
相关推荐
`web.xml`是Java Web应用程序中的核心配置文件,用于描述和配置Web应用程序的各种属性、组件及其行为。本文档将详细解析`web.xml`中的各个元素及其功能,帮助开发者更好地理解和使用该文件。 #### 二、常用元素及其...
在开始解析`web.xml`文件前,我们先了解其基本结构。部署描述符文件即`web.xml`文件,像所有XML文件一样,必须以一个XML头开始。这个头声明指定了可用的XML版本及文件的字符编码。紧随其后的`DOCTYPE`声明则告知...
通过以上元素的详细解释,我们可以看出`Web.xml`文件在Java Web开发中扮演着至关重要的角色,它不仅定义了应用程序的基本结构,还提供了灵活的配置选项来满足不同的需求。理解和掌握这些元素的使用,对于构建高效、...
过滤器按照在`web.xml`中定义的顺序初始化,并按顺序拦截请求。`<filter-mapping>`必须出现在其对应的`<filter>`之后,否则会导致解析错误。 - `<servlet>`和`<servlet-mapping>`:定义Servlet及其URL映射,与过滤...
在Java Web开发中,`web.xml`文件是应用的核心配置文件,它定义了Servlet、过滤器、监听器等组件,并负责映射它们的行为。本文将深入解析`web.xml`配置,帮助开发者理解其背后的原理和用途。 一、web.xml文件概述 `...
Web 应用程序部署描述符文件 `web.xml` 是配置 Java Web 应用的核心文件,它定义了应用程序的行为和结构。文件的正确配置对于确保应用的正常运行至关重要。以下是 `web.xml` 中主要元素的详细解释: 1. **定义头和...
在J2EE环境中,`web.xml`是Web应用程序的部署描述符,它是整个应用的核心配置文件,用于定义应用的行为、组件、安全性以及与其他服务的交互方式。下面将详细介绍其中的一些关键元素。 1. **<web-app>**: 这是web....
在Web开发中,`web.xml`文件是Web应用程序的部署描述符,它是Java Servlet规范的一部分,用于配置Web应用的各种组件,如Servlet、过滤器、监听器等。理解并熟练掌握`web.xml`的配置对于任何Web开发者来说都至关重要...
在Java Web开发中,`web.xml`是部署描述符(Deployment Descriptor)的核心文件,它定义了应用程序的行为和结构。这个CHM文件深入解析了`web.xml`的各种配置元素,帮助开发者更好地理解和控制Web应用程序的运行方式...
在本文档中,我们将详细介绍web.xml文件的作用、结构以及基本配置方法。 web.xml文件位于Web应用程序的WEB-INF目录下,是遵循Java EE规范的Web容器(如Apache Tomcat、Jetty等)识别的一个配置文件。它遵循特定的...
web.xml是Java EE应用程序中的核心配置文件,它定义了Web应用的行为和结构。此文件对于理解Web应用如何运行至关重要,因为它提供了服务器如何处理请求、初始化Servlet、过滤请求以及处理错误等信息。本文将深入解析...
在Servlet中,事件监听器机制和`web.xml`配置是两个关键的概念,它们极大地增强了应用的灵活性和可扩展性。 事件监听器机制在Servlet中扮演着重要角色,它允许程序员对特定的事件进行响应,例如请求到达、会话创建...
XML配置文件在Java Web开发中扮演着至关重要的角色,特别是`web.xml`,它是每个Web应用程序的核心配置文件之一。本文将深入解析`web.xml`中的各项元素及其作用,帮助开发者更好地理解和掌握如何通过配置文件来控制...
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> </filter> <filter-mapping> <filter-name>springSecurityFilterChain</filter-name> <url-pattern>/*</url-pattern> </...
- 在`WebContent\WEB-INF\`目录下创建`web.xml`文件,配置Struts2的Filter以处理所有的请求路径(`/*`)。这一步是Struts2通配符映射的关键配置之一。 ```xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns...
在 Web.xml 文件中,<display-name> 元素定义了 Web 应用的名称,而 <description> 元素则定义了 Web 应用的描述信息。这些信息将被用来描述 Web 应用程序的基本信息。 2. 初始化参数 <context-param> 元素定义了...