Swagger - 将多个安全参数添加到同一架构定义中

2024-05-18

Aim

在 API 中发出的每个请求中包含多个安全标头

Problem

我正在尝试将多个标头添加到我的 Swagger YAML 安全定义中。 我已经通过 API 进行了搜索,但运气不佳 但我发现在进行“尝试此操作”时,我需要选择一个。而不是两者都可以使用。这是正确的还是我做错了什么?

Snippet

securityDefinitions:
  userEmail:
    type: apiKey
    name: User Email
    in: header
  clientId:
    type: apiKey
    name: Client Id
    in: header

security: [ { userEmail: [], clientId: []  } ]

选择?

如果我试图做到这一点是不可能的...... 是否可以将这些参数指定为 swagger 文档中所有其余路径的默认参数?

这周我是 Swagger 的新手,任何人都发现其他一切都没有问题......但我找不到任何好的例子。

如果可以提供任何指导,那将非常有帮助 非常感谢


Your SecurityDefintions对象看起来不错。当心

security: [ { userEmail: [], clientId: []  } ]

意味着 API 客户端必须使用userEmail身份验证与clientId一次认证!你的意思可能是:

security: [ { userEmail: [] }, { clientId: []  } ]

这意味着 API 客户端必须使用userEmail身份验证或clientId验证。

为了避免一遍又一遍地重复这个定义,你可以使用全局security适用于所有没有自己的路径的属性security object:

security: [ { userEmail: [] }, { clientId: []  } ]
paths:
  "/foo":
    get:
    post:

或者为了明确性或多个共同值而使用参考:

paths:
  "/foo":
    get:
      security:
        "$ref": "#/definitions/lowSecurity"
    post:
      security:
        "$ref": "#/definitions/highSecurity"
definitions:
  lowSecurity:  [ { foo: [] }, { bar: []  } ]
  highSecurity: [ { foo: [] } ]

参考

Swagger2 规范如下操作对象 http://swagger.io/specification/#operationObject:

security: [安全需求对象 http://swagger.io/specification/#securityRequirementObject]

对此操作应用哪些安全方案的声明。值列表描述了可以使用的替代安全方案(即,安全要求之间存在逻辑“或”)。此定义覆盖任何声明的顶级安全性。要删除顶级安全声明,可以使用空数组。

The 安全需求对象 http://swagger.io/specification/#securityRequirementObject是这样描述的:

列出执行此操作所需的安全方案。该对象可以在其中声明多个安全方案,这些方案都是必需的(即方案之间存在逻辑 AND)。

每个属性使用的名称必须对应于安全定义中声明的安全方案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Swagger - 将多个安全参数添加到同一架构定义中 的相关文章

随机推荐

  • 如何在 shell 脚本中操作 $PATH 元素?

    有没有一种惯用的方法从类似 PATH 的 shell 变量中删除元素 这就是我想要的 PATH home joe bin usr local bin usr bin bin path to app bin and remove or rep
  • 如何从 Visual Studio 2012 中的 resharper 测试会话窗口导航到功能文件?

    对于验收测试 我在 Visual Studio 2012 中使用 TeckTalk SpecFlow 当我运行所有 Specflow 场景时 打开 resharper 单元测试会话窗口 我可以看到所有测试结果 就像下面的屏幕截图一样 问题是
  • 如何转义 gettext 字符串中的“%”字符?

    I use gettext http www gnu org software gettext 翻译我的用户界面 我想写一个符号 作为字符串中 UI 标题的一部分 但由于它具有特殊含义 因此无法按预期工作 如何转义百分号 Use 逃离
  • 如何破解虚拟表?

    我想知道如何更改地址Test它在虚拟表中HackedVTable void HackedVtable cout lt lt Hacked V Table lt lt endl class Base public virtual Test c
  • 将第 N 行上的 NA 行插入 data.frames 列表,其中 N 来自列表

    经过几个小时后 我发现自己无法解决以下问题 我有一个数据框列表 我想分别向每个 DF 插入 而不是替换 一行或多行 NA 始终至少一行 要插入的 NA 数量存储在单独的列表中 为了说明这一点 我有以下两个列表 list of datafra
  • 可从 Angular2 中的

    使用 Angular 2 从按钮的 onclick 事件创建可观察对象的首选方法是什么 我不确定从组件代码中的 DOM 获取本机元素是否被认为是最佳实践 我该怎么做 或者是否还有其他我不知道的快捷方式 别想太多 ViewChild butt
  • 使用位操作查找最小值

    任何人都可以向我解释以下代码行 它用于查找两个数字中的最小值 int min int x int y return y x y x y gt gt sizeof int CHAR BIT 1 提前致谢 它用于查找两个数字中的最小值 不幸的是
  • 将数据库中的用户 ID 添加到 Codeigniter 中的会话数据中?

    我是 CodeIgniter 的新手 在从数据库添加用户 ID 用户登录后 到会话数据时遇到问题 这是我的代码问题 之前可能会在 SOF 上被问到 在付出了所有努力之后 我问这个 登录模型
  • 为什么我的 javascript regex.test() 给出交替结果[重复]

    这个问题在这里已经有答案了 可能的重复 Javascript 正则表达式返回 true 然后 false 然后 true 等等 https stackoverflow com questions 2630418 javascript reg
  • 设置 MVC 下拉列表中日期的格式

    我的页面上有一个下拉列表 如下所示 Html DropDownList dd dates new SelectList Model seasonDates Please Select 其中 seasonDates 是日期的 IList 问题
  • 将自己的结构传递到 opengl es 2.0 着色器中

    我想尝试 OpenGL ES 2 0 编程指南 一书中的照明示例 在着色器中他们制作了两种结构 struct directional light vec3 direction normalized light direction in ey
  • 滚动时将菜单栏固定在顶部[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我见过一些网站 当用户向下滚动页面时 会在右侧或左侧弹出一个框 另外 注意到这个模板 http www mvpthemes com m
  • 反馈选项卡,如 www.monyta.com [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有兴趣添加一个在我的页面上托管的反馈选项卡 没有第三方 如 uservoice monyta gets
  • Java 套接字 - 如何模拟多个客户端

    我有一个用Java编写的套接字程序 服务器使用 DatagramSocket 创建具有特定端口号的套接字 我有一个客户端java程序 它连接到该服务器并发送一些消息 目前我有 3 台笔记本电脑 因此我使用 1 台运行服务器 其余 2 台作为
  • Facebook api 回调的上下文?

    有没有办法在 javascript facebook sdk api 回调中传递上下文 这是一个简单的例子 现在这不起作用 因为我的回调函数中的变量 this name 将是未定义的 因为它不在我的用户对象上下文中 知道怎么做吗 funct
  • 在 SwiftUI 中使用分段式选取器在两个页面之间滑动

    我有一个Picker with pickerStyle SegmentedPickerStyle 使其成为分段控件 我想让页面在之间平滑滑动 而不是使用条件语句替换视图 这是我迄今为止所做的 gif 这是到目前为止的代码 由if 而不是在不
  • 状态:500,消息:无法获取链码包

    root 93272a1da547 opt gopath src github com hyperledger fabric peer peer chaincode instantiate o orderer example com 705
  • 如何在knitr和RStudio中为word和html设置不同的全局选项?

    我正在使用 RStudio 0 98 932 和 knitr 1 6 想要为word和html设置不同的全局knitr选项 例如 想要将word的fig width和fig height设置为6 html的fig width和fig hei
  • 如果结果类型为 json,则 Struts2 Action 被调用两次

    我有一个包含 4 个操作方法的 Action 类 所有四个操作操作方法都使用 json 结果 通过日志记录和调试 我已经验证如果我调用操作方法1 操作方法2和3也会被调用 但不是4 最后再次调用action方法1 生成json结果 如果我将
  • Swagger - 将多个安全参数添加到同一架构定义中

    Aim 在 API 中发出的每个请求中包含多个安全标头 Problem 我正在尝试将多个标头添加到我的 Swagger YAML 安全定义中 我已经通过 API 进行了搜索 但运气不佳 但我发现在进行 尝试此操作 时 我需要选择一个 而不是