目标
为API中发出的每个请求包含多个安全标头
问题
我正在尝试将多个标头添加到我的Swagger YAML安全定义中。我已经搜索了API,但运气不佳,但我发现在进行“尝试此操作”时,我需要选择一个。而不是两者都能使用。这是正确的还是我做了什么不正确的事情?
片段
securityDefinitions:
userEmail:
type: apiKey
name: User Email
in: header
clientId:
type: apiKey
name: Client Id
in: header
security: [ { userEmail: [], clientId: [] } ]
另类?
如果我试图做到这一点,这是不可能的……是否可以将这些参数指定为swagger文档中所有rest路径的默认值?
我是本周Swagger的新手,任何发现其他一切都没有问题...但我找不到任何好的例子。
如果能提供任何指导,那将是非常有帮助的,非常感谢
美洲组织3:https://swagger.io/docs/specification/authentication/
某些 REST API 支持多种身份验证类型。安全性
部分允许您使用逻辑 OR 和 AND 组合安全要求,以实现所需的结果。安全性
使用以下逻辑:
security: # A OR B
- A
- B
security: # A AND B
- A
B
security: # (A AND B) OR (C AND D)
- A
B
- C
D
您的 SecurityDefintions
对象看起来没问题。当心
security: [ { userEmail: [], clientId: [] } ]
这意味着API客户端必须同时使用用户电子邮件
身份验证和客户端ID
身份验证!你的意思可能是:
security: [ { userEmail: [] }, { clientId: [] } ]
这意味着API客户端必须使用用户电子邮件
身份验证或客户端ID
身份验证。
为了避免反复重复此定义,您可以使用全局安全性
属性,该属性适用于所有没有自己的安保
对象的路径:
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规范在操作对象下声明:
安全
:[安全需求对象]
用于此操作的安全方案的声明。值列表描述了可使用的替代安全方案(即,安全需求之间存在逻辑OR)。此定义覆盖任何声明的顶级安全性。要删除顶级安全声明,可以使用空数组。
安全需求对象的描述如下:
列出执行此操作所需的安全方案。对象可以在其中声明多个安全方案,这些方案都是必需的(即方案之间有一个逻辑与)。
每个属性使用的名称必须对应于安全定义中声明的安全方案。
我有一个自定义验证属性 假设我有一个实现ValidationAttory的HelloWorld类。然后我将此属性应用于我的API中的一个字段。 当我生成Swagger UI时,我得到一个JSON OpenAPI规范,模型显示每个字段的属性,如下所示: 如果我添加了一个必需的标记,如果我使用诸如RegularExpression/Range/StringLength之类的属性,则会显示一个星号,文本
大部分当前web浏览器使用一种将用户和网络结合成一个单一保护域的单片结构。在这样的浏览器中,攻击者可以利用任意代码执行漏洞,盗取敏感信息或者安装恶意软件。在这篇文章里,我们展示了Chromium的安全架构。Chromium有着两个处于独立保护域 的模块:一个是浏览器内核,与操作系统交互,一个是渲染引擎,运行在只有限制权限的沙箱中。这种架构有助于减少高危攻击,而不牺牲与现有网站的兼容性。我们为浏览器
我在swagger 2.0文件中定义了两个可重用参数: 然后在我的路由定义中(在本例中为GET),我尝试这样引用这两个: 如果我使用一个$ref,它似乎工作正常(没有编译错误),但是如果我尝试两个都使用,它会看着我: 此外,如果我在查询字符串中传递这些参数并输出<code>req.swagger。params</code>,我得到一个空对象。我做错了什么? 这是规范的完整SSCCE,生成相同的错误
问题内容: 我正在运行一个基于Java Spring MVC的Web应用程序。它还基于Hybris平台。 现在,已经实现了有关身份验证和授权的基本功能。意味着我们确实有用于会话,有效的用户系统等的过滤器。 但是,我们目前还没有针对诸如XSS和其他可能的攻击之类的安全措施。XSS可能是最大的问题,因为它是最常见的攻击方式。 现在,我不知道……明智地采取什么步骤?我环顾四周,我发现存在像XSS-Fil
问题内容: 我的脚本定义了一个主解析器和多个子解析器。我想将论点应用于一些子解析器。到目前为止,代码如下所示: 如您所见,重复了两次。实际上,我还有更多的次级解析器。有没有一种方法可以遍历现有的子解析器以避免重复? 作为记录,我正在使用Python 2.7 问题答案: 这可以通过定义一个包含公共选项的父解析器来实现: 这将生成以下格式的帮助消息: 输出: 输出: 但是,如果您运行程序,则如果未指定
我试图将一个名为sAMAccountName的新属性添加到一个已经存在的LDAP模式定义中,该定义由IM-LDAP使用UnboundID LDAP SDK读取。 我已经在MatchingGruleUse中添加了attributeTypes条目和sAMAccountName。 对于每个以前存在的属性,调用将返回属性类型。但不是因为我的新属性。 我错过了什么? 10/11/18在@jwilleke评论