Skip to content

Commit 583fe19

Browse files
authored
Merge pull request SpringForAll#143 from SpringForAll/1.8.x
1.8.x
2 parents 3ba0a13 + 7cb8ff2 commit 583fe19

File tree

4 files changed

+32
-5
lines changed

4 files changed

+32
-5
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

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>com.spring4all</groupId>
88
<artifactId>swagger-spring-boot-starter</artifactId>
9-
<version>1.8.0.RELEASE</version>
9+
<version>1.9.0.RELEASE</version>
1010

1111
<name>spring-boot-starter-swagger</name>
1212
<url>https://github.com/SpringForAll/spring-boot-starter-swagger</url>
@@ -50,7 +50,7 @@
5050
<version.java>1.8</version.java>
5151
<version.swagger>2.9.2</version.swagger>
5252
<version.spring-boot>1.5.10.RELEASE</version.spring-boot>
53-
<version.lombok>1.16.18</version.lombok>
53+
<version.lombok>1.18.6</version.lombok>
5454
</properties>
5555

5656
<dependencies>

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)