3

在我的 EJB 3 中,我尝试测试主体的角色,但它总是返回false

在我的 WebLogic 11g 控制台中,我在“MyDomain”->“Security Realms”->“myrealm”->“Users and Groups”下定义了 3 个用户(user1、user2 和 user3)和 2 个组(role1 和 role2);角色 1 有用户 1 和用户 3,角色 2 有用户 2 和用户 3。
我的 EJB 没有进一步定义安全性(没有@RolesAllowed等或 DD 中的条目)。

当我在我的 EJB 中测试角色的存在时,sessionContext.isCallerInRole(role);总是返回false。如果我打电话sessionContext.getCallerPrincipal().getName();,我会得到正确的用户 ID。

我究竟做错了什么?

4

2 回答 2

0

如果您被注入,则在注释sessionContext中将身份验证类型指定为容器对我有用。@Resource例如:

@Resource(authenticationType=AuthenticationType.CONTAINER)
private SessionContext sessionCtx;
于 2014-11-07T21:00:30.313 回答
0

您是否使用 @DeclareRoles 或 声明了您的角色?如果我正确阅读了规范,第 17.2.5.3 节似乎要求您必须声明您在通过一种或另一种机制调用 isCallerInRole() 时使用的任何角色名称。

于 2011-03-14T20:49:39.650 回答