Liberty Profile 8.5.5 Ошибка WebAppSecurityCollaboratorImpl.isUserInRole

У меня проблема с использованием Liberty Profile 8.5.5 с LDAP. У меня есть EAR с application.xml, правильно настроенный для безопасности. в ухо у меня есть веб-проект с правильно настроенным web.xml. Аутентификация при входе проходит хорошо (request.getRemoteUser() дает правильный результат), но в следующем действии, когда я использую response.isUserInRoles, мне возвращается это исключение:

[FATAL] [isUserInRole - WebAppSecurityCollaboratorImpl.java:327] Исключение в методе ...
Тип исключения: class java.lang.NullPointerException Msg: null
java.lang.NullPointerException

Я действительно не понимаю, как это могло произойти... Если у кого-то есть решение, обходной путь, исправление, скажите, пожалуйста.


person Roberto Bottino    schedule 27.08.2013    source источник
comment
Привет, Просто обратите внимание, что этот вопрос был опубликован на форуме WASdev, где было предложено поднять PMR против IBM. Кажется, это было сделано.   -  person Alasdair    schedule 28.08.2013


Ответы (1)


Сегодня столкнулся с точно такой же проблемой, которую вы здесь описываете. Я использую WebSphere Liberty Profile 8.5.5.1 с Eclipse Kepler. В моем проекте используется структура Wicket, поэтому в моем файле web.xml у меня был фильтр Wicket, например:

<filter>
    <filter-name>wicket.filter</filter-name>
    <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
    <init-param>
        <param-name>applicationClassName</param-name>
        <param-value>my.wicket.Application</param-value>
    </init-param>
    <init-param>
        <param-name>configuration</param-name>
        <param-value>deployment</param-value>
    </init-param>
</servlet>

<filter-mapping>
    <filter-name>wicket.filter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

Во время отладки я обнаружил, что внутри функции isUserInRole WebSphere, похоже, ищет сервлет. Очевидно, я не использовал никаких сервлетов в своем приложении, только фильтр Wicket. Так что мой обходной путь состоял в том, чтобы использовать сервлет Wicket вместо фильтра, и это, похоже, работает нормально.

Короче говоря: похоже, что isUserInRole не работает в профиле WebSphere Liberty, если в вашем приложении нет сервлетов.

person dricus    schedule 06.12.2013