日期:2014-05-18  浏览次数:20949 次

spring security 自定义登录页面 访问/spring_security_login 404
我的spring security配置文件如下:
<?xml version="1.0" encoding="UTF-8"?>  
<beans:beans xmlns="http://www.springframework.org/schema/security"  
    xmlns:beans="http://www.springframework.org/schema/beans"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
                        http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd"> 
      
<http auto-config="true">
<!-- <intercept-url pattern="/login.jsp" filters="none" />
         <intercept-url pattern="/*" access="ROLE_USER" /> -->
         <form-login login-page="/login.jsp" authentication-failure-url="/login.jsp?error=true" default-target-url="/index.jsp"/>
     </http>
 
     <authentication-manager alias="authenticationManager">
         <authentication-provider>
             <user-service>
                 <user name="test" password="test" authorities="ROLE_USER" />
             </user-service>
         </authentication-provider>
            
     </authentication-manager>
      
</beans:beans> 

可是在浏览器中访问:http://localhost:8080/security3.1/spring_security_login 页面报404,去掉form-login配置,可以访问到spring security的默认登录页面,试了spring security 3.0.2 和 3.1.4两个版本都是一样的结果,大神们,怎么回事啊?

------解决方案--------------------
<form-login login-page="/login.jsp" authentication-failure-url="/login.jsp?error=true" default-target-url="/index.jsp"/>
加上这个,后登录页面就是login.jsp了,security拦截器不在拦截默认的。而是拦截login.jsp
你输入spring_security_login这个。人家不拦截。你也没做 处理。
服务器当然找不到。
就比如默认spring-mvc默认是拦截.htm的。但是你改成do了。如果你还用.htm,肯定会404
------解决方案--------------------
引用: