这里是我的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状态。 怎么了?
答案 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: []
喜欢这个。