有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) {

        ...
        ...
    }
}

问题是AccessDeniedExceptionSecurityExceptionHandler类正确地抛出和捕获,但是方法saveUserChanges()仍然被执行

是这样吗?如果用户没有“tt”角色,我希望不再执行方法saveUserChanges()


共 (1) 个答案

  1. # 1 楼答案

    您是否对saveUserChanges()完成后失败的其他函数进行了注释?您使用@LoggedUserController进行了注释,这样至少登录的人都可以执行您的所有功能,并且您的@RolesAllowed注释可能根本无法工作