SpringBoot整合Swagger页面如何禁止访问swagger-ui.html

在Spring Boot中禁止访问Swagger UI页面并在拦截器中进行拦截可以通过配置Spring Security来实现。下面是一个简单的示例,演示如何实现这一点:

在Spring Boot项目中创建一个Spring Security配置类,如下所示:

import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {@Overrideprotected void configure(HttpSecurity http) throws Exception {http.authorizeRequests().antMatchers("/swagger-ui.html").denyAll().antMatchers("/swagger-resources/**").permitAll() // 如果需要访问Swagger的其他资源,可以放行.and().csrf().disable();}
}

在这个配置中,我们使用HttpSecurity对象配置了访问规则。.antMatchers("/swagger-ui.html").denyAll() 表示禁止访问 swagger-ui.html 页面,而 .antMatchers("/swagger-resources/**").permitAll() 则允许访问Swagger的其他资源。

接下来,创建一个拦截器(Interceptor)类,用于拦截对 swagger-ui.html 的访问:

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;public class MyInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {if (request.getRequestURI().equals("/swagger-ui.html")) {response.setStatus(HttpServletResponse.SC_FORBIDDEN);return false;  // 拦截访问}return true;  // 放行其他请求}// 可以实现 postHandle 和 afterCompletion 方法进行相应处理
}

配置这个拦截器类并使其生效:

import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configuration
public class WebConfig implements WebMvcConfigurer {@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new MyInterceptor());}
}

这样配置后,即可通过Spring Security和拦截器实现禁止访问Swagger UI页面 swagger-ui.html

如果你想完全禁用 Swagger UI 和 Swagger 资源,你可以在 Spring Boot 项目的 application.yml 或 application.properties 文件中添加以下配置来实现: 

在 application.yml 文件中的配置:

spring:profiles: swagger:enabled: false

 在 application.properties 文件中的配置:

spring.profiles.swagger.enabled=false

通过将这些配置设置为 false,你可以完全禁用 Spring Boot 中关于 Swagger UI 和 Swagger 资源的自动配置和展示。这样就可以确保这些端点和页面对外部用户不可见或无法访问。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/30073.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python武器库开发-武器库篇之文件上传漏洞扫描器(六十二)

Python武器库开发-武器库篇之文件上传漏洞扫描器(六十二) 文件上传漏洞简介以及危害 文件上传漏洞是指在网站或应用程序中,攻击者可以通过合法的文件上传功能,由于对用户上传的文件没有进行严格的验证和过滤,导致攻击…

2024.06.06校招 实习 内推 面经

绿*泡*泡VX: neituijunsir 交流*裙 ,内推/实习/校招汇总表格 1、校招 | 追觅科技2025届校园招聘/正式启动! 校招 | 追觅科技2025届校园招聘正式启动! 2、校招&实习&社招 | 博世海外招聘—德国/专场正式启动&#xff0…

机器学习_SVM支持向量机

引入:在面对线性可分时,即用一条直线就可以区分数据的时候,需要将直线放在距离数据点距离最大化的位置,这个过程需要寻找最大间隔,即为最优化问题。当数据点不能用一根直线区分——线性不可分,就需要用核函…

免费Syslog日志接收工具

如果您想知道您的网络中发生了什么,以便洞察潜在的威胁并在它们变成攻击之前阻止它们,那么您需要查看您的日志。Syslog日志是网络设备、操作系统和应用程序生成的一种重要日志数据,通过有效地收集和监视Syslog日志,企业可以及时发…

设计模式(七)创建者模式之建造者模式

这里写目录标题 概述需求需求类图BikeBuilderMobikeBuilderOfoBuilderDirectorClientClient优缺点使用场景 模式扩展ComputerClient创建者模式对比工厂方法模式VS建造者模式抽象工厂模式VS建造者模式 总结 概述 建造者模式又叫生成器模式,是一种对象构建模式。它可…

运动想象 (MI) 分类学习系列 (13) :基于滑动窗口的通用空间模式

运动想象分类学习系列:基于滑动窗口的通用空间模式 0. 引言1. 主要贡献2. 提出的方法2.1 SW-LCR方法2.2 SW-Mode2.3 主要优缺点分析3. 结果3.1 BCI IV 2a3.2 卒中数据集4. 总结欢迎来稿论文地址:https://ieeexplore.ieee.org/abstract/document/9326392 论文题目:A Sliding W…

Vue3中的常见组件通信之插槽

Vue3中的常见组件通信之插槽 概述 ​ 在vue3中常见的组件通信有props、mitt、v-model、 r e f s 、 refs、 refs、parent、provide、inject、pinia、slot等。不同的组件关系用不同的传递方式。常见的撘配形式如下表所示。 组件关系传递方式父传子1. props2. v-model3. $refs…

音频处理软件adobe audition使用教程

教程1笔记 基本操作 点击文件-》新建-》多轨会话: 编辑-》首选项,设置自动保存时间: 导入素材,文件-》导入素材,或者直接拖动进来文件! 导出多轨混音: 更改为需要导出的格式wav,mp3等格式&am…

矿用行程位移传感器传感器ZE0701-06CU

矿用行程传感器概述 矿用行程传感器是一种专为煤矿等特定环境设计的传感器,用于监测和测量设备或部件的位移量。它们通常用于液压支架、千斤顶、掘进机等矿山设备中,帮助监测和控制设备的运动状态,以确保安全和高效的生产。 定义和功能 矿用…

云原生分级SLA

云原生分级SLA(Service Level Agreement,服务等级协议)规则是为了确保云服务提供商和客户之间对服务性能、可用性和其他关键指标有明确的理解和期望。这些规则通常基于业务需求和技术实现来制定,并根据服务的不同级别进行分级。以…

mysql编程--从入门到入土

创建存储过程调用存储过程删除存储过程可能出现的问题MySQL变量系统变量 定义变量查询变量变量的简单使用局部变量if语句参数 创建存储过程 create procedure p() begin select * from emp; end; 调用存储过程 call p; 删除存储过程 drop procedure if exists p; 可能出现…

微信小程序入门1

什么是微信小程序? 与传统的原生应用相比,微信小程序是一种全新的连接用户与服务的应用,它可以在微信内被便捷地获取和传播,同时具有良好的用户体验。微信小程序是运行在微信中的应用,是一种不需要下载即可使用的应用…

食品企业仓储式批发零售一体化解决方案

食品企业需要有效应对日益复杂的市场挑战和消费者需求的快速变化的挑战并提升市场竞争力,仓储式类的批发零售一体化需求应运而生。这一全新的商业模式不仅整合了传统的批发和零售模式,还优化了供应链管理和客户体验,成为食品行业发展的新引擎…

哈希的基本原理

目录 一.哈希概念 二.哈希冲突 三.哈希函数 四.哈希冲突解决 一.闭散列(开放寻址法) ①插入: ②查找: ③删除: 代码测试: 二.开散列(拉链法) ①插入: ②查找: ③删除: 代码测试&a…

Linux终端玩转bastet俄罗斯方块小游戏

Linux终端玩转bastet俄罗斯方块小游戏 一、bastet小游戏介绍1.1 bastet小游戏简介1.2 项目预览 二、本次实践介绍2.1 本地环境规划2.2 本次实践介绍 三、检查系统镜像源3.1 检查系统镜像源3.2 更新软件列表3.3 查询软件 四、安装bastet小游戏4.1 安装bastet4.2 启动bastet游戏 …

基本公式汇总

高等数学公式汇总 一、三角函数公式 1、特殊值 2、二倍角和差公式 1)正余弦和差公式 2)正切和差公式 3)积化和差 4)和差化积 3、平方和公式 4、倍角公式 5、半角公式 6、万能公式 7、辅助角公式 二、反三角函数公式 1、余角关…

宁德时代华北首座电池工厂在北京开工

6月18日,由宁德时代与北汽集团、京能集团、小米集团等共同投资建设的北京时代电池基地项目开工仪式在北京举行。 北京市相关政府代表,宁德时代董事长兼CEO曾毓群,北汽集团董事长张建勇,京能集团副总经理张凤阳,小米集…

GaussDB技术解读——GaussDB架构介绍(五)

GaussDB架构介绍(四)从云原生关键技术架构&关键技术方案两方面对GaussDB云原生架构进行了解读,本篇将从关键技术方案的事务存储组件、SQL引擎组件、DCS组件、实时分析组件等方面继续介绍GaussDB云原生架构。 目录 事务存储组件 1、本地…

NPDP含金量、考试内容、报考要求、适合人群?

01.NPDP核心价值解读 NPDP认证的核心价值在于整合产品开发管理的理论与实践,包含新产品开发策略、研发流程管理、市场研究、销规划、团队管理、项目管理等等,理论体系和知识内容穿插在产品发展的全过程。 对于职场打工人来说,拥有NPDP证书证…

三生随记——AI的觉醒

在一个风和日丽的周末,林杰在家中惬意地享受着休闲时光。他是一个科技爱好者,尤其对人工智能(AI)充满了兴趣。家中摆放着各种智能设备,从智能音箱到扫地机器人,都是他的心头好。然而,他总觉得现…