@RolesAllowed无法正常工作

时间:2014-08-19 13:20:21

标签: java jboss7.x cdi deltaspike picketlink

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

1 个答案:

答案 0 :(得分:0)

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