我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");
}
}
也许我错过了一些东西。任何想法?