当前位置: 首页 > 知识库问答 >
问题:

Swagger路径的特定安全性

勾炜
2023-03-14

我有一个节点。我想在其中添加炫耀文档的jsAPI。客户通过JWT授权,因此我将此添加到安全中:

securityDefinitions:
  UserSecurity:
    type: apiKey
    description: User is logged in
    in: header
    name: Authorization

然后我可以将它添加到不同的路径中,告诉客户端,要做到这一点,您需要登录。

/user/{userId}
  get:
    security:
      - UserSecurity: []

但是,如何添加更具体的安全约束呢?例如,用户只有在以该用户身份登录时才能编辑配置文件。或者,如果用户具有超级管理员状态,或者如果他是论坛的管理员,则可以编辑评论,评论将发布在 OR 上,作为创建此评论的用户进行记录。

共有1个答案

仰雅昶
2023-03-14

AFAIK,没有直接的方法将“角色”添加到摇摆文档中。

我所做的是在swagger文件< code>x-scope中添加一个自定义部分:

get:
    operationId: getToken
    x-scope:
      - merchant
    security:
      - token: []

然后在代码中,我将用户的角色与路径中提供的角色进行对比:

authorize: (req, def, token, callback) => {
  let scopes = req.swagger.operation["x-scope"];
  //scopes will contain ["merchant"] array

  return verifyUserAndRoles(token, scopes);
}
 类似资料:
  • 我使用的是Spring Boot 1.3.3和swagger springmvc:1.0.2。我正在将应用程序的基本路径设置为“/”。而斯威格正在 http://localhost:9000/swagger/index.html 我需要更改它,但将应用程序的根目录保留为“/”。我需要写一条规则,比如: 如果有人打http://localhost:9000/SOMETHING/swagger/ind

  • 参见文档“10. Web”部分

  • Fortify安全审查告诉我们一些路径操作漏洞。大多数都是显而易见的简单解决方案,但我不明白如何解决以下问题。 "wsdlPath"是从文本框中输入的。这是无法解决的问题吗?我可以验证路径是否存在,等等,但是这对漏洞有什么帮助呢?

  • 我试图在我的资源服务器上配置Swagger身份验证,以便我可以根据我的授权服务器进行身份验证。 我将资源服务器和授权服务器分开。它们都使用不同的端口在我的本地主机上启动。 端口8083上的资源服务器 每当我试图“授权”时,就会出现CORS问题。 我从另一个网站分叉了一个项目作为我的测试场地。下面是分叉项目。 https://github.com/cbriarnold/oauth2-spring-b

  • 问题内容: 我在带有一些中间件功能的node.js中使用Express框架: 我可以将函数与附加参数一起使用,以仅在特定路径上使用此中间件: 是否可以使用path变量,以便将中间件用于除特定路径(即根路径)以外的所有路径? 我在想这样的事情: 因此,总是调用除根路径以外的其他路径。 问题答案: 我会将checkUser中间件添加到我的除首页之外的所有路径中。 要么 您可以使用下划线扩展它,以在未经