1

isCallerInRoleSessionContext. 该应用程序在 Glassfish 2.1 上运行并使用 JDK6。

在下面的课程中,我将公开两种确定当前用户是否具有特定角色的方法。特别是,我将检查两个特定角色,比如Role1Role2CheckRemote是 的接口CheckFacade

@Stateless
@DeclareRoles({"Role1", "Role2"})
public class CheckFacade implements CheckRemote {

    @Resource
    private SessionContext ctx;

    @Override
    public Boolean hasRole1() {
        return ctx.isCallerInRole("Role1");
    }

    @Override
    public Boolean hasRole2() {
        return ctx.isCallerInRole("Role2");
    }
}

当我打电话hasRole1()hasRole2()我总是得到false结果时,即使用户具有角色。

现在,如果我考虑以下仅关注一个角色的版本,那么一切正常,即我得到false或者true如果用户没有角色或有角色,分别。

@Stateless
@DeclareRoles("Role1")
public class CheckFacade implements CheckRemote {

    @Resource
    private SessionContext ctx;

    @Override
    public Boolean hasRole1() {
        return ctx.isCallerInRole("Role1");
    }

}

也许我错过了一些东西。任何想法?

4

0 回答 0