我正在使用Sping Boot 和WebSecurityConfigurerAdapter
来配置安全性。
用于配置忽略的安全antMatches的方法如下所示:
@Override
public void configure(final WebSecurity web) {
web
.ignoring()
.antMatchers("/items")
.antMatchers("/items/{itemId}")
其中{itemId}
采用UUID格式
问题在于,使用此配置时,端点(如/items/report
、/items/images
)也会打开,但它们不应打开。
有没有办法将忽略规则只应用于带有路径变量的uri?
4条答案
按热度按时间sycxhyv71#
您可以尝试这样做,d表示itemId
如果您要给予许可证全部
yr9zkbsy2#
根据
AntPathMatcher
的文档,您需要按照文档使用regex指定路径变量:{spring:[a-z]+}将正则表达式[a-z]+匹配为名为“spring”的路径变量。
在您的情况下,它将是:
ny6fqffe3#
对于比Ant模式更复杂的匹配,请在控制器上使用基于方法的安全性或(更好的)服务层方法。
vpfxa7rd4#
您可以在控制器中的该url的处理程序方法上使用@preAuthorize注解,或者 checkout 此链接https://docs.spring.io/spring-security/site/docs/4.2.x/reference/html/el-access.html