我正在尝试按照,但它似乎并没有工作。春季安全可以保护整个网站,除了一些网址吗?
<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"/>