我必须将方法的访问权限仅限于具有特定角色的用户。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”角色,我希望不再执行该方法。