2013-08-27 3 views
0

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

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

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

+1

Привет, Просто отметьте, что этот вопрос был отправлен на форум WASdev, где было предложено повысить PMR против IBM. Кажется, это было сделано. – Alasdair

ответ

0

Сегодня я столкнулся с той же проблемой, которую вы описываете здесь. Я использую 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 вместо фильтра и, похоже, он работает нормально.

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