WebLogic: невозможно получить роли для пользователя в EJB3 - PullRequest
3 голосов
/ 11 марта 2011

В моем EJB 3 я пытаюсь проверить роли руководителя, но он всегда возвращает false.

В моей консоли WebLogic 11g я определил в «MyDomain» -> «Области безопасности» -> «myrealm» -> «Пользователи и группы» 3 пользователя (user1, user2 & user3) и 2 группы (role1 & role2); у role1 есть user1 & user3, у role2 есть user2 & user3.
Мой EJB не имеет дополнительной безопасности (без @RolesAllowed и т. Д. Или записей в DD).

Когда я проверяю в моем EJB наличие ролей с sessionContext.isCallerInRole(role);, всегда возвращает false. Если я позвоню sessionContext.getCallerPrincipal().getName();, я получу правильный идентификатор пользователя.

Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 08 ноября 2014

Если ваш sessionContext введен, указание типа аутентификации как контейнера в аннотации @Resource сработало для меня. E.g.:

@Resource(authenticationType=AuthenticationType.CONTAINER)
private SessionContext sessionCtx;
0 голосов
/ 14 марта 2011

Вы объявили свою роль, используя @DeclareRoles или?Если я правильно прочитал спецификацию, то раздел 17.2.5.3, похоже, требует, чтобы вы объявляли любые имена ролей, которые вы используете при вызове isCallerInRole () через один или другой механизм.

...