最近在研究spring security的权限管理机制,自己试着搭了一个框架,可是在输入http:....../j_spring_security_check的时候,一直报404错误,在网上查了好多,都和我的不符,但是肯定是配置的问题,主要看spring.common.xml和spring.security.xml可是这两个的配置是正确的,一个一个字的和标准配置检查的,
<form-login login-page="/admin/login.action" login-processing-url="/j_spring_security_check"
authentication-failure-url="/admin/login.action" default-target-url="/admin/main.action" always-use-default-target="true"/>
login-processing-url的配置是为了过滤这个url从而进行下面检查的,可是这边一直是404,那么肯定是没过滤到这个url,没过滤到要么是url不符合规定,要么就是过滤器的问题,过滤的url肯定是没有问题,那这边就是过滤器的配置。
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>
org.springframework.web.filter.DelegatingFilterProxy
</filter-class>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</filter>
当时只顾检查配置的过滤器的class是否正确,所以又花费了很长时间头疼这个,因为觉得配置的没问题,就是DeledatingFilterProxy这个,可是问题就是没解决。最后终于醒了,看上面的配置,<filter>标签把<filter-mapping>包裹在了里面,导致一直不能过滤到任何url。改了后是:
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>
org.springframework.web.filter.DelegatingFilterProxy
</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
额。。这个问题足足解决了一天多,对自己无语了,还是不认真,问题分析不彻底。以后要注意这方面,遇到问题,一步一步分析,肯定是某块出的问题。