• 网关鉴权后下游统一filter获取用户信息


    1. 场景描述

    最近有点忙,在弄微服务nacos+springcloud gateway这块工作,以前只是简单应用,这次因为要对接10几个系统或者平台,还的鉴权,等后续稍微闲点了,把这块东西总结下。
    刚好要写个文档,就一起发出来,场景是其他系统,gateway中鉴权成功后(过来的是加密token),会将个人信息信息会写到header中,比如手机号、姓名、部门等,为了方便下游系统获取信息,让写一个统一的filter,下游只需注入这个filter就能拿到用户信息,避免大家都的反复解析,还容易出错。

    gav:

          <dependency>
                <groupId>com.raunjianlaowang.gateway</groupId>
                <artifactId>ruanjianlaowang_gateway_filter</artifactId>
                <version>1.0.0</version>
            </dependency>
    

    2. 使用规则

    (1) 业务或下游系统注入这个GateWayFilter

    /**
     * 只需要@bean就可以了,也可以放到其他地方,注入。
     * @auther: 软件老王
     */
    public class Application {
        public static void main(String[] args) {
            SpringApplication.run(Application.class, args) ;
        }
        @Bean
        public FilterRegistrationBean filterRegistrationBean() {
            FilterRegistrationBean registrationBean = new FilterRegistrationBean();
            GateWayFilter gwAuthFilter = new GateWayFilter();
            registrationBean.setFilter(gwAuthFilter);
            List<String> urlPatterns = new ArrayList<String>();
            urlPatterns.add("/*");
            registrationBean.setUrlPatterns(urlPatterns);
            return registrationBean;
        }
    }
    

    (2)实体类,只需继承Param类即可:

    /**
     *实体类,只需继承param类(网关提供)即可
     * @auther: 软件老王
     */
    public class AppParam extends Param {
    
    }
    

    (3)在controller中就通过AppParam接,里面就有值了。

    /**
     * controller类,用户信息已经存在request中了,请求的时候用AppParam就能自动注入数据了。
     * @auther: 软件老王
     */
        @RequestMapping
        @ResponseBody
        public VO home(AppParam appParam) {
            return  new VO("111","11111","22222");
        }
    

    I’m 「软件老王」,如果觉得还可以的话,关注下呗,后续更新秒知!欢迎讨论区、同名公众号留言交流!

  • 相关阅读:
    C基础之移位操作
    实现itoa()
    Python的time模块的clock方法在不同平台的效果不同
    __stdcall与__cdecl之区别浅析及相关知识
    Python 字典 dictionary changed size during iteration
    Windows下printf输出long long类型
    inotify也会爆棚
    一条对“失控的腾讯帝国:企鹅无法把控手机市场”的评论
    imfunny程序员的增量发展
    程序员第一定律:关于技能和收入
  • 原文地址:https://www.cnblogs.com/ruanjianlaowang/p/11605826.html
Copyright © 2020-2023  润新知