mirror of https://github.com/jeecgboot/jeecg-boot
				
				
				
			优化生产环境屏蔽swagger处理
							parent
							
								
									fd0461644e
								
							
						
					
					
						commit
						9db6c1a7ac
					
				| 
						 | 
				
			
			@ -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;
 | 
			
		||||
| 
						 | 
				
			
			@ -10,7 +10,6 @@ import springfox.documentation.swagger.web.*;
 | 
			
		|||
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.regex.Pattern;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * swagger聚合接口,三个接口都是 doc.html需要访问的接口
 | 
			
		||||
| 
						 | 
				
			
			@ -21,11 +20,11 @@ import java.util.regex.Pattern;
 | 
			
		|||
@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) {
 | 
			
		||||
| 
						 | 
				
			
			@ -44,22 +43,10 @@ public class SwaggerResourceController {
 | 
			
		|||
 | 
			
		||||
    @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;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue