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

原文地址:https://www.cnblogs.com/ruanjianlaowang/p/11605826.html

时间: 2024-11-08 13:18:02

网关鉴权后下游统一filter获取用户信息的相关文章

[微信开发] - weixin4j获取网页授权后的code进而获取用户信息

weixin4j封装好的SnsComponent组件中的方法可以执行该步骤 WeixinUserInfoController : package com.baigehuidi.demo.controller; import com.baigehuidi.demo.loader.WeixinInsLoader; import com.baigehuidi.demo.weixin4j.WeixinException; import com.baigehuidi.demo.weixin4j.model

微信端获取用户信息(思路)

微信公众号越来越多,对于我们程序员来说,也越来越需要了解微信端接口开发,下面是微信用户进入公众号后,公众号获取用户信息的思路. 当然了,我有代码,这里就只贴一点,主要的还是流程和查阅微信开发文档. appid和secret是登录微信公众号里面设置的,固定的,code是微信用户同意协议返回给前端的code,后台通过这三个参数,访问url获取openid和access_token,然后再根据url访问微信接口获取用户信息. 代码: 1 String requestUrl = "https://api

iOS开发项目篇—34获取用户信息

iOS开发项目篇—34获取用户信息 一.简单说明 需求:获取当前用户的昵称 ,需要获取当前登录用户的个人信息. 查看接口 要求传递的参数 这里要获取的时用户的昵称(所以使用用户id作为参数传入) 二.实现代码 1 - (void)viewDidLoad 2 { 3 [super viewDidLoad]; 4 5 //设置导航栏内容 6 [self setupNavBar]; 7 8 //集成刷新控件 9 [self setupRefresh]; 10 11 //设置用户的昵称为标题 12 [s

微信关注公众号以及获取用户信息

1.公众号获取用户信息 /// <summary> /// 获取用户基本信息(包括UnionID机制) /// 注意:如果开发者有在多个公众号,或在公众号.移动应用之间统一用户帐号的需求,需要前往微信开放平台(open.weixin.qq.com)绑定公众号后,才可利用UnionID机制来满足上述需求. /// </summary> /// <param name="access_token"></param> /// <param

微信企业号 获取用户信息

业务操作最基础的一个功能是获取访客的身份,传统的获取方式是提供一个登录页面用以访客登录. 在微信企业号中,用户在微信中访问页面时,可以根据相关API获取此用户的微信账号信息,以此来匹配业务服务器存储的相关用户信息. 目录 1.  介绍 2.  代码示例 1. 介绍 1.1 说明 企业号的网页开发,说白了就是移动端web开发,特殊点在于如何获取微信用户的身份信息. 在企业号中可以进行如下步骤获取微信用户信息: 访问一个业务页面时,可通过OAuth验证接口获取此用户信息 → 根据code获取user

Android之QQ授权登录获取用户信息

有时候我们开发的app须要方便用户简单登录.能够让用户使用自己的qq.微信.微博登录到我们自己开发的app. 今天就在这里总结一下怎样在自己的app中集成QQ授权登录获取用户信息的功能. 首先我们打开腾讯开发平台这个网页,点击---->移动应用---->创建应用,成功创建应用后.能够产生我们须要的App ID和App Key,例如以下图所看到的: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmVhcl9odWFuZ3poZW4=/font/5a6

微信获取用户信息

1 <?php 2 3 4 /********************************* 5 * 微信相关工具类 **********************************/ 9 class wechat_util{ 10 const WC_APPID = ''; //微信公众号身份的唯一标识.审核通过后,在微信发送的邮件中查看 11 const WC_APP_SECRET = '';//JSAPI接口中获取openid,审核后在公众平台开启开发模式后可查看 12 /** 13

微信快速开发框架V2.3--增加语音识别及网页获取用户信息(八),代码已更新至Github

不知不觉,版本以每周更新一次的脚步进行着,接下来应该是重构我的代码及框架的结构,有朋友反应代码有点乱,确实如此,当时写的时候只是按照订阅号来写的,后来才慢慢增加到支持API接口.目前还在开发第三方微信平台,旨在使用户能够无需自己开发就能简易搭建微信平台. 更新内容 1.增加支持语音识别 2.增加"网页授权获取用户基本信息" 语音识别其实是对Voice信息的一个扩展,您必须启用语音识别功能,启用后会在VoiceMessage中增加一个Recongnition字段,我们可以判断这个字段的内

微信公众号获取用户信息致跳过的坑

有一段时间没有搞微信开发了 ,今天突然要改一下程序! 回头一看 微信的帮助文档太tm的稀烂的,太难懂了,这做个笔记以后看着方便 微信有2个ACCESS_TOKEN, 1,基础接口的token 获取接口是 https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET 2,用户网页授权access_token 获取接口地址是 https://api.weixin