Возможно ли установить Micronaut OAuth2 callback-uri в качестве абсолютного URL?

#oauth-2.0 #jwt #openid-connect #micronaut #callbackurl

#oauth-2.0 #jwt #OpenID-connect #micronaut #callbackurl

Вопрос:

У меня есть веб-приложение Micronaut, которое использует OpenID / OAuth2 / JWT. В некоторых средах все работает очень хорошо с этой настройкой, однако в других средах происходит сбой аутентификации на этапе, на котором вызывается настроенный callback-uri. По какой-то причине в этих средах генерируется URL-адрес «http» вместо «https». Это приводит к сбою вызова, поскольку мое приложение доступно только через https.

Я понятия не имею, почему он пытается использовать http в первую очередь, однако, если бы я смог указать callback-uri в качестве абсолютного / полного URL, тогда я, вероятно, смог бы обойти эту аномалию в этих средах.

Пример конфигурации yml, которую я использую:

   application:
    name: xxxxx
  security:
    authentication: idtoken
    oauth2:
      enabled: true
      clients:
        azure:
          client-id: ${OAUTH_CLIENT_ID}
          client-secret: ${OAUTH_CLIENT_SECRET}
          openid:
            issuer: https://login.microsoftonline.com/xxx
      callback-uri: ${OAUTH_CALLBACK_URI}
    redirect:
      login-success: ${LOGIN_SUCCESS_URL}
      logout: '/logout-handler/logout-success'
    endpoints:
      logout:
        get-allowed: true
    token:
      jwt:
        cookie:
          cookie-same-site: none
          cookie-secure: true
  

В этой конфигурации, если я установлю переменную среды callback-uri (OAUTH_CALLBACK_URI) в /oauth / callback / azure, например, тогда полный URL, который, по-видимому, используется, будет http://xxxxx/oauth/callback/azure . Однако, если я использую полный URL для переменной среды, например https://xxxxx/oauth/callback/azure тогда полный URL, который он использует, по-прежнему добавляет это, в отличие от использования его в качестве абсолютного URL, т. Е. http://xxxxx/https://xxxxx/oauth/callback/azure .

Возможно ли указать этот uri как абсолютный и не добавлять его, как указано выше, эффективно дублируя его?

Комментарии:

1. Я задавал аналогичный вопрос в Micronaut gitter: gitter.im/micronautfw/questions?at=5fc4e66c223b350d80e5315e . Получил ответ от Kleeh: gitter.im/micronautfw/questions?at=5fc4ebd8afc2922cf2ca0bc0 . Тем не менее, я до сих пор не нашел ни одного решения.

Ответ №1:

Хорошие новости. Это было исправлено в micronaut-security 2.3.4https://github.com/micronaut-projects/micronaut-security/pull/644