招摇:基本认证不起作用

时间:2017-06-14 14:14:14

标签: rest swagger

这里是我的swagger.yaml:

...
paths:
 /api/geocode:
  get:
  ....
responses:
    200:
      description: "OK"
      schema:
        $ref: "#/definitions/ResourcesOfGeocodingInformation"
    204:
      description: "Pas de résultat"
      schema:
        $ref: "#/definitions/ResourcesOfGeocodingInformation"
    401:
      description: "Unauthorized"
    403:
      description: "Forbidden"
    404:
      description: "Not Found"
    500:
      description: "Erreur technique"
    504:
      description: "Via Michelin ne répond pas "
  security:
  - basicAuth: []
  x-swagger-router-controller: "Geocode"
  securityDefinitions:
   basicAuth:
    type: "basic"
definitions:
...

但是当我尝试在没有身份验证的情况下请求此WS时,这是有效的,并给我200状态。 怎么了?

2 个答案:

答案 0 :(得分:1)

这是因为Swagger不强制执行安全性,只在swagger文档中提供有关它的信息。您需要为服务添加基本身份验证。

  

可在规范中使用的安全方案声明。这不会强制执行操作的安全方案,只能提供每个方案的相关详细信息。

有关详细信息,请参阅此处:https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#securityDefinitionsObject

答案 1 :(得分:0)

请务必正确缩进。既然你已经完成了文档中陈述的所有内容。您是否尝试使用根级security作业“保护”整个文档?

securityDefinitions:
  basicAuth:
    type: basic

# To apply Basic auth to the whole API:
security:
  - basicAuth: []

喜欢这个。