Как использовать Websphere PUMA SPI (PumaLocator) с портлетом ICEfaces? - PullRequest
0 голосов
/ 08 марта 2011

Симптомы:
PumaLocator невозможно использовать, каждый метод findXXX возвращает пустые результаты или выдает исключение, поскольку ничего не найдено.

Анализ:
Похоже, проблема связана с тем, что из-за специфической архитектуры ICEfaces метод GenericPortlet.doView вызывается только при первой загрузке портлета, а не для следующих (AJAX) обновлений страницы, например, в случаеназывается ActionListener.
Если я использую PumaLocator внутри метода doView, все работает нормально.

Я попробовал следующие попытки:

  • Получить PumaLocator в doView, поместить его в сессию и использовать позже - не сработало
  • Получите RenderRequest в doView, поместите его в сессию и используйте его позже, чтобы получить PumaLocator, передав этот запрос - не сработало

Я был бы очень рад получитьлюбые намеки.Спасибо!

1 Ответ

1 голос
/ 09 апреля 2011

PUMA проверяет авторизацию для результатов, используя информацию, найденную в контексте.Вы должны добавить роли безопасности JavaEE в дескрипторе развертывания для сервлетов AJAX, используемых ICEFaces.Как правило, если request.getRemoteUser () и request.getUserPrincipal () возвращают что-то, кроме нуля, вы знаете, что PUMA будет работать.В противном случае он будет НЕ работать, и это является предполагаемым поведением.

В качестве альтернативы вы можете попытаться отключить проверки безопасности PUMA следующим образом.

...