Swagger Codegen Авторизация для Python-Flask - PullRequest
0 голосов
/ 03 июля 2018

Я собрал документацию swagger, сгенерировал клиент swagger (python-flask с поддержкой python2).

Я собрал свой код, протестировал, доволен тем, что у меня есть. Теперь я хочу защитить свои конечные точки API с помощью https и Basic Auth.

Это v2 спецификации Open Api (OAS), поэтому я настраиваю его следующим образом (описано https://swagger.io/docs/specification/2-0/authentication/basic-authentication/)

swagger: "2.0"
securityDefinitions:
  basicAuth:
    type: "basic"

Если я укажу, что у моей конечной точки есть индивидуальные настройки безопасности, или я укажу это на корневом уровне в YAML для всех конечных точек, это не имеет значения.

      security:
      - basicAuth: []

Я беру свой YAML, экспортирую в JSON, затем запускаю следующее, чтобы перестроить код swagger_server:

java -jar swagger-codegen-cli-2.3.1.jar generate -l python-flask - 
DsupportPython2=true -i swagger.json -a "Authorization: Basic 
Base64encodedstring"

Я ожидаю, что код контроллера или модели подтвердит, что был пройден базовый заголовок аутентификации, который соответствует аутентификации, указанной в коде генерации, но я нигде не вижу ссылок. Не уверен, что я только что прочитал это неправильно или есть проблема с тем, как я это делаю, или с некоторыми опциями, которые я использую?

1 Ответ

0 голосов
/ 04 июля 2018

Сервер Python, сгенерированный Swagger Codegen, использует Connexion , а Connexion поддерживает только OAuth 2 из коробки. Как объяснено в связанном выпуске,

пользователи всегда могут добавлять собственные механизмы, декорируя свои функции-обработчики (см. https://github.com/zalando/connexion/blob/master/examples/basicauth/app.py)

...