代码先锋网 代码片段及技术文章聚合

Springboot整合swagger,以及开启环境、账号权限验证访问

技术标签: spring boot  java  swagger2

Springboot整合swagger,以及开启环境、账号权限验证访问


一、配置swagger

pom.xml:

   <!-- swagger -->
        <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>swagger-bootstrap-ui</artifactId>
            <version>1.9.6</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>

config:

@Configuration
@EnableSwagger2
@EnableSwaggerBootstrapUI//加密码 -可自选
@Profile({"dev","test"})//测试环境可访问 -可自选
public class Swagger2Config {

    /**
     * 设置swagger跨域,提供给service调用
     * @return
     */
    @Bean
    public WebMvcConfigurer crossConfigurer(){
        WebMvcConfigurer webMvcConfigurerAdapter = new WebMvcConfigurer() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("/v2/api-docs");
                registry.addMapping("/**");
            }
        };
        return webMvcConfigurerAdapter;
    }

    @Bean
    public Docket createRestApi(){
        ParameterBuilder parameterBuilder = new ParameterBuilder();
        parameterBuilder.name("x-access-token").description("令牌")
                .name("languageCode").description("语言")
                .name("Authorization").description("token令牌")
                .modelRef(new ModelRef("string")).parameterType("header").required(false).build();
        ArrayList<Parameter> objects = new ArrayList<>();
        objects.add(parameterBuilder.build());
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                //基础扫描包路径
                .apis(RequestHandlerSelectors.basePackage("com.xxx.controller"))
                .paths(PathSelectors.any())
                .build()
                .globalOperationParameters(objects)
                .apiInfo(apiInfo());
    }


    private ApiInfo apiInfo(){
        return new ApiInfoBuilder()
                .title("java")
                .description("java项目打包成docker images并运行")
                .version("1.0.0")
                .build();
    }

    private CorsConfiguration buildConfig() {
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        // 1允许任何域名使用
        corsConfiguration.addAllowedOrigin("*");
        // 2允许任何头
        corsConfiguration.addAllowedHeader("*");
        // 3允许任何方法(post、get等)
        corsConfiguration.addAllowedMethod("*");
        return corsConfiguration;
    }

    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", buildConfig());
        return new CorsFilter(source);
    }

}

不要忘记修改基础扫描包路径

apis(RequestHandlerSelectors.basePackage("自己路径"))

当我们使用swagger,进行接口测试,担心暴露接口不安全时:

二、使用步骤

1.环境权限配置

Swagger2Config 中添加注解
对swagger文档配置只在测试环境可访问,生产环境不可访问。:

@Profile({"dev","test"})

2.账户权限配置

配置yml文件
在1.9.0版本时,针对Swagger的资源接口,SwaggerBootstrapUi提供了简单的Basic认证功能。

swagger:
  production: false
  basic:
    enable: true
    username: admin
    password: 123456

版权声明:本文为weixin_45248225原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45248225/article/details/123111769

智能推荐

day02-Swagger2整合springboot以及简单使用

测试环境:基于 springboot 环境下的 web项目 关于配置swagger 1.添加依赖 2.创建swagger2配置文件 如何使用swagger? 很傻瓜式的操作,在以下几个地方添加注解 @Api("讲师管理") Controller类上,主要属性有①tags(标签)②hidden(是否隐藏)③value④authorization等等 @ApiOperation(&...

springboot 整合 swagger 以及 创建自动配置的jar包

引入相应的jar包 写一个swagger的配置类 编写对应的Controller 如果真正的项目编写还需要将swagger的地址设置成无须安全校验即可访问。 父工程配置类 父工程配置类之所以能够生效是因为目录结构与子工程相同,因此在执行ComponentScan时会识别到启动类同目录下或其子类下的配置类。 组件jar包引入使用解决方案 友好度从高到低排序 springboot 主动发现,配置一个r...

验证权限是否开启

1,音乐库访问权限 有两种方式: 注意第一次要获取音乐的权限和数据时,要通过block的形式返回数据。因为如果没有弹出过系统的权限提示框,直接去请求数据,会弹出提示框,但提示框不是同步的,是异步的,数据已经返回了空。 所以,在获取数据前需要通过下列方式获取权限: 这样数据的返回形式需要用block方式返回。 另一种方式是进入引用后就去请求权限,在使用的地方直接判断是否有权限即可。...

Springboot整合swagger

1.添加Maven依赖 2.Swagger2Config配置 3.Controller源码 4.打不同环境的包 5.swagger文档地址 源码 https://gitee.com/jsjack_wang/springboot-demo dev-swagger分支...

springboot+swagger整合

springboot+swagger整合 为什么用swagger 为什么要用swagger,要从现在我们项目中遇到的痛点出发,目前都是前后端分离,后端同学提供api给前端同学调用,但是代码改动后api文档更新不及时,文档也可能出现错误,所以希望有个工具可以在后端写好api后自动生成api文档,swagger就是这样的工具。 pom中加入依赖 添加swaggerconfig controller中增...

猜你喜欢

springboot整合Swagger

Swagger简介 1、认识Swagger Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。 作用: Swagger是一组开源项目,其中主要要项目如下: Swagger-tools:提供各种与Swagger进...

springboot整合Swagger

添加maven依赖 添加swagger配置类 Swagger-ui的坑-接口无法展开 转载于:https://www.jianshu.com/p/f05c45a2baa3...

SpringBoot整合swagger

SpringBoot+Swagger 1. 先创建一个maven项目 在pom.xml中引入SpringBoot和swagger的依赖 2. 然后再创建一个启动类 注意主方法上的@EnableSwagger2 注解是启用swagger 3.然后创建对应的类 4.创建controller 5 最关键的一步 要找对swagger-UI的展示页面 我当时不知道。。。。。 注:我只是加的部分注解 有些注解...

springboot整合swagger

添加依赖 配置Swagger 访问接口文档 http://localhost/swagger-ui.html 一些问题 接口的返回的数据得足够清晰,太多干扰信息,可能会导致接口使用者无法甄别哪些是有用的数据。...