lời chào tất cả, tôi đang sử dụng bảo mật mùa xuân 3.0.2, urlRewrite 3.1.0 và tôi gặp vấn đề với bảo mật mùa xuân rằng tôi có quy tắc rằng tất cả các trang trong ứng dụng yêu cầu xác thực ngoại trừ một số trang để bảo mật của tôi. xml là:Vấn đề bảo mật mùa xuân với lỗi 404?
<http use-expressions="true" >
<intercept-url pattern="/" access="permitAll" />
<intercept-url pattern="/error" filter="none" />
<intercept-url pattern="/**" access="isAuthenticated()" />
.
.
.</http>
trong web.xml tôi đã xác định các trang lỗi
<error-page>
<error-code>404</error-code>
<location>/p/error</location>
</error-page>
và vấn đề là nếu tôi không phải là một người dùng đăng nhập, và gõ một số url mà không làm tồn tại trong ứng dụng như app/notFoundUrl bảo mật mùa xuân khớp với trang này với mẫu/** yêu cầu xác thực, vì vậy t người dùng của anh ấy không được chuyển hướng đến trang lỗi như mong đợi, nhưng được chuyển hướng đến trang đăng nhập và sau đó, được chuyển hướng đến trang lỗi
và tôi muốn rằng nếu người dùng gõ url xấu nếu anh ấy đăng nhập hay không, anh ấy được chuyển trực tiếp đến trang lỗi.
tôi nghĩ rằng vấn đề có liên quan đến web.xml, đây là nó:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- Beans in these files will makeup the configuration of the root web application context -->
<!-- Bootstraps the root web application context before servlet initialization-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- Deploys the 'projects' dispatcher servlet whose configuration resides in /WEB-INF/servlet-config.xml-->
<servlet>
<servlet-name>p</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/servlet-config.xml
</param-value>
</init-param>
</servlet>
<!-- Maps all /p URLs to the 'p' servlet -->
<servlet-mapping>
<servlet-name>p</servlet-name>
<url-pattern>/p/*</url-pattern>
</servlet-mapping>
<error-page>
<error-code>404</error-code>
<location>/p/error</location>
</error-page>
<!-- force encoding on the requests -->
<filter>
<filter-name>encoding-filter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding-filter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
<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>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Security -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/application-config.xml
/WEB-INF/app-security.xml
/WEB-INF/mvc-config.xml
</param-value>
</context-param>
<session-config>
<session-timeout>1</session-timeout>
</session-config>
</web-app>
bất kỳ ý tưởng làm thế nào để giải quyết vấn đề này?
"Thực tế là tốt để từ chối truy cập theo mặc định, thay vì chỉ đảm bảo tài nguyên chúng tôi cần". - được trích dẫn từ [Hướng dẫn bảo mật mùa xuân] (http://static.springsource.org/spring-security/site/tutorial.html) –