想做这么一个功能,在访问接口的时候,根据 token 获取 redis 中的当前用户的信息,通过某种方式把这个用户信息注入到下面接口中的 CurrentMember 中,想请教一下这个方式应该如何来实现,获取有什么好的思路吗?

2019 年 6 月 6 日
 jackzhan

想做这么一个功能,在访问接口的时候,根据 token 获取 redis 中的当前用户的信息,通过某种方式把这个用户信息注入到下面接口中的 CurrentMember 中,想请教一下这个方式应该如何来实现,获取有什么好的思路吗

使用的是 SpringCloud

@PostMapping("/createUser")
public ResultResponse createUser(@RequestBody MemberQueryRequest request, CurrentMember member){
return memberService.createUser(request);
}

3923 次点击
所在节点    Java
14 条回复
soupu626
2019 年 6 月 6 日
为啥不在拦截器里设线程变量呢
jackzhan
2019 年 6 月 6 日
@soupu626 没这样做过。。去查查文档
Reso1mi
2019 年 6 月 6 日
实现 WebMvcConfigurer 接口,重写 addArgumentResolvers?
jackzhan
2019 年 6 月 6 日
@Shaw314 我去看看这个方法
midkingking
2019 年 6 月 6 日
addArgumentResolvers
FleyX
2019 年 6 月 6 日
在拦截器或者过滤器里处理,取到 token,根据 token 从 redis 查用户信息,然后放到 threadlocal 里,这样只要在这个线程上运行的代码都能方便的获取到。
whp1473
2019 年 6 月 6 日
使用拦截器可以做,可以再请求时拦截该请求,解析当中的 token,然后获取 redis 中信息,创建一个 CurrentMember,放入 ThreadLoacl,以及在执行 hander(反射执行方法)时将 CurrentMember 传入第二个参数
zhuzhiqiang
2019 年 6 月 6 日
自定义注解 在 AOP 环绕通知中检测解析注解 根据注解信息 把切点方法的 args[n] 赋值自定义值
qinxi
2019 年 6 月 6 日
你这个有现成的轮子 叫 spring-session-data-redis
jackzhan
2019 年 6 月 6 日
获取当前访问 RequestMapping,怎么去获取呀
EastLord
2019 年 6 月 6 日
SecurityContext?
ztlong
2019 年 6 月 6 日
HttpServletRequestWrapper 重写 getParameterValues,搭配 Filter 就可以实现你要的能力
hosaos
2019 年 6 月 6 日
拦截器+ThreadLocal
kevinWHX
2019 年 6 月 6 日

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/571367

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX