Spring Security antMatcher表达式不适用于路径变量

Pra*_*lan 0 java regex configuration spring spring-security

我需要提供某些角色来访问以下格式的URL:

/connector/{programId}/order/{anything here}
Run Code Online (Sandbox Code Playgroud)

programId整数值在哪里,所以我尝试了以下操作,但它根本不起作用。

/connector/{programId}/order/{anything here}
Run Code Online (Sandbox Code Playgroud)

但是,当我使用它**而不是programId零件时,它运行良好。但是,如何使它与pathVariable(始终为整数)一起使用。

cha*_*luo 5

您应该使用RegexRequestMatcher而不是AntPathRequestMatcher

.regexMatchers("/connector/(\\d+)/order/.*").access("hasRole('CONNECTOR')")
Run Code Online (Sandbox Code Playgroud)