Wildfly Picketlink - запрос с использованием токена доступа вызывает исключение NullPointerException в SecurityFilter - PullRequest
0 голосов
/ 29 декабря 2018

Настройка защищенного REST-приложения Picketlink с использованием токенов доступа.

У меня есть метод настройки (по имени 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") - этодобавлен в поисках обхода (см. ниже).

У меня также есть контрольный пример Арквилиана, который

  1. Получает карту корневых ресурсов приложения.
  2. Пытаетсяabd защищенного ресурса получает отклонение.
  3. Вход в систему с конечной точкой /authenticate, которая завершается успешно, и возвращает маркер доступа.

Когда Arquillian пытается получить ранее защищенный ресурсв (1) я получаю загадочный NullPointerException внутри Picketlink.

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)

В строке 260 из org.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-безопасности?

Все тесты работали нормально, прежде чем я добавил класс выше.

Строка в настройке, которая устанавливает URL-адрес перенаправления, была добавлена ​​послеошибка возникает, когда Picketlink пытается получить URL-адрес перенаправления конфигурации пути.

Я должен добавить:

  • Wildfly 12.0.0.Final с picketlink-impl-2.5.5.SP9.jar
  • Java (TM) SE Runtime Environment (сборка 1.8.0_05-b13

Есть идеи?

Cheers Mats

...