Liberty Profile 8.5.5 WebAppSecurityCollaboratorImpl.isUserInRole错误

时间:2013-08-27 10:11:23

标签: java security httprequest httpresponse websphere-liberty

使用Liberty Profile 8.5.5和LDAP时遇到问题。 我为安全性正确设置了 EAR with application.xml 。 我正确地设置了 webproject with web.xml 。 登录验证顺利进行(request.getRemoteUser()给出了正确的结果)但在下一个操作中,当我使用response.isUserInRoles时返回此异常:

  

[致命] [isUserInRole - WebAppSecurityCollaboratorImpl.java:327]方法中的异常...
  异常类型:类java.lang.NullPointerException消息:null
  显示java.lang.NullPointerException

我真的不明白这是怎么发生的...... 如果有人有解决方案,解决方法,修复,请告诉我。

1 个答案:

答案 0 :(得分:0)

今天,我遇到了你在这里描述的完全相同的问题。我正在将Eclipse 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似乎正在寻找一个servlet。显然,我没有在我的应用程序中使用任何servlet,只是Wicket过滤器。所以我的解决方法是使用Wicket servlet而不是过滤器,这似乎工作正常。

长话短说:当您的应用程序没有任何servlet时,似乎isUserInRole在WebSphere Liberty Profile上不起作用。