springboot 添加请求头(swagger token认证)


springboot 添加请求头(swagger token认证)

应用:添加全局的token,避免每次都需要携带token访问接口

*********************************

示例

*********************

config 层

Swagger2Config

@Configuration
@EnableSwagger2
public class Swagger2Config {

    @Bean
    public Docket initDocket(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(initApiInfo())
                .securitySchemes(securitySchemes())
                .securityContexts(securityContexts())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))
                .paths(PathSelectors.regex("^(?!auth).*$"))
                .build();

    }

    private ApiInfo initApiInfo(){
        return new ApiInfoBuilder()
                .title("构建 swagger2")
                .description("接口测试")
                .termsOfServiceUrl("http://www.baidu.com")
                .version("v1.0")
                .build();
    }

    public List<ApiKey> securitySchemes(){
        List<ApiKey> apiKeys=new ArrayList<>();
        apiKeys.add(new ApiKey("oauth2 认证","Authorization","header"));

        return apiKeys;
    }

    public List<SecurityContext> securityContexts(){
        List<SecurityContext> securityContexts=new ArrayList<>();
        securityContexts.add(SecurityContext.builder()
                .securityReferences(securityReferences())
                .forPaths(PathSelectors.any()).build());

        return securityContexts;
    }

    public List<SecurityReference> securityReferences(){
        AuthorizationScope[] authorizationScopes=new AuthorizationScope[1];
        authorizationScopes[0]=new AuthorizationScope("global","accessEverything");

        List<SecurityReference> securityReferences=new ArrayList<>();
        securityReferences.add(new SecurityReference("Authorization",authorizationScopes));

        return securityReferences;
    }
}

*************************

使用测试

http://localhost:8080/swagger-ui.html

      

      

说明:使用oauth2认证时,在value中输入bearer token值即可对接口进行测试

发布了387 篇原创文章 · 获赞 98 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_43931625/article/details/105028390