zoukankan      html  css  js  c++  java
  • 网关鉴权后下游统一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 「软件老王」,如果觉得还可以的话,关注下呗,后续更新秒知!欢迎讨论区、同名公众号留言交流!

  • 相关阅读:
    windows10环境运用SSH和SwitchySharp自由翱翔
    Windows10 Virtualization Technology虚拟化技术功能
    [转]docker 基本原理及快速入门
    通俗易懂介绍机器学习与深度学习的差别
    对于python setup.py install安装的包如何卸载
    在Ubuntu上安装boost库[转]
    word2vec相关资源
    ubuntu16.04 LTS Server 安装mysql phpmyadmin apache2 php5.6环境
    tmux配置与用法整理
    Oracle学习笔记:LOB大数据字段类型
  • 原文地址:https://www.cnblogs.com/ruanjianlaowang/p/11605826.html
Copyright © 2011-2022 走看看