完整调试 security oauth2 swagger2的过程

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 完整调试 security oauth2 swagger2的过程

在OAuthServerConfig.java里下面的配置,第一个是把token相关信息保存在redis里,下面一个是把相关token保存在mysql里

@Bean
    public TokenStore tokenStore() {
        return new RedisTokenStore(redisConnectionFactory);
    }
   /*
    @Bean
    public TokenStore tokenStore() {
        return new JdbcTokenStore(dataSource);
    }*/

es_member  表里的member_name对应用户,通过这个不同的用户与密码来获得token

oauth_client_details  这个是 认证参数 ,以后可以不同的企业有不同的client_id与相关参数

 

相应的token是保存在redis

对于密码password模式的话,postman只要下面就可以了,这里用户或密码包括client都可以不同

authorization要No Auth

postman里用post提交这个也一样

http://localhost:8080/oauth/token?username=nbacheng&password=111111&client_id=app&client_secret=1&grant_type=password

在通过上面的token获得相关api操作

命令方式如下

curl -i -X POST -d "username=nbacheng&password=111111&grant_type=password&client_id=app&client_secret=1" http://localhost:8080/oauth/token
curl -i http://localhost:8080/api/protect/getUserList -H "Authorization: Bearer 729b1d11-d537-4c49-a445-193c2c3205d6"

上面的根据client不同的参数,会返回不同的参数

但开始swagger-UI一直调试有问题,后来在Swagger2Config里 ,特别是下面

ticketPar.name("Authorization")  这个必须是Authorization
public Docket createRestApi() {
ParameterBuilder ticketPar = new ParameterBuilder();
List<Parameter> pars = new ArrayList<Parameter>();
ticketPar.name("Authorization").description("认证token")
.modelRef(new ModelRef("string")).parameterType("header")
.required(false).build(); //header中的ticket参数非必填,传空也可以
pars.add(ticketPar.build());    //根据每个方法名也知道当前方法在设置什么参数
return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
.apis(RequestHandlerSelectors.basePackage("com.birdsh.lqy")).paths(PathSelectors.any())
.build()
.globalOperationParameters(pars);
    }

上面同时在所有api里都加上token参数了

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
5天前
|
安全 Java Spring
如何在调试开发阶段,在已经配置了springsecurity的情况下还能使用swagger或者knife4j
如何在调试开发阶段,在已经配置了springsecurity的情况下还能使用swagger或者knife4j
24 0
|
10月前
|
前端开发 数据可视化 安全
Spring Boot + vue-element 开发个人博客项目实战教程(十、调试、密码加密和Swagger接口文档)(下)
Spring Boot + vue-element 开发个人博客项目实战教程(十、调试、密码加密和Swagger接口文档)(下)
120 0
|
10月前
|
存储 SQL Java
Spring Boot + vue-element 开发个人博客项目实战教程(十、调试、密码加密和Swagger接口文档)(上)
Spring Boot + vue-element 开发个人博客项目实战教程(十、调试、密码加密和Swagger接口文档)(上)
69 1
|
5天前
|
Java API Spring
【一】springboot整合swagger
【一】springboot整合swagger
34 0
|
5天前
|
Java API Spring
Swagger使用-Spring Boot整合Swagger
Swagger使用-Spring Boot整合Swagger
50 0
|
5天前
|
XML Java 测试技术
【二】springboot整合自定义swagger
【二】springboot整合自定义swagger
26 0
|
5天前
|
Java Spring
Spring Boot3整合knife4j(swagger3)
Spring Boot3整合knife4j(swagger3)
317 1
|
5天前
|
Java API
SpringBoot 整合swagger3.X
SpringBoot 整合swagger3.X
|
5天前
|
Java API
SpringBoot中的Swagger2如何使用?
SpringBoot中的Swagger2如何使用?
26 1