Lagom: нет значения для параметра заголовка access_token

У меня проблема, когда я пытаюсь отправить параметр «access_token» в заголовке Lagom HTTP RestCall:

 @Override
public HeaderServiceCall<NotUsed, GetUserInfoWrapperResponse> getUserInfo() {
    return (request, requestBody) -> {
        UUID userId;
        try {
            userId = UUID.fromString(request.getHeader("access_token").get());
            System.out.println("user id = " + userId);
            return userEntityRef(userId).ask(new GetUserInfoCommand()).thenApply(reply -> Pair.create(ResponseHeader.OK, reply.userInfo.get()));
        } catch (Exception e) {
            throw new NotFound("User with access_token ");
        }
    };
}

Я всегда получаю NotFoundException, потому что в заголовке отсутствует «access_token».

Но когда я изменил «access_token» на «access-token», он работает.

Когда я провел некоторое исследование, я понял, что мне нужно воспроизвести CrosFilter в моем application.conf:

play.http.filters = "com.test.user.impl.AccessFilter"
play.filters.cors {
      // review the values of all these settings to fulfill your needs. These values are not meant for production.
      pathPrefixes = ["/cms"]
      allowedOrigins = null
      allowedHttpMethods = null
      allowedHttpHeaders = ["Origin", "X-Requested-With", "Content-Type", "Accept", "Referer", "User-Agent", "access_token", "cache-control"]
      # The exposed headers
      exposedHeaders = ["Origin", "X-Requested-With", "Content-Type", "Accept", "Referer", "User-Agent", "access_token", "cache-control"]
      supportsCredentials = false
      preflightMaxAge = 6 hour
}

Но даже при этом параметр заголовка «access_token» всегда отсутствует.

Любая помощь? пожалуйста!


person Imen    schedule 20.02.2018    source источник


Ответы (1)


Это потому, что вы использовали подчеркивание внутри имени; это не запрещено, но необычно, и некоторые серверы, такие как Nginx, удаляют их, если только вы явно определяете их в файле конфигурации.

Вы также можете посмотреть на этот вопрос: Почему символы подчеркивания запрещены в заголовке HTTP имена.

person o-0    schedule 21.02.2018
comment
Да, я вижу, спасибо :) - person Imen; 21.02.2018
comment
@Imen Не беспокойся, рад, что смог помочь. - person o-0; 21.02.2018