java:springboot1.x/springboot2.x配置swagger2登录密码/设置swagger访问权限
java:springboot1.x/springboot2.x配置swagger2登录密码/设置swagger访问权限
文章目录
- 需求描述
- springboot1.x配置方法
- springboot2.x配置方法
- 参考文档
需求描述
需要将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
参考文档
[1] Springboot配置swagger2
华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。
更多推荐
所有评论(0)