Swagger/OpenAPI 多重安全要求和副作用?

Pet*_*ens 5 swagger openapi

我正在为 Swagger/OpenAPI 实现一个代码生成器。但是,我在实现安全要求时遇到了问题。这些要求被定义为对象列表。列表成员是替代(或),对象成员是与。例如:

\n\n
 [ { a:[], b:{} }, { c:{}, d:{} } ]\n
Run Code Online (Sandbox Code Playgroud)\n\n

这应该导致 (a && b) || ( 光盘)

\n\n

然而,在实现这一点时,我遇到了实际安全要求有副作用的问题:

\n\n
    \n
  • OAuth2 - 如果失败则必须重定向
  • \n
  • Basic \xe2\x80\x93 必须发送 HTTP 401 未经授权状态和 WWW-Authenticate 标头
  • \n
  • ApiKey \xe2\x80\x93 随便
  • \n
\n\n

然而,由于有一个or你不能允许第一次失败来设置这些副作用。看来您需要首先尝试所有组合,然后返回到第一个并允许它设置标头/结果代码?

\n\n

看看http://editor.swagger.io/上的生成器,我发现大多数生成器似乎都忽略了安全性,而 Java 生成器似乎是and合并列表。在我的例子中我看到a && b && c && d

\n\n

所以我的问题是:

\n\n
    \n
  • 是否有一个生成器可以正确实现 OpenAPI 安全性?
  • \n
  • 如何处理这些副作用?
  • \n
\n