我isCallerInRole对SessionContext. 该应用程序在 Glassfish 2.1 上运行并使用 JDK6。
在下面的课程中,我将公开两种确定当前用户是否具有特定角色的方法。特别是,我将检查两个特定角色,比如Role1和Role2。CheckRemote是 的接口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");
}
}
也许我错过了一些东西。任何想法?