Мне нужно получить доступ к принципалу клиентов (имя пользователя) внутри метода ejb. Я не хочу добавлять его в качестве параметра. Попробовал добавить их в объект контекста, например;Доступ к принципам клиентов внутри метода ejb
prop.add(Context.SECURITY_AUTHENTICATION,"user")
prop.add(Context.SECURITY_CREDENTIALS,"pass")
но пытающийся получить к ним доступ внутри метода; @Resource private SessionContext ctx;
public void someMethod() {
Principal principal = ctx.getCallerPrincipal();
//returns anonymous
все еще дает мне неприятного пользователя.
Работает на weblogic, любые указатели?
Благодаря
Стив, пожалуйста, объясните эту строку, я буду вам очень благодарен. Исправлено установкой имени пользователя/пароля в поиске InitialContext внутри PrivilegedAction' –
См. Пример 17-3 http://www.onjava.com /pub/a/onjava/excerpt/weblogic_chap17/index1.html?page=5. Есть интересный пункт, в котором говорится, что не предоставлять учетные данные пользователя. Некоторое время назад, но когда я протестировал, я не смог получить доступ к главному в EJB, явно не предоставив их в InitialContext. Таким образом, вы добавили бы что-то вроде строк, которые я прокомментировал выше, в примере 17-3. HTH –
Спасибо, я понял, это специфический код WebLogic. На самом деле я пытался получить доступ к EJB, работающему на Glassfish, из автономного приложения (из с в Eclipse). Мне удалось аутентифицировать клиента, но эта информация не распространяется на EJB. Он остается анонимным. В любом случае, спасибо вам большое. –