java 网关日十万,JAVA网关鉴权后下游统一filter获取用户信息

1. 场景描述

最近有点忙,在弄微服务nacos+springcloud gateway这块工作,以前只是简单应用,这次因为要对接10几个系统或者平台,还的鉴权,等后续稍微闲点了,把这块东西总结下。

刚好要写个文档,就一起发出来,场景是其他系统,gateway中鉴权成功后(过来的是加密token),会将个人信息信息会写到header中,比如手机号、姓名、部门等,为了方便下游系统获取信息,让写一个统一的filter,下游只需注入这个filter就能拿到用户信息,避免大家都的反复解析,还容易出错。

gav:

com.raunjianlaowang.gateway

ruanjianlaowang_gateway_filter

1.0.0

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 urlPatterns = new ArrayList();

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值