我使用的是spring security 4.0.2和spring webflow 2.4.2 在JSF页面中,使用ROLE_ANONYMOUS,我没有任何问题。
<sec:authorize ifAnyGranted="ROLE_ANONYMOUS">
...
</sec:authorize>
但是,登录后,这不起作用
<sec:authorize access="hasRole('ACESSO-BO2')">
...
</sec:authorize>
但这有效:
<sec:authorize access="isAuthenticated()">
...
</sec:authorize>
该视图知道它已经过身份验证,但它并不知道此用户的角色。
在我的控制器中,这显示了正确的权限:
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
List<GrantedAuthority> listaAuth = (List<GrantedAuthority>) auth.getAuthorities();
while (i < listaAuth.size()){
System.out.println(i+":"+listaAuth.get(i).getAuthority());
i++;
}
这是如何引起的?如何解决?