我正在嘗試按照,但它似乎並沒有工作。春季安全可以保護整個網站,除了一些網址嗎?
<intercept-url pattern="/**" access="hasRole('ROLE_USER')" />
<intercept-url pattern="/abc/**" access="permitAll"/>
我知道這是一個有點古怪,讓有些人甚至根本固定,但我們的要求是建立在當前應用程序中的一個「全新」的應用程序。
我正在嘗試按照,但它似乎並沒有工作。春季安全可以保護整個網站,除了一些網址嗎?
<intercept-url pattern="/**" access="hasRole('ROLE_USER')" />
<intercept-url pattern="/abc/**" access="permitAll"/>
我知道這是一個有點古怪,讓有些人甚至根本固定,但我們的要求是建立在當前應用程序中的一個「全新」的應用程序。
41.1.24 <攔截的URL >
這個元素用來定義URL模式集合,應用對什麼感興趣並配置它們應該如何被處理。它用於構造由
FilterSecurityInterceptor
使用的FilterInvocationSecurityMetadataSource
。例如,如果需要通過HTTPS訪問特定的URL,它還負責配置ChannelProcessingFilter
。當針對傳入請求匹配指定模式時,匹配按聲明元素的順序完成。所以最具體的模式應該是第一位的,最普通的模式應該是最後一位。
修改後的配置:
<intercept-url pattern="/abc/**" access="permitAll"/>
<intercept-url pattern="/**" access="hasRole('ROLE_USER')" />
當然,你可以忽略某些URL模式。如果您使用的是Java的配置,你把下一個方法在安全配置類:
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/url/to/ignore/**");
}
XML模擬:
<http pattern="/url/to/ignore/**" security="none"/>