我必须将方法的访问权限仅限于具有特定角色的用户。 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()
。
是不是?如果用户没有&#34; tt&#34;我希望方法saveUserChanges()
不再执行作用。
答案 0 :(得分:0)
您是否注释了saveUserChanges()
完成后失败的其他功能?您使用UserController
注释了@Logged
,因此至少登录的用户可以执行您的所有功能,也许您的@RolesAllowed
注释根本不起作用。