需求描述

需要将springboot项目的swagger文档配置为输入用户名密码登录后才可访问,即:
直接访问时提示需输入用户名密码

springboot1.x配置方法

  1. 首先需要在pom.xml中引入依赖包(需要确保只引入这一个security包以免冲突):
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-security</artifactId>
</dependency>
  1. 在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刷新项目看看,所谓遇事不决就重启=。=)
(当然在工作中,千万千万千万。。不要随便重启客户的服务器,不要问我为什么=_=)

Eclipse Maven update

  1. 升级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>
  1. 在配置类的类名上增加@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();
	}
}
  1. 在application.properties中增加如下配置即可:
#增加swagger文档访问验证
swagger.production=false
swagger.basic.enable=true
swagger.basic.username=自定义用户名
swagger.basic.password=自定义密码
  • 此时通过以下地址访问swagger文档:

ip:port/doc.html

参考文档

[1] Springboot配置swagger2

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐