Spring Security を使用した Web プロジェクトがあります。ユーザーは login.jsp から開始し、認証を通過して、hello.jsp に移動します。すべての JSP ページが WEB-INF にあることに注意してください。プロセス中に、URL が で始まりlocalhost:8081/Project1/pages/login.jsp
、ページを送信した直後に、URL が に変更されていること に気付きましたhttp://localhost:8081/Project1/pages/j_spring_security_check;jsessionid=792884C463EAC3C6CBC155EA75F4C6E4
。
そして、認証後に hello.jsp を表示する代わりに HTTP ステータス 404 を表示するページ。コンソール出力に、次のメッセージが表示されます。
WARNING: No mapping found for HTTP request with URI [/SpringSecurity3/pages/j_spring_security_check] in DispatcherServlet with name 'SpringSecurity3'
Spring構成で構成ミスが何であるかわかりませんか? 構成コードは次のとおりです。
<http auto-config="true">
<intercept-url pattern="/welcome*" access="ROLE_ADMIN"/>
<intercept-url pattern="/pages/hello.jsp" access="ROLE_ADMIN"/>
<form-login login-page="/login" default-target-url="/welcome" authentication-failure-url="/loginfailed" />
<logout logout-success-url="/pages/login.jsp"/>
</http>
私のweb.xmlは次のとおりです。
<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>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/WEB-INF/pages/*</url-pattern>
</filter-mapping>