2015-10-13 3 views
1

Где установить пользовательский контекст, который использует Websphere, когда он вызывает @Startup EJB?Пользовательский контекст для @Startup EJB на websphere

У меня есть приложение Java EE с EJB запуска, и я знаю, что он устанавливает пользователя при вызове EJB, так как вызов завершился неудачно из-за отсутствия ролей. Однако я не мог найти, где установить пользователя.

+1

Можете ли вы показать трассировку стека неудачи? Вызов '@ PostConstruct' EJB' @ Startup' не должен требовать авторизации. Однако, если '@ PostConstruct' делает другой вызов, который требует авторизации, это не сработает; в этом случае вам необходимо либо программно установить контекст (используя «WSLogin», либо его эквивалент) или использовать «@ RunAs» для EJB и настроить пользователя «run-as» (обратите внимание: это повлияет на все вызовы, которые делает EJB, а не только те из '@ PostConstruct'). –

+0

Этот вопрос не о неудаче (я знаю о '@ RunAs', хотя он не работает так, как я ожидал, но это другой вопрос). Этот вопрос касается пользовательского контекста. Я знаю, что есть один, поскольку WAS дает имя пользователя в Exception. Я просто не могу понять, где его установить. Я знаю, что мне может не понадобиться устанавливать его, если '@ RunAs' работает как рекламируемый, но я все еще хочу знать :-) –

ответ

1

Спецификация EJB заявляет, что методы сеанса @PostConstruct вызываются в неопределенном контексте безопасности, а WebSphere не документирует конкретный контекст безопасности или разрешает его настройку. На практике однопользовательский сеансовый компонент @PostConstruct обычно вызывается с неавторизованным пользователем в качестве контекста безопасности. Если настройка определенного контекста безопасности важна, вы можете открыть WebSphere RFE, но я бы рекомендовал найти другое решение, чтобы избежать решения, зависящего от поставщика.

+0

Спасибо, это помогает. Я поставил вопрос о своих проблемах, чтобы заставить '@ RunAs' работать здесь: http://stackoverflow.com/questions/33118280/cant-get-runas-to-work-in-an-ejb, –