[英]@RolesAllowed doesn't work properly
我必须将方法的访问权限仅限制为具有特定角色的用户。 IdentityManager的构建正确。
我有这个控制器类。
@Named
@RequestScoped
@LoggedIn
public class UserController{
@RolesAllowed({"tt"})
public String saveUserChanges() {
...
...
}
}
此类处理saveUserChanges
上面的方法抛出的AccessDeniedException
。
@ExceptionHandler
public class SecurityExceptionHandler {
public void onAccessDeniedException(@BeforeHandles ExceptionEvent<AccessDeniedException> event) {
...
...
}
}
问题在于, AccessDeniedException
已由SecurityExceptionHandler
类正确引发并saveUserChanges()
,但是无论如何都执行方法saveUserChanges()
。
这样对吗? 我希望如果用户不具有“ tt”角色,则不再执行方法saveUserChanges()
。
您是否注释了saveUserChanges()
完成后失败的其他功能? 您用@Logged
注释了UserController
,这样至少登录的人可以执行您的所有功能,并且@RolesAllowed
注释可能根本不起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.