Springboot线上环境彻底关闭Swagger-UI

2023-11-10

概要

Springboot线上环境彻底关闭Swagger-UI

整体架构流程

1.SwaggerConfig使用@Profile排除线上环境其他环境生效
2.创建一个控制类使用@Profile仅线上环境生效,使访问swagger-ui.html返回404

技术细节

/**
 * @author: suitman
 * @description: go fucking comment....
 * @create: 2021-02-07 10:43
 **/
@Configuration
@EnableSwagger2
@Profile("!prod")
public class SwaggerConfig implements WebMvcConfigurer {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(new ApiInfoBuilder()
                        // 设置标题
                        .title("****")
                        // 描述
                        .description("***")
                        // 作者信息
                        .contact(new Contact("***", null, null))
                        // 版本
                        .version("版本号: 1")
                        .build())
                .select()
                .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
                .paths(PathSelectors.any())
                .build();
    }

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
}

import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Profile;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@Profile("prod")
@RestController
@Slf4j
public class DisableSwaggerUiController {

    @RequestMapping(value = "swagger-ui.html", method = RequestMethod.GET)
    public void getSwagger(HttpServletResponse httpResponse) throws IOException {
        httpResponse.setStatus(HttpStatus.NOT_FOUND.value());
    }
}

小结

通过这种方式可以彻底关闭线上环境访问swagger-ui.html直接返回404

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Springboot线上环境彻底关闭Swagger-UI 的相关文章

随机推荐

  • 安装JDK7和Tomcat8.5后,Tomcat服务启动不了

    windows64位系统安装JDK7 0与Tomcat8 5 35需要注意的 一 JDK7 0和Tomcat8 5 35都要是64的版本 否则Tomcat服务会启动不了 JDK7 0如果不是64位 安装的时候会自动安装在C Program
  • Qt中正则表达式

    TOC 不积跬步 无以至千里 Qt中正则表达式 正则表达式 regular expression 就是在一个文本中匹配子字符串的一种模式 pattern 它可以简写为 regexp 一个regexp主要应用在以下几个方面 验证 一个rege
  • 数据结构c语言版如何运行程序,数据结构c语言怎么运行啊

    首先要确定你想采用线性表的顺序存储结构还是链式存储结构 以顺序存储结构为例 include include define ERROR 0 define OK 1 typedef int Status typedef int ElemType
  • pom 通用配置

  • Vue自定义指令directive(详细)

    个人网站 紫陌 笔记分享网 想寻找共同学习交流 共同成长的伙伴 请点击 前端学习交流群 1 什么是自定义指令 v 开头的行内属性 都是指令 不同的指令可以完成或实现不同的功能 除了内置指令外 Vue 也允许注册自定义指令 有的情况下 你仍然
  • 服务器上安装mpi4py

    服务器上安装mpi4py 尝试方法1 失败 python m pip install mpi4py 结果报错 缺失某一个库文件导致编译失败 解决方法 如果有权限的话可以sudo安装libopenmpi dev解决 否则只能手动编译 尝试方法
  • Python - 注释

    单行注释 comments 多行注释 comments comments 模块文档 1 用法 模块名 doc 2 显示代码块的简要说明 3 任何代码块 文件 类 函数 均可以有文档说明 不跨行 comments 跨行 comments co
  • OkHttp:自定义缓存

    设置OkHttp 的缓存策略 没网络直接读取缓存 并且设置缓存生命周期为 30s 自定义 Interceptor 请求策略 没有网络直接读取缓存 public class CacheRequestInterceptor implements
  • 目标检测算法——mmdetection下面的deformable-detr运行

    1 环境 包 版本 mmcv full 1 4 2 mmdet 2 19 1 torch 1 10 0 cu113 torchvision 0 11 1 cu113 2 文档 mmet官方文档 mmcv官方文档 源码下载 3 数据集 自定义
  • javascript的比较运算符

    比较运算符的隐士转换 这里只比较 字符串和 数字 对象的比较没有意义 一般返回的是false 234 lt 78 true 234 lt 78 false 234 lt 78 false 总结 只有当 comparison operator
  • Qt中的ui指针和this指针

    本博客中关于C 和QT 无特别说明开发环境为 Visual studio 2013 QT为5 9 9 特此说明 谨慎参考 希望能帮助到爱好者 首先看ui指针的定义 在mainwindow h中 private Ui MainWindow u
  • VisualStudio 无法登录

    文章转载自 https cloud tencent com developer article 1342617 如果遇到 visualStudio 无法登陆 可以看下我的方法 可能有用 尝试关闭代理 打开设置 网络 代理 关了它 试试 如果
  • zookeeper基本概念及使用场景

    zookeeper基本概念及使用场景 Zookeeper作为一种协调分布式应用高性能的调度服务 在ZooKeeper中 节点类型可以分为 持久节点 PERSISTENT 临时节点 EPHEMERAL 时序节点 SEQUENTIAL 具体在节
  • 机器学习项目的实验方法

    发现对于一些机器学习项目 在项目进行中往往会直接就开始编码实现 而没有一套完整的方法论和有实操性的流程 经过一些粗浅的研究 下面写出一些对于此的部分思考 或有参考借鉴之用 实验开始前 需要清楚研究什么 如何收集数据 打算怎样分析 1 研究目
  • Crunchfish发布XR Skeleton手势交互解决方案

    转自 https baijiahao baidu com s id 1677811512042412943 wfr spider for pc 移动交互解决方案开发商Crunchfish日前发布了名为XR Skeleton的手势控制技术 只
  • HttpClient的”javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated”异常

    在开发https应用时 你的测试服务器常常没有一个 有效的 SSL证书 在你的客户端连接测试服务器时 如下的异常会被抛出 javax net ssl SSLPeerUnverifiedException peer not authentic
  • CDN方式使用Vue,VantUI组件方式

    代码示例
  • 这个小工具竟然可以让我保持健康

    Part1背景 我有个同事今天跟我说 他总是忘记喝水 这可怎么办 作为程序员的我们 本就每天久坐缺乏锻炼 如果再忘记喝水 那将会带来多么严重的后果 所以我决定为他做一个小工具来提醒他定时喝水 活动 Part2前期准备 1下载依赖软件 pip
  • python 用逐步回归筛选变量

    在回归分析中 影响因变量y的因素很多 而有些自变量的对目标变量y的影响程度不同 为了建立一个相对最优的回归方程 我们需要筛选掉对目标变量y影响不大的变量 这就涉及到了变量选择问题 逐步回归是通过假设检验的方法来筛选强特征 但如果直接用特征变
  • Springboot线上环境彻底关闭Swagger-UI

    文章目录 概要 整体架构流程 技术细节 小结 概要 Springboot线上环境彻底关闭Swagger UI 整体架构流程 1 SwaggerConfig使用 Profile排除线上环境其他环境生效 2 创建一个控制类使用 Profile仅