用于路径列表的 antMatchers

Nit*_*706 3 spring spring-security

我有一个路径列表,我想提供给antMatchers(). 但是由于这个列表是动态的,我不能提供逗号分隔的路径。我目前正在遍历列表并将 eachPath 添加到antMatcher(). 有没有更好的方法可以将 antMatcher 应用于路径列表?

当前代码片段:

   http.authorizeRequests()
    .antMatchers("/signup","/about")
    .hasRole("ADMIN")
    .anyRequest().authenticated();
Run Code Online (Sandbox Code Playgroud)

我有一个路径列表。例如:

List<String> pathList = Arrays.asList(new String[]{"/signup","/about"});
Run Code Online (Sandbox Code Playgroud)

我想应用 antMatchers 类似的东西:

http.authorizeRequests()
        .antMatchers(pathList)
        .hasRole("ADMIN")
        .anyRequest().authenticated();
Run Code Online (Sandbox Code Playgroud)

参考:https : //spring.io/blog/2013/07/11/spring-security-java-config-preview-readability/ spring security http antMatcher 多路径

cha*_*luo 5

antMatchers 接受字符串数组。

public C antMatchers(String... antPatterns) {
 ....
}
Run Code Online (Sandbox Code Playgroud)

您可以将列表转换为字符串数组,然后将其传递给antMatchers,

String[] pathArray = new String[]{"/signup","/about"};
http.authorizeRequests()
    .antMatchers(pathArray)
...
Run Code Online (Sandbox Code Playgroud)