我必须将方法的访问权限仅限于具有特定角色的用户。IdentityManager 已正确构建。
我有这个控制器类。
@Named
@RequestScoped
@LoggedIn
public class UserController{
@RolesAllowed({"tt"})
public String saveUserChanges() {
...
...
}
}
并且这个类处理AccessDeniedException
上面方法抛出的saveUserChanges
。
@ExceptionHandler
public class SecurityExceptionHandler {
public void onAccessDeniedException(@BeforeHandles ExceptionEvent<AccessDeniedException> event) {
...
...
}
}
问题是类AccessDeniedException
正确地抛出和捕获了SecurityExceptionHandler
,但saveUserChanges()
无论如何都会执行该方法。
这样对吗?saveUserChanges()
如果用户没有“tt”角色,我希望不再执行该方法。