Skip to content

Commit e448a82

Browse files
authored
Merge pull request #135 from suiaing/1.8.x
支持 BasicAuth
2 parents 3ba0a13 + 5be30eb commit e448a82

File tree

3 files changed

+30
-3
lines changed

3 files changed

+30
-3
lines changed

README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -283,14 +283,17 @@ swagger.docket.aaa.ignored-parameter-types[1]=com.didispace.demo.Product
283283
# 鉴权策略ID,对应 SecurityReferences ID
284284
swagger.authorization.name=Authorization
285285

286+
# 鉴权策略,可选 ApiKey | BasicAuth | None,默认ApiKey
287+
swagger.authorization.type=ApiKey
288+
286289
# 鉴权传递的Header参数
287290
swagger.authorization.key-name=token
288291

289292
# 需要开启鉴权URL的正则, 默认^.*$匹配所有URL
290293
swagger.authorization.auth-regex=^.*$
291294
```
292295

293-
备注:目前支持`ApiKey`鉴权模式,后续添加`Oauth2``BasicAuth`支持
296+
备注:目前支持`ApiKey` | `BasicAuth`鉴权模式,`None`除消鉴权模式,默认ApiKey,后续添加`Oauth2`支持
294297

295298
**使用须知**
296299

src/main/java/com/spring4all/swagger/SwaggerAutoConfiguration.java

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,11 +107,16 @@ public List<Docket> createRestApi(SwaggerProperties swaggerProperties) {
107107
Docket docketForBuilder = new Docket(DocumentationType.SWAGGER_2)
108108
.host(swaggerProperties.getHost())
109109
.apiInfo(apiInfo)
110-
.securitySchemes(Collections.singletonList(apiKey()))
111110
.securityContexts(Collections.singletonList(securityContext()))
112111
.globalOperationParameters(buildGlobalOperationParametersFromSwaggerProperties(
113112
swaggerProperties.getGlobalOperationParameters()));
114113

114+
if ("BasicAuth".equalsIgnoreCase(swaggerProperties.getAuthorization().getType())) {
115+
docketForBuilder.securitySchemes(Collections.singletonList(basicAuth()));
116+
} else if (!"None".equalsIgnoreCase(swaggerProperties.getAuthorization().getType())) {
117+
docketForBuilder.securitySchemes(Collections.singletonList(apiKey()));
118+
}
119+
115120
// 全局响应消息
116121
if (!swaggerProperties.getApplyDefaultResponseMessages()) {
117122
buildGlobalResponseMessage(swaggerProperties, docketForBuilder);
@@ -175,11 +180,16 @@ public List<Docket> createRestApi(SwaggerProperties swaggerProperties) {
175180
Docket docketForBuilder = new Docket(DocumentationType.SWAGGER_2)
176181
.host(swaggerProperties.getHost())
177182
.apiInfo(apiInfo)
178-
.securitySchemes(Collections.singletonList(apiKey()))
179183
.securityContexts(Collections.singletonList(securityContext()))
180184
.globalOperationParameters(assemblyGlobalOperationParameters(swaggerProperties.getGlobalOperationParameters(),
181185
docketInfo.getGlobalOperationParameters()));
182186

187+
if ("BasicAuth".equalsIgnoreCase(swaggerProperties.getAuthorization().getType())) {
188+
docketForBuilder.securitySchemes(Collections.singletonList(basicAuth()));
189+
} else if (!"None".equalsIgnoreCase(swaggerProperties.getAuthorization().getType())) {
190+
docketForBuilder.securitySchemes(Collections.singletonList(apiKey()));
191+
}
192+
183193
// 全局响应消息
184194
if (!swaggerProperties.getApplyDefaultResponseMessages()) {
185195
buildGlobalResponseMessage(swaggerProperties, docketForBuilder);
@@ -218,6 +228,15 @@ private ApiKey apiKey() {
218228
ApiKeyVehicle.HEADER.getValue());
219229
}
220230

231+
/**
232+
* 配置基于 BasicAuth 的鉴权对象
233+
*
234+
* @return
235+
*/
236+
private BasicAuth basicAuth() {
237+
return new BasicAuth(swaggerProperties().getAuthorization().getName());
238+
}
239+
221240
/**
222241
* 配置默认的全局鉴权策略的开关,以及通过正则表达式进行匹配;默认 ^.*$ 匹配所有URL
223242
* 其中 securityReferences 为配置启用的鉴权策略

src/main/java/com/spring4all/swagger/SwaggerProperties.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -344,6 +344,11 @@ static class Authorization {
344344
*/
345345
private String name = "Authorization";
346346

347+
/**
348+
* 鉴权策略,可选 ApiKey | BasicAuth | None,默认ApiKey
349+
*/
350+
private String type = "ApiKey";
351+
347352
/**
348353
* 鉴权传递的Header参数
349354
*/

0 commit comments

Comments
 (0)