【问题标题】:@RolesAllowed doesn't work properly@RolesAllowed 无法正常工作
【发布时间】:2014-08-19 13:20:20
【问题描述】:

我必须将方法的访问权限仅限于具有特定角色的用户。 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) {

        ...
        ...
    }
}

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

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

【问题讨论】:

    标签: java jboss7.x cdi deltaspike picketlink


    【解决方案1】:

    您是否注释了其他在saveUserChanges() 完成后失败的函数?你用@Logged 注释了你的UserController,所以至少登录的人都可以执行你的所有功能,也许你的@RolesAllowed 注释根本不起作用。

    【讨论】:

      猜你喜欢
      • 2016-12-01
      • 1970-01-01
      • 2016-09-01
      • 2012-07-11
      • 2018-04-08
      • 2017-04-20
      • 2018-10-02
      • 2016-09-04
      • 2010-10-06
      相关资源
      最近更新 更多