如何在.antmatchers.access()中使用常量

时间:2015-05-14 12:19:14

标签: spring spring-security

我想在AuthoritiesConstants.java

中使用.antmatchers.access():中的一些常量

.antMatchers("/first/**").access("hasAuthority('ROLE_ALL') and hasAuthority('ROLE_ME')")

它有效,但我想使用常量ALL:

public static final String ALL = "ROLE_ALL";

我试过了:

.antMatchers("/first/**").access("hasAuthority('AuthoritiesConstants.ALL')");

但这不起作用。

请帮忙

1 个答案:

答案 0 :(得分:1)

这不起作用,因为它实际上没有引用常量。它假定'AuthoritiesConstants.ALL'只是一个字符串文字并按此计算。

.antMatchers("/first/**").access("hasAuthority('AuthoritiesConstants.ALL')");

您可以尝试使用以下内容:

.antMatchers("/first/**").hasAuthority(AuthoritiesConstants.ALL);

或者,如果需要在访问表达式中引用常量,可以使用以下语法:access("hasAuthority(T(com.example.AuthoritiesConstants).ALL) and ..."),其中com.example.是包含AuthoritiesConstants类的包。