SpringDo c Oauth2 Требуется неявный параметр nonce потока, и аутентификация не выполняется - PullRequest
0 голосов
/ 07 мая 2020

Я могу включить кнопку авторизации, но когда я нажимаю на кнопку авторизации, для неявного потока oauth2 он жалуется, что параметр nonce отсутствует.

The 'nonce' parameter is required for authorize requests with either the 'id_token' or 'token' response types

Это код, который я использую для создания неявного потока

new OpenAPI()
    .addSecurityItem(new SecurityRequirement().addList(securitySchemeName))
    .components(new Components()
        .addSecuritySchemes(securitySchemeName,
            new SecurityScheme()
                .name(securitySchemeName)
                .type(SecurityScheme.Type.OAUTH2)
                .description("This API uses OAuth 2 with the implicit grant flow.")
                .flows(new OAuthFlows()
                          .implicit(new OAuthFlow()
                              .authorizationUrl(authorizeUri)
                              .scopes(new Scopes()
                                .addString("read", "read")))

В Springfox для добавления параметра nonce вы создаете bean-компонент для SecurityConfiguration и используете метод additionalQueryStringsParams ().

SecurityConfiguration#additionalQueryStringParams()

где вы бы добавили nonce как ключ и случайная строка в паре значений. Я пробовал использовать расширения в OAuthFlows и SecurityScheme, но, похоже, он все еще не работает.

Я не уверен, что мне не хватает, любая помощь приветствуется.

1 Ответ

2 голосов
/ 08 мая 2020

Хорошо, я понял, нет функции для добавления дополнительных параметров запроса. Вам просто нужно самостоятельно жестко закодировать его в строку, поэтому добавьте его в URL-адрес.

.authorizaitonUrl(authroizeUri + "?nonce=\"asdf\"")
...