是否可以将Micronaut OAuth2回调uri设置为绝对URL



我有一个使用OpenId/OAuth2/JWT的Micronaut web应用程序。在某些环境中,通过这种设置,一切都能很好地工作,然而,在其他环境中,auth在调用配置的回调uri的步骤中失败。出于某种原因,在这些环境中,生成的URL是"URL";http";而不是";https";。这导致调用失败,因为我的应用程序只能通过https访问。

我不知道它为什么首先尝试使用http,但是,如果我能够将回调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

例如,在这个配置中,如果我将回调uri环境变量(OAUTH_callback_uri(设置为/OAUTH/recallback/azure,那么似乎使用的完整URL是http://xxxxx/oauth/callback/azure.但是,如果我使用环境变量的完整URL,例如。https://xxxxx/oauth/callback/azure则它使用的完整URL仍然附加该URL,而不是将其用作绝对URL,即。http://xxxxx/https://xxxxx/oauth/callback/azure.

是否可以将这个uri指定为一个绝对的uri,而不让它像上面那样附加它,从而有效地复制它?

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

最新更新