antMatchers获取路径列表

时间:2018-12-10 21:38:19

标签: spring spring-security

我有一个要提供给antMatchers()的路径列表。但是由于此列表是动态的,因此我无法提供逗号分隔的路径。我目前正在遍历该列表,并将eachPath添加到antMatcher()。在将antMatcher应用于路径列表的情况下,还有更好的方法吗?

当前代码段:

   http.authorizeRequests()
    .antMatchers("/signup","/about")
    .hasRole("ADMIN")
    .anyRequest().authenticated();

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

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

并且我想应用antMatchers像这样:

http.authorizeRequests()
        .antMatchers(pathList)
        .hasRole("ADMIN")
        .anyRequest().authenticated();

参考:https://spring.io/blog/2013/07/11/spring-security-java-config-preview-readability/ spring security http antMatcher with multiple paths

1 个答案:

答案 0 :(得分:1)

antMatchers接受字符串数组。

public C antMatchers(String... antPatterns) {
 ....
}

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

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