swagger2如何集成OAuth2
发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,swagger2如何集成OAuth2,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。GitHub地址码云地址swagger是一款优雅的接口
千家信息网最后更新 2025年02月03日swagger2如何集成OAuth2
swagger2如何集成OAuth2,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
GitHub地址
码云地址
swagger是一款优雅的接口api展示工具,在这里我们具体不展开讲解,有兴趣的自行百度。 该篇文章主要讲解的是如何集成OAuth3的验证即在请求中添加token,验证接口是否具有权限。
方式一:在每个请求上加一个Authorization 窗口自己手动输入token:
/** * @Description Swagger api 配置 * @Author wwz * @Date 2019/08/05 */@Configuration@EnableSwagger2public class SwaggerConfig2 { @Value("${swagger.is.enable}") private boolean SWAGGER_IS_ENABLE; //是否激活开关,在application.yml中配置注入 @Bean public Docket docket() { //添加head参数配置start ParameterBuilder tokenPar = new ParameterBuilder(); Listpars = new ArrayList<>(); tokenPar.name("Authorization").description("令牌").modelRef(new ModelRef("string")).parameterType("header").required(false).build(); pars.add(tokenPar.build()); return new Docket(DocumentationType.SWAGGER_2) .enable(SWAGGER_IS_ENABLE) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("com.wwz.frame.controller")) .paths(PathSelectors.any()) .build() .globalOperationParameters(pars);//注意这里; } private ApiInfo apiInfo() { return new ApiInfoBuilder() // 页面标题 .title("OAuth3权限管理API文档") .contact(new Contact("wwz", "", "wwzwtf@qq.com")) .description("OAuth3维护文档") .version("1.0") .extensions(Collections.emptyList()) .build(); }}
效果截图:
方式二:配置application.yml文件 设置好token登录的地址,是否启用swagger,新建配置文件
/** * @Description Swagger api 配置 模式二:增加登录 * @Author wwz * @Date 2019/08/05 */@Configuration@EnableSwagger2public class SwaggerConfig { @Value("${swagger.is.enable}") private boolean SWAGGER_IS_ENABLE; //是否激活开关,在application.yml中配置注入 @Value("${swagger.auth.server}") private String AUTH_SERVER; @Value("${swagger.service.name}") private String SERVICE_NAME; @Bean public Docket docket() { return new Docket(DocumentationType.SWAGGER_2) .enable(SWAGGER_IS_ENABLE) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("com.wwz.frame.controller")) .paths(PathSelectors.any()) .build()// .pathMapping(SERVICE_NAME) .securitySchemes(Collections.singletonList(securityScheme())) .securityContexts(Collections.singletonList(securityContext())); } private ApiInfo apiInfo() { return new ApiInfoBuilder() // 页面标题 .title("OAuth3权限管理API文档") .contact(new Contact("wwz", "", "wwzwtf@qq.com")) .description("OAuth3维护文档") .version("1.0") .extensions(Collections.emptyList()) .build(); } /** * 这个类决定了你使用哪种认证方式,我这里使用密码模式 */ private SecurityScheme securityScheme() { GrantType grantType = new ResourceOwnerPasswordCredentialsGrant(AUTH_SERVER); return new OAuthBuilder() .name("OAuth3") .grantTypes(Collections.singletonList(grantType)) .scopes(Arrays.asList(scopes())) .build(); } /** * 这里设置 swagger2 认证的安全上下文 */ private SecurityContext securityContext() { return SecurityContext.builder() .securityReferences(Collections.singletonList(new SecurityReference("OAuth3", scopes()))) .forPaths(PathSelectors.any()) .build(); } /** * 这里是写允许认证的scope */ private AuthorizationScope[] scopes() { return new AuthorizationScope[]{ }; }}
在MySecurityResourceServerConfig 放行swagger相关。
界面截图:
登录截图:
测试:
swagger 整合OAuth2完成。
看完上述内容,你们掌握swagger2如何集成OAuth2的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
配置
文档
地址
截图
方式
权限
登录
认证
内容
接口
文件
方法
更多
标题
模式
激活
篇文章
问题
页面
管理
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
调取相关证据的数据库专有名词
日本学习网络安全
网络安全大赛的好句
小学生 网络安全教育 课件
数据库创建事物的一般过程
球球大作战服务器怎么隐藏地区
海信软件开发工资待遇
河北智旦网络技术有限公司
网络安全产品的行为管理
文明重启什么服务器有徽章
软件开发领导面试的技巧
电脑网络安全检查记录表
查询数据库中的信息
租赁服务器骗
云南灵鹭天行互联网科技
外币兑换 软件开发
美颜特效制作软件开发
洛阳中创网络技术
立讯精密的服务器
数据库数字能直接拷贝
wcf 服务器配置
服务器上的机械硬盘识别不到
信息网络安全的核心是什么
安徽网络安全工程师简单易学
统计局网络安全的必要性
北京做网络安全的公司 杨
广州爱浦路网络技术公司去
中兴数据库国内案例
洋葱服务器
为什么主题商店老是服务器繁忙