2015-11-16 39 views
0

我的項目出現了一些問題。找不到HTTP請求的映射Spring Security

我可以成功地去到登錄頁面,但點擊提交按鈕後,我收到此錯誤:

Lis 16, 2015 4:30:01 ODP. org.springframework.web.servlet.PageNotFound noHandlerFound 
WARNING: No mapping found for HTTP request with URI [/j_spring_security_check] in DispatcherServlet with name 'mvc-dispatcher' 

從這一行的jsp:

<form name='loginForm' 
    action="<c:url value='/j_spring_security_check' />" method='POST'> 

這是我的春天的安全性。 XML

<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-4.0.xsd 
    http://www.springframework.org/schema/security 
    http://www.springframework.org/schema/security/spring-security-4.0.xsd"> 

    <http auto-config="true"> 
     <intercept-url pattern="/adminPage**" access="hasRole('ROLE_USER')" /> 

     <form-login 
       login-page="/login" 
       default-target-url="/" 
       authentication-failure-url="/login?error" 
       username-parameter="username" 
       password-parameter="password" /> 
     <logout logout-success-url="/login?logout" /> 
     <!-- enable csrf protection --> 
     <csrf/> 
    </http> 

    <authentication-manager> 
     <authentication-provider> 
      <user-service> 
       <user name="kk" password="1" authorities="ROLE_USER" /> 
      </user-service> 
     </authentication-provider> 
    </authentication-manager> 

</beans:beans> 

這是我的web.xml

<web-app version="2.4" 
    xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 

    <display-name>Spring MVC Application</display-name> 

    <servlet> 
     <servlet-name>mvc-dispatcher</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>mvc-dispatcher</servlet-name> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 

    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 

    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value> 
      /WEB-INF/spring-security.xml 
     </param-value> 
    </context-param> 

    <!-- Spring Security --> 
    <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> 


</web-app> 

有人能幫助我嗎?謝謝

+0

當你從/ j_spring_security_check只是j_spring_security_check更改URL沒有前導斜槓,會發生什麼? – Raf

+0

它不工作。它顯示紅色,我不能在代碼中改變它。 – sponge

+0

/j_spring_security_check其中應用程序上下文將是/ mvc-dispatcher/spring_security_check - 您應該能夠在登錄頁面中更改表單的操作方法。 – Raf

回答

1

你必須使用/login,而不是/j_spring_security_check或配置login-processing-url/j_spring_security_check,看到Spring Security Reference

  • login-processing-url Maps to the filterProcessesUrl property of UsernamePasswordAuthenticationFilter . The default value is "/login".
相關問題