栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springboot学习(六十五) springboot中swagger3配置访问Token

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springboot学习(六十五) springboot中swagger3配置访问Token

springboot项目中配置了权限认证,需要在请求头携带Authorization,如果想使用swagger做测试,需要配置认证,swagger3.0与swagger2.x配置的方式不一样。

配置方式如下:

package com.iscas.biz.config;

import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.import;
import springfox.documentation.builders.*;
import springfox.documentation.oas.annotations.EnableOpenApi;
import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.*;
import springfox.documentation.spi.documentationType;
import springfox.documentation.spi.service.contexts.SecurityContext;
import springfox.documentation.spring.web.plugins.Docket;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;


@Configuration
@EnableOpenApi
public class Swagger3Config {
    @Value("${swagger.enable: true}")
    private boolean swaggerEnable;

    private String version = "1.0";

    @Bean
    public Docket defaultApi() {
        return new Docket(documentationType.OAS_30)
                .groupName("默认")
                .apiInfo(defaultApiInfo())
                .enable(swaggerEnable)
                .securitySchemes(List.of(tokenScheme()))
                .securityContexts(List.of(tokenContext()))
                .select()
                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                .paths(PathSelectors.any())
                .build();

    }
    private ApiInfo defaultApiInfo() {
        return new ApiInfoBuilder()
                .title("newframe-接口文档")
                .description("基于swagger3的在线接口文档,如不喜欢此风格,可尝试使用http:////doc.html")
                //服务条款网址
                .version(version)
                .build();
    }

    private HttpAuthenticationScheme tokenScheme() {
        return HttpAuthenticationScheme.JWT_BEARER_BUILDER.name("Authorization").build();
    }

    private SecurityContext tokenContext() {
        return SecurityContext.builder()
                .securityReferences(List.of(SecurityReference.builder()
                        .scopes(new AuthorizationScope[0])
                        .reference("Authorization")
                        .build()))
                .operationSelector(o -> o.requestMappingPattern().matches("/.*"))
                .build();
    }
}

其中,securitySchemes和securityContexts是认证的配置,这样配置后Authorization的value会带着Bearer ,注意一下token的认证。
swagger页面配置如下:

填入一个token

使用swagger测试

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/697444.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号