java@RolesAllowed无法正常工作
我必须将方法的访问权限仅限于具有特定角色的用户。 IdentityManager已正确构建
我有一个控制器类
@Named
@RequestScoped
@LoggedIn
public class UserController{
@RolesAllowed({"tt"})
public String saveUserChanges() {
...
...
}
}
这个类处理上面的方法抛出的AccessDeniedException
@ExceptionHandler
public class SecurityExceptionHandler {
public void onAccessDeniedException(@BeforeHandles ExceptionEvent<AccessDeniedException> event) {
...
...
}
}
问题是AccessDeniedException
被SecurityExceptionHandler
类正确地抛出和捕获,但是方法saveUserChanges()
仍然被执行
是这样吗?如果用户没有“tt”角色,我希望不再执行方法saveUserChanges()
# 1 楼答案
您是否对
saveUserChanges()
完成后失败的其他函数进行了注释?您使用@Logged
对UserController
进行了注释,这样至少登录的人都可以执行您的所有功能,并且您的@RolesAllowed
注释可能根本无法工作