Wildfly Picketlink-使用访问令牌的请求导致SecurityFilter中的NullPointerException

时间:2018-12-29 14:51:59

标签: java java-ee wildfly access-token picketlink

使用访问令牌设置Picketlink安全的REST应用程序。

我有一个设置方法(从jboss-picketlink-quickstarts昵称):

public class HttpSecurityConfiguration {

    public void onInit(@Observes SecurityConfigurationEvent event) {
        SecurityConfigurationBuilder builder = event.getBuilder();

        builder.identity()
                .stateless()
                .http()
                .forPath("/account/*")
                .redirectTo("/authenticate")
                .authenticateWith()
                .token()
                .cors()
                .allowAll();
    }

}

添加.redirectTo("/authenticate")是为了寻找 规避(请参阅下文)。

我还有一个Arquillian测试用例

  1. 获取应用的根资源图。
  2. 尝试受保护的资源abd被拒绝。
  3. /authenticate的内部登录身份成功登录,然后 返回访问令牌。

当Arquillian然后尝试获取以前受保护的资源时, (1)我在Picketlink中发现了一个神秘的NullPointerException

14:57:48,653 ERROR [io.undertow.request] (default task-1) UT005023: Exception handling request to /test/api/account: java.lang.NullPointerException
    at org.picketlink.http.internal.SecurityFilter.handleException(SecurityFilter.java:260)
    at org.picketlink.http.internal.SecurityFilter.doFilter(SecurityFilter.java:198)
    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)

在第260org.picketlink.http.internal.SecurityFilter.handleException我发现:

private void handleException(PathConfiguration pathConfiguration, HttpServletRequest request, HttpServletResponse response,
        Throwable exception) throws IOException {
    String redirectUrl = pathConfiguration.getRedirectUrl(exception.getClass()); // <- this is line 260
    Throwable cause = exception.getCause();

这告诉我pathConfiguration变量是null

pathConfiguration变量是什么?何时设置?在那儿 我在设置http安全性时缺少什么?

在我添加上述类之前,所有测试都运行良好。

自设置以来,添加了设置重定向网址的设置行 Picketlink尝试获取路径的重定向URL时发生错误 配置。

我应该添加:

  • Wildfly 12.0.0.Final with picketlink-impl-2.5.5.SP9.jar
  • Java(TM)SE运行时环境(内部版本1.8.0_05-b13

有什么想法吗?

欢呼 垫子

0 个答案:

没有答案