是否可以将Micronaut OAuth2 callback-uri设置为绝对URL?

问题描述

我有一个使用OpenId / OAuth2 / JWT的Micronaut网络应用程序。在某些环境中,此设置确实可以很好地工作,但是,在其他环境中,在调用配置的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指定为一个绝对的uri,而不是像上面的有效复制一样将其附加到上面?

解决方法

好消息。这已在 micronaut-security 2.3.4 中修复 https://github.com/micronaut-projects/micronaut-security/pull/644

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...