当前位置: 首页 > news >正文

【springboot过ingress后无法获取X-Forwarded-For头信息】

springboot过ingress后无法获取X-Forwarded-For头信息

  • 一、现象
  • 结论
  • 修改步骤
    • ingress
    • springboot
  • 排查流程
  • 本文参考

一、现象

项目使用spring boot 2.7.18,有个新需求是校验X-Forwarded-For头的所有来源ip合法性,线上环境出现取不到X-Forwarded-For头的问题,本地和测试环境都正常。本地是直接调用,测试环境是nginx转发,线上是k8s并且过了ingress。

结论

  1. ingress默认会忽略X-Forwarded-For,需要手动开启use-forwarded-headers: “true”。
  2. springboot中CloudPlatform对Kubernetes platform的类型进行了识别,如果使用的是内嵌的tomcat,在k8s环境中会自动添加了tomcat的RemoteIpValve,线上环境的httpHeader(x-forwarded-for)只有一个,没有代理ip信息,按RemoteIpValve的逻辑,x-forwarded-for头信息会被删除。
    需要二者配合修改。

修改步骤

ingress

kubectl edit configmaps nginx-configuration -n ingress-nginx修改文件内容,添加参数:
apiVersion: v1
data:compute-full-forwarded-for: "true"forwarded-for-header: X-Forwarded-Foruse-forwarded-headers: "true"
....

在这里插入图片描述

springboot

添加springboot全局配置

server:forward-headers-strategy: none

排查流程

  1. postman调线上接口,线上取不到X-Forwarded-For头。但是在postman添加请求头X-Forwarded-For后,后端服务就能正确取到。
  2. 网上查资料说需要修改ingress配置。参考
  3. 修改ingress配置后,线上k8s容器抓包,流量显示有X-Forwarded-For头信息,且存在多个ip情况,用逗号隔开。
  4. 用python写一个程序用来取X-Forwarded-For头,打成Docker镜像上传部署到k8s,Python能正常取到X-Forwarded-For信息。问题已经定位到定位到springboot。问题分析参考

本文参考

  1. https://blog.csdn.net/weixin_46887489/article/details/134616471
  2. https://blog.csdn.net/m0_71777195/article/details/127978440

相关文章:

【springboot过ingress后无法获取X-Forwarded-For头信息】

springboot过ingress后无法获取X-Forwarded-For头信息 一、现象结论修改步骤ingressspringboot 排查流程本文参考 一、现象 项目使用spring boot 2.7.18,有个新需求是校验X-Forwarded-For头的所有来源ip合法性,线上环境出现取不到X-Forwarded-For头的问…...

表格标记<table>

一.表格标记、 1table&#xff1a;表格标记 2.caption:表单标题标记 3.tr:表格行标记 4.td:表格中数据单元格标记 5.th:标题单元格 table标记是表格中最外层标记&#xff0c;tr表示表格中的行标记&#xff0c;一对<tr>表示表格中的一行&#xff0c;在<tr>中可…...

Rust练手项目,写个有趣的小工具定时从一言网获取一段有趣的话并推送通知

Rust练手项目&#xff0c;写个有趣的小工具 代码 继续练习Rust, 写个小工具定时从一言网获取一段有趣的话并提示&#xff0c;如下 练习以下Rust点 并发编程 Mutex, Arc指针使用HTTP请求Windows Gui 代码 Cargo.toml [package] name "funny_word" edition "20…...

【隐私计算】Paillier半同态加密算法

一、何为同态加密&#xff08;HE&#xff09;&#xff1f; HE是一种特殊的加密方法&#xff0c;它允许直接对加密数据执行计算&#xff0c;如加法和乘法&#xff0c;而计算过程不会泄露原文的任何信息。计算的结果仍然是加密的&#xff0c;拥有密钥的用户对处理过的密文数据进…...

判断数字的奇偶[中秋快乐~]

题目描述 给定一个整数 n,编写程序判断数字 n 是奇数还是偶数&#xff0c;是奇数则输出 “odd”&#xff0c;偶数则输出 “even”。 输入格式 一行&#xff0c;一个整数 n。 输出格式 一行&#xff0c;如果 n 是奇数则输出 “odd”; 如果 nn 是偶数则输出 “even”。 样例…...

文件操作及重定向详解

1、linux下一切皆文件: 在linux中,一切皆文件是一个重要的概念,用于描述linux操作系统中所有资源和设备都以文件的形式进行访问和处理。 这个概念可以理解为,无论是硬盘上的文件、网卡、设备、进程等,都被抽象为文件的形式存在。在linux系统中,通…...

鸿蒙next json解析 ArkUI 带你玩转 arkts json解析

前言导读 相信很多同学再开发过程中都会遇到json解析的处理&#xff0c;不管是跟服务端交互 或者是读取本地的json 都会遇到json解析 那么正好今天有空正好讲一下鸿蒙next里面的json解析 JSON解析与生成 本模块提供了将JSON文本转换为JSON对应对象或值&#xff0c;以及将对象…...

东土科技加码芯片业务投资,携手神经元共建新型工业生态

为抢抓国产化芯片发展的重大机遇&#xff0c;东土科技决定进一步加大对神经元信息技术&#xff08;成都&#xff09;有限公司的投资。这一战略布局有利于东土科技鸿道Intewell工业操作系统与神经元公司芯片的深度协同&#xff0c;推动实现“信息技术、网络技术、控制技术、数字…...

指纹与指甲检测系统源码分享

指纹与指甲检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer V…...

C++3D迷宫

目录 开头程序程序的流程图程序游玩的效果下一篇博客要说的东西 开头 大家好&#xff0c;我叫这是我58。 程序 #include <iostream> using namespace std; void printmaze(char strmaze[5][5][5]) {cout << "-----" << endl;int i 0;int ia 0…...

跨界融合,GIS如何赋能游戏商业——以《黑神话:悟空》为例

在数字化时代&#xff0c;地理信息系统&#xff08;GIS&#xff09;技术正以其独特的空间分析和可视化能力&#xff0c;为游戏产业带来革命性的变革。《黑神话&#xff1a;悟空》作为中国首款3A级别的动作角色扮演游戏&#xff0c;不仅在游戏设计和技术上取得了突破&#xff0c…...

【计网】从零开始使用TCP进行socket编程 --- 客户端与服务端的通信实现

阵雨后放晴的天空中&#xff0c; 出现的彩虹很快便会消失。 而人心中的彩虹却永不会消失。 --- 太宰治 《斜阳》--- 从零开始使用TCP进行socket编程 1 TCP与UDP2 TCP服务器类2.1 TCP基础知识2.2 整体框架设计2.3 初始化接口2.4 循环接收接口与服务接口 3 服务端与客户端测试…...

Imagen:重塑图像生成领域的革命性突破

目录 引言 一、Imagen模型的技术原理 1. 模型概述 2. 工作流程 3. 技术创新 二、Imagen模型的应用实例 1. 创意设计 2. 虚拟角色制作 3. 概念可视化 三、Imagen模型的优势与挑战 1. 优势 2. 挑战 四、Imagen模型的未来发展方向 1. 图像生成质量的提升 2. 多模态…...

Golang | Leetcode Golang题解之第402题移掉K位数字

题目&#xff1a; 题解&#xff1a; func removeKdigits(num string, k int) string {stack : []byte{}for i : range num {digit : num[i]for k > 0 && len(stack) > 0 && digit < stack[len(stack)-1] {stack stack[:len(stack)-1]k--}stack app…...

c++ gtsam/inference/Symbol.h 详细介绍

gtsam/inference/Symbol.h 是 GTSAM 库中的一个头文件&#xff0c;定义了 Symbol 类。这个类用于在因子图优化中标识和管理变量。Symbol 提供了一种便捷的方式来创建和使用唯一标识符&#xff0c;从而避免手动管理复杂的整数键。 Symbol 类详细介绍 Symbol 类是 GTSAM 中用于…...

apache文件共享和访问控制

实现apache文件共享 文件共享路径 <Directory "/var/www/html"> #默认发布路径&#xff0c;功能限制 Options Indexes FollowSymLinks #indexes支持文件共享功能 AllowOverride None Require all granted </Directory> 进入到该路径下 cd…...

LeetCode 2398.预算内的最多机器人数目:滑动窗口+单调队列——思路清晰的一篇题解

【LetMeFly】2398.预算内的最多机器人数目&#xff1a;滑动窗口单调队列——思路清晰的一篇题解 力扣题目链接&#xff1a;https://leetcode.cn/problems/maximum-number-of-robots-within-budget/ 你有 n 个机器人&#xff0c;给你两个下标从 0 开始的整数数组 chargeTimes …...

vue 在线预览word和excel

yarn add vue-office/excel vue-office/docx <template><div><vue-office-docx:src"docx"style"height: 100%; margin: 0; padding: 0"rendered"rendered"/></div> </template><script> //引入VueOfficeDoc…...

物联网智能项目

物联网智能项目是一个涉及多个领域和技术的综合性项目&#xff0c;旨在通过互联网将各种物理设备连接起来&#xff0c;实现数据的采集、传输、处理和分析&#xff0c;进而实现智能化控制和管理。以下是对物联网智能项目的详细阐述&#xff0c;包括其定义、关键技术、应用领域、…...

828华为云征文|Flexus云服务器X:Python安装的极致便捷之旅

目录 前言 一、Flexus云服务器X介绍 1.1 Flexus云服务器X实例简介 1.2 Flexus云服务器X实例特点 1.3 Flexus云服务器X实例场景需求 二、Flexus云服务器X购买 2.1 Flexus X实例购买 2.2 重置密码 2.3 登录服务器 三、Flexus云服务器X安装Python 3.1 Python下载 3.2 Python安装 3…...

提升vue开发效率的秘诀,快马平台一键生成通用组件库

最近在重构公司的中后台管理系统时&#xff0c;发现很多重复性的工作占用了大量开发时间。经过实践总结&#xff0c;我发现通过合理封装通用组件和工具集&#xff0c;可以显著提升Vue3项目的开发效率。今天就来分享下我的实战经验。 通用表格组件的封装 这个组件基于Element Pl…...

除了Omnipeek,你的8812BU网卡还能怎么玩?Win10下的另类WiFi抓包与网络诊断实战

解锁Realtek 8812BU网卡的隐藏潜能&#xff1a;Windows 10下的WiFi抓包与网络诊断全攻略 当你手握一块Realtek 8812BU无线网卡时&#xff0c;可能只把它当作普通的网络连接工具。但实际上&#xff0c;这款硬件在Windows 10环境下可以变身为强大的网络诊断利器。本文将带你探索…...

一骑红尘妃子笑,CodeBuddy 运荔枝

一骑红尘妃子笑&#xff0c;CodeBuddy 运荔枝故事背景&#xff1a;适逢荔枝盛产季节&#xff0c;圣人&#xff08;唐玄宗&#xff09;为博美人&#xff08;杨贵妃&#xff09;一笑&#xff0c;钦点"荔枝使"&#xff0c;负责将荔枝从"岭南"&#xff08;今广…...

Pixiv -直连-手机电脑全平台可用,聚合多个资源一站搞定

功能特点 全平台支持&#xff1a;兼容 Android、iOS、Windows 和 macOS 系统&#xff0c;覆盖主流设备。直连访问&#xff1a;内置优化网络链路&#xff0c;绕过访问限制&#xff0c;无需额外配置或登录即可加载内容。无广告体验&#xff1a;去除官方客户端的广告干扰&#xf…...

2025届必备的六大AI学术工具解析与推荐

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 有一种人工智能开题报告辅助工具&#xff0c;它借助先进的自然语言处理技术与知识图谱技术构…...

项目7-5 单表数据记录查询—— 任务7.6.6 查询结果不重复、7.6.7 范围查询、7.6.8 字符匹配查询(二)

项目7-4 单表数据记录查询—— 任务7.6.6 查询结果不重复、7.6.7 范围查询、7.6.8 字符匹配查询(二) 一、教学目标【2分钟】 **二、课程导入【4分钟】** **三、核心内容讲解** **【第一部分:概念讲解】用大白话理解三个关键字** **【第二部分:实操演示】** **四、课堂小结与…...

AI视频修复与字幕去除工具:突破硬字幕处理瓶颈的全流程解决方案

AI视频修复与字幕去除工具&#xff1a;突破硬字幕处理瓶颈的全流程解决方案 【免费下载链接】video-subtitle-remover 基于AI的图片/视频硬字幕去除、文本水印去除&#xff0c;无损分辨率生成去字幕、去水印后的图片/视频文件。无需申请第三方API&#xff0c;本地实现。AI-base…...

3步解锁ZTE ONU工厂模式:高效实用的网络设备管理完整指南

3步解锁ZTE ONU工厂模式&#xff1a;高效实用的网络设备管理完整指南 【免费下载链接】zteOnu A tool that can open ZTE onu device factory mode 项目地址: https://gitcode.com/gh_mirrors/zt/zteOnu 你是否曾经面对ZTE ONU设备的管理界面感到束手无策&#xff1f;想…...

Pixel Language Portal 软件测试实战:根据需求自动生成测试用例与脚本

Pixel Language Portal 软件测试实战&#xff1a;根据需求自动生成测试用例与脚本 1. 引言&#xff1a;测试自动化的新范式 在敏捷开发大行其道的今天&#xff0c;测试工程师们常常面临这样的困境&#xff1a;需求变更频繁&#xff0c;测试用例维护成本高&#xff1b;手工编写…...

3大痛点终结:GSE高级宏编译器的颠覆性突破

3大痛点终结&#xff1a;GSE高级宏编译器的颠覆性突破 【免费下载链接】GSE-Advanced-Macro-Compiler GSE is an alternative advanced macro editor and engine for World of Warcraft. It uses Travis for UnitTests, Coveralls to report on test coverage and the Curse pa…...