【问题标题】:Swagger Codegen Authorisation for Python-FlaskPython-Flask 的 Swagger Codegen 授权
【发布时间】:2018-12-12 00:53:01
【问题描述】:

我已经构建了一个 swagger 文档,生成了 swagger 客户端(支持 python2 的 python-flask)。

我已经构建了我的代码,经过测试,对我所拥有的感到满意。现在我想使用 https 和 Basic Auth 来保护我的 API 端点。

这是 Open Api 规范 (OAS) 的 v2,所以我设置如下(描述为 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"

我期望控制器或模型代码验证是否已传递与生成代码中指定的授权匹配的基本授权标头,但我在任何地方都看不到任何引用。不确定我是否读错了,或者我的操作方式或我使用的某些选项是否存在问题?

【问题讨论】:

  • -a/--auth 参数是用于访问 Swagger JSON/YAML 文件的授权标头。这不是生成的服务器/客户端的身份验证。
  • 感谢@Helen,所以我必须自己验证身份验证是否通过?没关系,为这个基本问题道歉。

标签: python flask swagger openapi


【解决方案1】:

Swagger Codegen 生成的 Python 服务器使用开箱即用的 Connexion 和 Connexion only supports OAuth 2。如链接问题中所述,

用户总是可以通过装饰他们的处理函数来添加自定义机制(参见https://github.com/zalando/connexion/blob/master/examples/basicauth/app.py

【讨论】:

  • 感谢@helen,这很有帮助,我会考虑将其纳入我的解决方案中。
猜你喜欢
  • 2019-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-11
相关资源
最近更新 更多