我在 Micronaut 应用程序中使用 swagger open API 3,授权 + PKCE 流程如下
@SecurityScheme(name = "Open Id Connect",
type = SecuritySchemeType.OAUTH2,
scheme = "bearer",
bearerFormat = "jwt",
flows = @OAuthFlows(
authorizationCode = @OAuthFlow(
authorizationUrl = "https://dev-6271510.okta.com/oauth2/default/v1/authorize",
tokenUrl = "https://dev-6271510.okta.com/oauth2/default/v1/token",
refreshUrl = "",
extensions ={@Extension(name = "client_id",properties = {@ExtensionProperty(name = "client_id", value = "ssssss")})},
scopes = {@OAuthScope(name = "openid", description= "Open Id scope"),
@OAuthScope(name = "profile", description= "Name scope"),
@OAuthScope(name = "email" , description= "Email scope")}
))
)
client_id 和 client_secret 没有映射,我不知道如何映射,目前我正在手动放置。
当 Open Id 重定向到身份提供者时,我能够执行成功的身份验证。
现在,当身份提供者重定向回 micronaut swagger UI 时,重定向 URIhttp://localhost:8084/oauth2-redirect.html
在 Micronaut Swagger 中找不到,我无法调用任何端点,因为它不包含access_token
我认为 micronaut 招摇应该有一个 URI https://localhost:8084/swagger/oauth2-redirect.html
,身份提供者应该重定向到这个 URL。