Skip to content

Commit

Permalink
Merge pull request #6293 from EightMonth/master
Browse files Browse the repository at this point in the history
优化生产环境屏蔽swagger处理
  • Loading branch information
zhangdaiscott authored Jun 6, 2024
2 parents fd04616 + 9db6c1a commit 857fb53
Showing 1 changed file with 8 additions and 21 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package org.jeecg.handler.swagger;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
Expand All @@ -10,7 +10,6 @@

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;

/**
* swagger聚合接口,三个接口都是 doc.html需要访问的接口
Expand All @@ -21,11 +20,11 @@
@RequestMapping("/swagger-resources")
public class SwaggerResourceController {
private MySwaggerResourceProvider swaggerResourceProvider;

@Autowired
private ApplicationContext applicationContext;
// 生产环境profile配置模型
private static final String PRODUCTION_PROFILE_NAME = "prod*";
/**
* 生产环境,关闭swagger文档
*/
@Value("${knife4j.production:#{null}}")
private Boolean production;

@Autowired
public SwaggerResourceController(MySwaggerResourceProvider swaggerResourceProvider) {
Expand All @@ -44,22 +43,10 @@ public ResponseEntity<UiConfiguration> uiConfiguration() {

@RequestMapping
public ResponseEntity<List<SwaggerResource>> swaggerResources() {
// 如果激活的profile带有生产环境的profile,则屏蔽swagger资源
if (isProd()) {
// 是否开启生产环境屏蔽swagger
if (production != null && production) {
return new ResponseEntity<>(new ArrayList<>(), HttpStatus.OK);
}
return new ResponseEntity<>(swaggerResourceProvider.get(), HttpStatus.OK);
}

private boolean isProd() {
String[] profiles = applicationContext.getEnvironment().getActiveProfiles();
Pattern pattern = Pattern.compile(PRODUCTION_PROFILE_NAME);
for (String profile : profiles) {
if (pattern.matcher(profile).find()) {
return true;
}
}

return false;
}
}

0 comments on commit 857fb53

Please sign in to comment.