SpringCloud Gateway里怎么给请求添加header信息
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这篇文章主要讲解了"SpringCloud Gateway里怎么给请求添加header信息",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"SpringC
千家信息网最后更新 2025年12月03日SpringCloud Gateway里怎么给请求添加header信息
这篇文章主要讲解了"SpringCloud Gateway里怎么给请求添加header信息",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"SpringCloud Gateway里怎么给请求添加header信息"吧!
import java.io.UnsupportedEncodingException;import java.net.URLEncoder;import org.springframework.cloud.gateway.filter.GatewayFilterChain;import org.springframework.cloud.gateway.filter.GlobalFilter;import org.springframework.http.server.reactive.ServerHttpRequest;import org.springframework.security.core.context.ReactiveSecurityContextHolder;import org.springframework.security.core.context.SecurityContext;import org.springframework.stereotype.Component;import org.springframework.util.StringUtils;import org.springframework.web.server.ServerWebExchange;import reactor.core.publisher.Mono;@Componentpublic class WebFluxUserRequestInfoFilter implements GlobalFilter { private static final String ORG_CODE = "11000001"; private static final String CHANNEL_CODE = "WEBQHZX001"; private static final String HEADER_USER_INFO_ENCODE = "X-User-Info-Encode"; @Override public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) { return ReactiveSecurityContextHolder.getContext().map(SecurityContext::getAuthentication).map(authentication -> { UserRequestInfo userInfo = new UserRequestInfo(); Object details = authentication.getDetails(); if(details instanceof JWTPlayload){ JWTPlayload jwtPlayload = (JWTPlayload) details; String userId = jwtPlayload.getSub(); userInfo.setUserId(userId); userInfo.setUserName(jwtPlayload.getCname()); } return userInfo; }).defaultIfEmpty(new UserRequestInfo()).flatMap(userInfo -> { UserRequestInfoHolder.setInstance(userInfo); String userInfoJson; try { String userInfoEncode = exchange.getRequest().getHeaders().getFirst(HEADER_USER_INFO_ENCODE); if(!StringUtils.isEmpty(userInfoEncode) && "false".equalsIgnoreCase(userInfoEncode)){ userInfoJson = JsonUtils.object2Json(userInfo); }else{ userInfoJson = URLEncoder.encode(JsonUtils.object2Json(userInfo), GlobalConstant.CHARSET); } } catch (UnsupportedEncodingException e) { throw new RuntimeException("URLEncoder.encode UserRequestInfo 失败"); } ServerHttpRequest newRequest = exchange.getRequest().mutate() .header(HeaderDefinition.USER_INFO, userInfoJson) .build(); return chain.filter(exchange.mutate().request(newRequest).build()); }); }} 感谢各位的阅读,以上就是"SpringCloud Gateway里怎么给请求添加header信息"的内容了,经过本文的学习后,相信大家对SpringCloud Gateway里怎么给请求添加header信息这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
信息
学习
内容
就是
思路
情况
文章
更多
知识
知识点
篇文章
跟着
问题
实践
推送
研究
验证
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
南京大学图书馆数据库王园
南航金城数据库试卷
网易的邮件服务器
b85能用服务器内存吗
拼多多群发软件开发
柯美304落地服务器好用吗
顺义区咨询软件开发介绍
戴尔服务器装系统光驱不启动
网吧服务器推荐
软件开发投稿
unity 字典数据库
mysql数据库平均成绩查询
离线数据同步业务数据库
互联网 科技成果转化项目
数据库技术系统概论
400元众筹软件开发
数据库中查询某字段的记录
如何查看学校数据库
网络安全法中安全理念是什么
服务器odm业务出售
数据库 文件管理
什么叫服务器处理器
混沌2服务器选择
网络安全外包合同
政务服务中心 信息网络安全
数据库与大数据新技术ppt
服务器配置ip需要注意什么
如何查找服务器中毒的原因
播音软件开发
java数据库url地址