jackzhan
V2EX  ›  Java

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

  •  
  •   jackzhan · Jun 6, 2019 · 3824 views
    This topic created in 2551 days ago, the information mentioned may be changed or developed.

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

    使用的是 SpringCloud

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

    14 replies    2019-06-06 13:48:44 +08:00
    soupu626
        1
    soupu626  
       Jun 6, 2019
    为啥不在拦截器里设线程变量呢
    jackzhan
        2
    jackzhan  
    OP
       Jun 6, 2019
    @soupu626 没这样做过。。去查查文档
    Reso1mi
        3
    Reso1mi  
       Jun 6, 2019 via Android   ❤️ 1
    实现 WebMvcConfigurer 接口,重写 addArgumentResolvers?
    jackzhan
        4
    jackzhan  
    OP
       Jun 6, 2019
    @Shaw314 我去看看这个方法
    midkingking
        5
    midkingking  
       Jun 6, 2019   ❤️ 1
    addArgumentResolvers
    FleyX
        6
    FleyX  
       Jun 6, 2019
    在拦截器或者过滤器里处理,取到 token,根据 token 从 redis 查用户信息,然后放到 threadlocal 里,这样只要在这个线程上运行的代码都能方便的获取到。
    whp1473
        7
    whp1473  
       Jun 6, 2019
    使用拦截器可以做,可以再请求时拦截该请求,解析当中的 token,然后获取 redis 中信息,创建一个 CurrentMember,放入 ThreadLoacl,以及在执行 hander(反射执行方法)时将 CurrentMember 传入第二个参数
    zhuzhiqiang
        8
    zhuzhiqiang  
       Jun 6, 2019
    自定义注解 在 AOP 环绕通知中检测解析注解 根据注解信息 把切点方法的 args[n] 赋值自定义值
    qinxi
        9
    qinxi  
       Jun 6, 2019   ❤️ 1
    你这个有现成的轮子 叫 spring-session-data-redis
    jackzhan
        10
    jackzhan  
    OP
       Jun 6, 2019
    获取当前访问 RequestMapping,怎么去获取呀
    EastLord
        11
    EastLord  
       Jun 6, 2019
    SecurityContext?
    ztlong
        12
    ztlong  
       Jun 6, 2019
    HttpServletRequestWrapper 重写 getParameterValues,搭配 Filter 就可以实现你要的能力
    hosaos
        13
    hosaos  
       Jun 6, 2019
    拦截器+ThreadLocal
    kevinWHX
        14
    kevinWHX  
       Jun 6, 2019   ❤️ 1
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   860 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 19:26 · PVG 03:26 · LAX 12:26 · JFK 15:26
    ♥ Do have faith in what you're doing.