java:springboot1.x/springboot2.x配置swagger2登录密码/设置swagger访问权限
2023-09-11 14:22:32 时间
需求描述
需要将springboot项目的swagger文档配置为输入用户名密码登录后才可访问,即:
springboot1.x配置方法
- 首先需要在pom.xml中引入依赖包(需要确保只引入这一个security包以免冲突):
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
- 在application.properties中增加如下配置即可:
#增加swagger文档访问验证(也可以自行添加项目下其他需验证的网址)
security.basic.path=/swagger-ui.html,/v2/api-docs
security.basic.enabled=true
security.user.name=自定义用户名
security.user.password=自定义密码
- 此时通过以下地址访问swagger文档:
ip:port/swagger-ui.html
springboot2.x配置方法
0. 注意:如果你是springboot2.x,并且刚刚尝试使用springboot1.x配置方案没有成功,请务必先进行以下操作(没有的话请跳过):
①删除pom.xml中添加的security包依赖;
②手动删除项目路径下的target文件夹;
③(如果使用Eclipse可以参考下图)Maven update;
④Project clean
个人踩坑记录:即使在pom.xml中删除了引入的依赖包,如果不手动删掉target文件夹并刷新项目,那个不需要引用的包实际还是存在
(遇到其他一些莫名其妙问题也可先删掉target刷新项目看看,所谓遇事不决就重启=。=)
(当然在工作中,千万千万千万。。不要随便重启客户的服务器,不要问我为什么=_=)
- 升级swagger依赖包版本,将pom.xml中引入的swagger依赖改为:
<!--swagger-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>swagger-bootstrap-ui</artifactId>
<version>1.9.6</version>
</dependency>
- 在配置类的类名上增加@EnableSwaggerBootstrapUI注解:
/** 配置类参考代码 **/
@Configuration
@EnableSwagger2
@EnableSwaggerBootstrapUI
public class Swagger2 extends WebMvcConfigurerAdapter {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
.apis(RequestHandlerSelectors.basePackage("自定义接口路径"))
.paths(PathSelectors.any()).build();
}
}
- 在application.properties中增加如下配置即可:
#增加swagger文档访问验证
swagger.production=false
swagger.basic.enable=true
swagger.basic.username=自定义用户名
swagger.basic.password=自定义密码
- 此时通过以下地址访问swagger文档:
ip:port/doc.html
参考文档
相关文章
- java虚拟机学习-慢慢琢磨JVM(2-1)ClassLoader的工作机制
- Java if判断对象为null时,null放在比较运算符的左边还是右边?哪种才是java标准?进来看看你就知道了
- Java Date Time 教程-java.sql.Timestamp
- Java: switch lambda-like syntax
- 【Java】java数据库连接池配置的几种方法
- 【Java】java基本知识
- 【Java】Servlet 工作原理解析
- 【Java】【异常排查】java.lang.NoClassDefFoundError 完美解决
- Java 并发工具包 java.util.concurrent 大全
- 1. java.util.concurrent - Java 并发工具包
- Java 注解
- Java中Properties类的操作
- 『Java练习生的自我修养』java-se进阶² • 并发与多线程
- JAVA学习.java.sql.date 与java.util.date以及gettime()方法的分析
- 【Java】【Javaweb】不用点技术活能找到npy?❤️来看这篇邮件发送❤️(1024属于程序员的节日)
- suseoj 1207: 大整数的乘法(java, 大数相乘, C/C++, 大数相乘)
- Java小白入门200例62之java中日期查询常用实例
- 解决Java使用response下载文件报错,并总结可能出错的原因: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。