swagger设置使用及自定义安全方案securitySchemes
1.导入swagger依赖这里使用的是springfox-boot-starter,同时导入knife4j插件(不导入也行,导入可以方便接口调试)。
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
接下来编写swagger设置类
@Configuration
@EnableOpenApi
@EnableKnife4j
public class Knife4jConfig {
@Bean
public Docket defaultApi2() {
return new Docket(DocumentationType.OAS_30)
.apiInfo(apiInfo())
//分组名称
// .groupName("2.X版本")
.select()
//这里指定Controller扫描包路径
.apis(RequestHandlerSelectors.basePackage(""))
.paths(PathSelectors.any())
.build()
.securitySchemes(securitySchemes())
.securityContexts(securityContexts());
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("项目名称")
.version("1.0")
.build();
}
private List<SecurityScheme> securitySchemes() {
List<SecurityScheme> securitySchemeList = new ArrayList<>();
securitySchemeList.add(new HttpAuthenticationScheme("Authorization",
"JWT授权(数据将在请求头中进行传递)直接在下面框中输入token",
"http",
"Bearer",
"JWT",
new ArrayList<>()
));
return securitySchemeList;
}
//过滤不需要进行验证的页面
private List<SecurityContext> securityContexts() {
List<SecurityContext> securityContexts = new ArrayList<>();
securityContexts.add(
SecurityContext.builder()
.securityReferences(defaultAuth())
//这些接口不用提供token即可访问。
.forPaths(PathSelectors.regex("^(?!/employee/login).*$"))
.forPaths(PathSelectors.regex("^(?!/identifyImageBase64).*$"))
.build());
return securityContexts;
}
//全局的token配置
private List<SecurityReference> defaultAuth() {
List<SecurityReference> securityReferences = new ArrayList<>();
securityReferences.add(new SecurityReference("Authorization", new AuthorizationScope));
return securityReferences;
}
}
在swagger文档中效果如下
https://i-blog.csdnimg.cn/blog_migrate/1f9c69dff275e49b07cc192be029dfab.png
在/swagger-ui/index.html#/中可以全局设置token,并主动过滤不需要token的接口
https://i-blog.csdnimg.cn/blog_migrate/f8f4531fcc3dcfe7dc2411e9ac134f35.png
在knife4j文档中也可以实现设置全局token
https://i-blog.csdnimg.cn/blog_migrate/e4853abbff45e7f511243f83521d6c20.png
结束。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]