2016-12-02 45 views
0

我正在嘗試按照,但它似乎並沒有工作。春季安全可以保護整個網站,除了一些網址嗎?

<intercept-url pattern="/**" access="hasRole('ROLE_USER')" /> 
<intercept-url pattern="/abc/**" access="permitAll"/> 

我知道這是一個有點古怪,讓有些人甚至根本固定,但我們的要求是建立在當前應用程序中的一個「全新」的應用程序。

回答

0

Spring Security Reference

41.1.24 <攔截的URL >

這個元素用來定義URL模式集合,應用對什麼感興趣並配置它們應該如何被處理。它用於構造由FilterSecurityInterceptor使用的FilterInvocationSecurityMetadataSource。例如,如果需要通過HTTPS訪問特定的URL,它還負責配置ChannelProcessingFilter。當針對傳入請求匹配指定模式時,匹配按聲明元素的順序完成。所以最具體的模式應該是第一位的,最普通的模式應該是最後一位。

修改後的配置:

<intercept-url pattern="/abc/**" access="permitAll"/> 
<intercept-url pattern="/**" access="hasRole('ROLE_USER')" /> 
0

當然,你可以忽略某些URL模式。如果您使用的是Java的配置,你把下一個方法在安全配置類:

@Override 
    public void configure(WebSecurity web) throws Exception { 
     web.ignoring().antMatchers("/url/to/ignore/**");  
    } 

XML模擬:

<http pattern="/url/to/ignore/**" security="none"/>