Перенаправление Micronaut Swagger не работает с OAuth 2 с кодом авторизации PKCE

#java #swagger-ui #micronaut #micronaut-client #micronaut-rest

#java #swagger-пользовательский интерфейс #micronaut #micronaut-клиент #micronaut-rest

Вопрос:

Я использую swagger open API 3 в приложении Micronaut с потоком авторизации 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 не сопоставлены, и я не знаю, как я могу сопоставить, в настоящее время я помещаю его вручную.

Когда открытый идентификатор перенаправляется поставщику удостоверений, я могу выполнить успешную аутентификацию.

Теперь, когда поставщик удостоверений перенаправляет обратно в пользовательский интерфейс micronaut swagger, URI перенаправления http://localhost:8084/oauth2-redirect.html не может быть найден в Micronaut Swagger, и я не могу вызвать какую-либо конечную точку, потому что она не содержит access_token

Я думаю, что у micronaut swagger должен быть URI https://localhost:8084/swagger/oauth2-redirect.html , и поставщик удостоверений должен перенаправлять на этот URL.

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

1. Вам необходимо настроить пользовательский интерфейс Swagger с usePkceWithAuthorizationCodeGrant = true .

2. @Helen Спасибо за информацию, но я не знаю, как установить ее с помощью Micronaut. Я не нашел никаких настроек в документации Micronaut.

3. Если у Micronaut нет способа изменить конфигурации пользовательского интерфейса Swagger, возможным решением может быть размещение ресурсов Swagger UI dist вручную.