springboot 项目集成swagger并配置请求头 swagger-bootstrap-ui 并配置访问密码

17 篇文章 1 订阅
订阅专栏

目录

1.什么是 swagger?优势有哪些

2.springboot 集成 swagger

2.1.引入 swagger 相关的jar包

2.2.编写配置文件 SwaggerConfig   WebConfiguration(有配置请求头)

2.3.访问 swagger   

2.4.异常及解决办法

2.5.最后的效果是这个样子的

3.springboot 集成 swagger-bootstrap-ui

3.1.引入jar包

3.2.修改配置

3.3.最后效果

3.4.swagger 常用注解

4.设置swagger访问密码

4.1导入security相关jar包

4.2在springboot配置文件里配置swagger的登录用户、密码和登录后跳转的页面

4.3.新建 SpringSecurityConfiguration 配置类

4.4.再访问就是下面这个样子(访问时加载可能会有点慢)  访问地址:http://ip:端口/doc.html


1.什么是 swagger?优势有哪些

Swagger 是一个规范且完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。

Swagger 的目标是对 REST API 定义一个标准且和语言无关的接口,可以让人和计算机拥有无须访问源码、文档或网络流量监测就可以发现和理解服务的能力。当通过 Swagger 进行正确定义,用户可以理解远程服务并使用最少实现逻辑与远程服务进行交互。与为底层编程所实现的接口类似,Swagger 消除了调用服务时可能会有的猜测。

Swagger 的优势

  • 支持 API 自动生成同步的在线文档:使用 Swagger 后可以直接通过代码生成文档,不再需要自己手动编写接口文档了,对程序员来说非常方便,可以节约写文档的时间去学习新技术。

  • 提供 Web 页面在线测试 API:光有文档还不够,Swagger 生成的文档还支持在线测试。参数和格式都定好了,直接在界面上输入参数对应的值即可在线测试接口。

2.springboot 集成 swagger

2.1.引入 swagger 相关的jar包

    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.9.2</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.9.2</version>
    </dependency>

2.2.编写配置文件 SwaggerConfig   WebConfiguration(有配置请求头)

@Configuration
@EnableSwagger2
@Profile({"dev", "test"}) //swagger配置到生产环境测试环境下环境
public class SwaggerConfig {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                //加了ApiOperation注解的类,才生成接口文档
                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                //包下的类,才生成接口文档
                .apis(RequestHandlerSelectors.basePackage("com.labour.controller"))
                .paths(PathSelectors.any())
                .build()
                .globalOperationParameters(globalOperation());       // 主要关注点----每个接口调用都填写token
    }
    private List<Parameter> globalOperation(){
        //添加head参数配置start
        ParameterBuilder tokenPar = new ParameterBuilder();
        List<Parameter> pars = new ArrayList<>();
        /*配置请求头*/
        tokenPar.name("Authorization").description("token令牌").modelRef(new ModelRef("string")).parameterType("header").required(false).build();
        pars.add(tokenPar.build());
        return pars;
    }
    // 构建 api文档的详细信息函数,注意这里的注解引用的是哪个
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                // 页面标题1
                .title("xx系统接口文档")
                // 描述
                .description("xx系统接口文档").termsOfServiceUrl("http://localhost:8080/")
                // 创建人
                .contact(new Contact("xxxxx", "http://www.xxxxx.com/", ""))
                // 版本号
                .version("1.0.1").build();
    }
}
/**
*@Author: make mpy
*@Description: 来注册拦截器
*@Date: 2020/12/30 14:33
*/
@Configuration
public class WebConfiguration implements WebMvcConfigurer {

    /**登陆校验的拦截器注入*/
    @Autowired
    private SessionInterceptor sessionInterceptor;

    // 这个方法用来注册拦截器,我们自己写好的拦截器需要通过这里添加注册才能生效
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        //表示除了登陆与注册之外,因为登陆注册不需要登陆也可以访问
        registry.addPathPatterns("/**").excludePathPatterns("/login", "/register").excludePathPatterns("/swagger-ui.html") 
                .excludePathPatterns("/swagger-resources/**")
                .excludePathPatterns("/error")
                .excludePathPatterns("/webjars/**");
    }

    // 这个方法是用来配置静态资源的,比如html,js,css,等等
    @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/");
    }
}

2.3.访问 swagger   

ip:端口/swagger-ui.html

2.4.异常及解决办法

        如果出现这个 Swagger For input string: ““  的异常,请访问 这个地址查看解决方法

2.5.最后的效果是这个样子的

               

3.springboot 集成 swagger-bootstrap-ui

3.1.引入jar包

    <dependency>
        <groupId>com.github.xiaoymin</groupId>
        <artifactId>swagger-bootstrap-ui</artifactId>
        <version>1.9.6</version>
    </dependency>

3.2.修改配置

    将 WebConfiguration 里所有的 swagger-ui.html 改成 doc.html 就ok

3.3.最后效果

3.4.swagger 常用注解

        请访问 上篇文章

4.设置swagger访问密码

利用 security 对 swagger 进行密码登录限制

4.1导入security相关jar包

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>

4.2在springboot配置文件里配置swagger的登录用户、密码和登录后跳转的页面

    swagger:
      path: /doc.html
      user: root
      pwd: 123456

4.3.新建 SpringSecurityConfiguration 配置类

@Configuration
@EnableWebSecurity
public class SpringSecurityConfiguration extends WebSecurityConfigurerAdapter {
    @Value("${swagger.user}")
    private String user;
    @Value("${swagger.pwd}")
    private String pwd;
    /**
     * 存放了Swagger需要加入Spring Security认证的URL
     */
    private static final String[] AUTH_LIST = {
            "/v2/api-docs",
            "/configuration/ui",
            "/swagger-resources/**",
            "/configuration/security",
            "swagger-ui.html",
            "/doc.html",
            "/webjars/**"
    };
    /**
     * 让Spring Security接管Swagger认证授权的核心是configure(HttpSecurity http)方法
     * @param auth
     * @throws Exception
     */
    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.inMemoryAuthentication()
                .passwordEncoder(passwordEncoder())
                .withUser(user)
                .password(passwordEncoder().encode(pwd))
                .roles("USER");
    }
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
                .antMatchers(AUTH_LIST)
                .authenticated()
                .and()
                .formLogin()
                .and()
                .httpBasic();
        http.csrf().disable()
                .authorizeRequests()
                .antMatchers("/**").permitAll()
                .anyRequest()
                .authenticated().and().httpBasic();
    }
    @Bean
    public PasswordEncoder passwordEncoder(){
        return new BCryptPasswordEncoder();
    }
}

4.4.再访问就是下面这个样子(访问时加载可能会有点慢)  访问地址: http://ip:端口/doc.html

swagger-bootstrap-ui实现及配置请求头参数
yushun的博客
11-20 1382
接口文档编写之前一直使用的就是原生的swagger2界面不是很友好,看上去非常的繁琐字段也是非常的多对于我这种强迫症重度患者是绝对不能忍的 swagger-bootstrap-ui的出现彻底拯救了我,先看效果: Swagger2 实现 import com.github.xiaoymin.knife4j.spring.annotations.EnableSwaggerBootstrapUi; import io.swagger.annotations.ApiOperation; import sprin
springboot 整合 swagger2 配置账号密码登录 demo代码
闲走天涯的博客
08-05 7495
一、pom文件引入swagger依赖 <!-- swagger2-restful接口测试 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version>
SpringBoot SwaggerUi 进行登录访问配置用户名密码
一起记录GIS学习
03-25 1万+
添加成功入下图所示: 在pom中引入jar <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> 然后在yml文件中进行配置spring: security: basic: path: /
Swagger2快速使用手册(SpringBoot 2.6环境)
最新发布
maohe的博客
07-30 622
Swagger快速上手指南。
SpringBoot - 集成Swagger2、Knife4j接口文档/升级版swagger-bootstrap-ui配置以及账号密码登录
Mr_Chp的博客
05-30 4293
Swagger UI添加登录权限
Swagger配置完成以后,登录账户名和密码设置
usersaa的博客
03-03 1万+
spring boot整个swagger 时启动项目时的 登录
swagger-bootstrap-ui-1.9.6-API文档-中文版.zip
07-13
赠送jar包:swagger-bootstrap-ui-1.9.6.jar; 赠送原API文档:swagger-bootstrap-ui-1.9.6-javadoc.jar; 赠送源代码:swagger-bootstrap-ui-1.9.6-sources.jar; 赠送Maven依赖信息文件:swagger-bootstrap-ui-...
SpringBoot集成Swagger-Bootstrap-UI
Java
01-12 2849
SpringBoot集成Swagger-Bootstrap-UI
springboot整合swagger2 (swagger-bootstrap-ui)
小艾的未解之谜
05-19 1万+
1. springboot整个swagger2 步骤: 第一步导入依赖: <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0</version> </dependency> <depen
111-springboot-demo-swagger-v2-bootstrap-ui.rar
03-07
从上述 Swagger 定义我们不难看出 Swagger 有以下 3 个重要的作用:将项目中所有的接口展现在页面上,这样后端程序员就不需要专门为前端使用者编写专门的接口文档;当接口更新之后,只需要修改代码中的 Swagger 描述...
SpringBoot [ 5.集成Swagger-Bootstrap-UI]
馒头的博客
06-21 3878
SpringBoot [ 4.集成Swagger-Bootstrap-UI] - 目录 文章目录1.引入依赖 首先Swagger它是一个API文档工具,可以通过各种注解生成接口文档,Model文档,但是我在使用Swagger的时候,觉得实用性并不高,一个机会接触到了基于Swagger开发的Swagger-Bootstrap-UI,觉得很好用; 这款工具对我们公司的开发帮助还挺大,我们后端人员经常...
SpringBoot swagger 配置账号密码
热门推荐
赵先森
09-18 4万+
生产环境下springbootswagger 配置账号密码 &amp;amp;lt;!-- 鉴权 --&amp;amp;gt; &amp;amp;lt;dependency&amp;amp;gt; &amp;amp;lt;groupId&amp;amp;gt;org.springframework.boot&amp;amp;lt;/groupId&amp;amp;gt;
swagger添加访问密码
zlfjavahome的专栏
06-28 4954
swagger添加访问密码
Swagger-boostrap-ui 配置用户名密码访问
chengmin123456789的博客
09-01 6307
1、配置文件书写 swagger: production: false basic: enable: true username: XX password: XXX 2、Swagger配置 @Configuration @EnableSwagger2 @EnableSwaggerBootstrapUI public class Swagger2 { private String basePackage="com.XXX"; private .
Springboot - 配置Swagger2登录密码
qq_36782325的博客
09-30 1万+
配置Swagger,并设置登录密码
java:springboot1.x/springboot2.x配置swagger2登录密码/设置swagger访问权限
smm的博客
04-12 1万+
java:springboot1.x/springboot2.x配置swagger2登录密码/设置swagger访问权限
swagger文档添加账号密码
mmdsl083的博客
06-26 1096
https://blog.csdn.net/qq_36090537/article/details/127789962
swagger配置及升级版swagger-bootstrap-ui配置+访问账号密码登录限制
weixin_43568232的博客
10-21 7470
本文主要介绍swagger-ui及加强版swagger-bootstrap-ui配置 一:普通swagger-ui配置 1:pom添加依赖 <!--swagger--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId>
SpringBoot整合Swagger-Bootstrap-UI实现接口文档
"本文档介绍了如何在Spring Boot项目集成Swagger-Bootstrap-UI,这是一个用于生成接口文档的前端框架。Swagger-Bootstrap-UISwagger的一个美化版本,提供了更友好的界面和更多的定制选项。" 在Spring Boot应用...
写文章

热门文章

  • springboot 获取访问者的ip地址、访问设备信息、城市地址信息 21379
  • 电脑开机遇到二维码怎么办? 6899
  • 怎么在cmd 窗口 远程连接服务器 6583
  • 项目出现:无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri 4802
  • Java 如何隐藏字段不让返回 3935

分类专栏

  • SpringCloud 1篇
  • springboot 17篇
  • Windows 4篇
  • Linux 9篇
  • MongoDB 1篇
  • uniapp 2篇
  • 多数据源 3篇
  • 二维码生成 1篇
  • 文档操作 4篇
  • Hibernate 1篇
  • ZooKeeper 1篇
  • 数据库 2篇
  • Quartz 2篇
  • Nginx 5篇
  • Git 2篇
  • activiti 1篇
  • 小细节 4篇
  • 前端 10篇
  • 网站获取访问者信息 1篇
  • JMail 1篇
  • 数据结构和算法 22篇
  • RabbitMQ 1篇
  • JavaWeb表单提交防重复 1篇
  • Oracle 10篇

最新评论

  • 将vue 项目build 放入tomcat 静态资源访问不到的问题

    weixin_46683832: 不是脚手架项目。没有js怎么办

  • Linux 挂载磁盘到指定目录

    只要我跑得够快就不会加班: lsblk 或者blkid 查看硬盘信息,选择id或路径挂载硬盘,显示磁盘类型,这种方法严谨些表情包我觉得

  • element-ui 中autofocus失效问题

    不依法度: :plain="!判断是否选中的语句”

  • idea xml右键没有Diagrams

    華灯: 你就是我的神

  • springboot 获取访问者的ip地址、访问设备信息、城市地址信息

    电竞丶小松哥: 腾讯服务 免费用吗

最新文章

  • openfegin怎么实现模块互访鉴权
  • Spring 常见设计模式
  • windows 构建nginx本地服务随系统自启
2024年3篇
2023年3篇
2022年5篇
2021年25篇
2020年51篇
2019年15篇

目录

目录

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@insist123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家景区玻璃钢雕塑制作厂家玻璃钢维尼熊雕塑摆件孝感玻璃钢雕塑厂山西玻璃钢广场雕塑西安制作玻璃钢雕塑厂家气球商场美陈装饰联系电话长治玻璃钢雕塑价格汕尾广场玻璃钢雕塑酒店玻璃钢雕塑制作乌龟玻璃钢雕塑伊春人物玻璃钢雕塑安装长春玻璃钢雕塑定制河北走廊商场美陈市场价洛阳校园玻璃钢雕塑生产宁夏玻璃钢广场雕塑定制岳阳玻璃钢雕塑博物馆玻璃钢雕塑施工人才玻璃钢雕塑工江西玻璃钢雕塑厂家性价比出众长沙动物玻璃钢雕塑厂家开业商场美陈批发价郑州大型校园玻璃钢雕塑定制青岛人物玻璃钢雕塑厂家镇江玻璃钢古铜雕塑管庄商场美陈哪家公司好丹阳商场美陈制作保定玻璃钢抽象雕塑玻璃钢雕塑厂联系方式山西仿铜玻璃钢雕塑方法镂空玻璃钢彩绘雕塑设计香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化