在 Java Web 应用程序中处理 X-FORWARDED-PROTO 标头

2024-04-29

任何人都可以指导我与X-转发-原型 https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Proto部署到 Apache Tomcat 的 Java Web 应用程序中的标头。

应用程序设置的方式是,tomcat 与 Apache Web 服务器通信,Apache Web 服务器又与 Cisco 负载均衡器通信,最后均衡器将页面发布到客户端(tomcat -> apache2 -> 负载均衡器 -> 客户端)。

SSL 证书安装在负载均衡器中,并且正在处理 HTTPS 请求。我的要求是使应用程序的行为方式是使用X-转发-原型并将页面更改为 HTTP 或 HTTPS。

检查我的网页的头文件,我找不到X-转发-原型标头。我也无权访问负载均衡器配置,IT 建议我们使用X-转发-原型区分 HTTP 和 HTTPS 请求。

是否需要在 Tomcat 或 Apache 级别进行任何配置,以便返回X-转发-原型标题?或者配置应该在负载均衡器中处理?


我很确定您现在已经弄清楚了,但我仍然会添加答案。

您可以使用该类org.apache.catalina.valves.RemoteIpValve在引擎标签中conf/服务器.xml雄猫的。

    <Valve className="org.apache.catalina.valves.RemoteIpValve"
           internalProxies="192.168.1.XXX"
           remoteIpHeader="x-forwarded-for"
           remoteIpProxiesHeader="x-forwarded-by"
           protocolHeader="x-forwarded-proto"
    />

需要注意的是,非常重要的是设置内部代理价值。如果未设置此选项并且您使用的是非标准网络设置,则可能会导致一些问题,其中 tomcat 不会检查x-转发标头,默认为“http”。出于安全原因,我建议设置它,即使它适用于默认值。

Look here https://tomcat.apache.org/tomcat-9.0-doc/api/org/apache/catalina/valves/RemoteIpValve.html了解更多信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Java Web 应用程序中处理 X-FORWARDED-PROTO 标头 的相关文章

  • 如何在 Android 应用程序中隐藏 Flutterwave API 密钥

    我正在构建一个 Android 应用程序 目前正在将 Flutterwave 集成到我的应用程序中以进行支付 建议我永远不要将 Flutterwave API 密钥放在我的应用程序上 那么我该如何隐藏这些键呢 我正在使用 Retrofit
  • 查看Java Agent修改的Java类的源代码

    我需要了解 Java 代理如何修改我的初始类 以便我能够理解代码的作用 build gradle configurations jar archiveName agent2 jar jar manifest attributes Prema
  • 通过Zuul上传大文件

    我在通过 zuul 上传大文件时遇到问题 我正在使用 apache commons 文件上传 https commons apache org proper commons fileupload https commons apache o
  • 未装饰窗户的 Windows Snap 功能?

    有谁知道如何允许未装饰的窗户使用此功能 唯一的选择就是重新实施它 有任何想法吗 谢谢 可停靠可能是唯一的JToolBar http docs oracle com javase tutorial uiswing components too
  • 如何使用 Java 引用释放 Java Unsafe 内存?

    Java Unsafe 类允许您按如下方式为对象分配内存 但是使用此方法在完成后如何释放分配的内存 因为它不提供内存地址 Field f Unsafe class getDeclaredField theUnsafe Internal re
  • Java AES 256 加密

    我有下面的 java 代码来加密使用 64 个字符密钥的字符串 我的问题是这会是 AES 256 加密吗 String keyString C0BAE23DF8B51807B3E17D21925FADF273A70181E1D81B8EDE
  • 在光标所在行强制关闭!

    嘿 我正在尝试创建一个应用程序来查找存储在 SQlite 数据库中的 GPS 数据 但我面临一个问题 我构建了一个 DbAdapter 类来创建数据库 现在我尝试使用以下函数从另一个类获取所有数据上的光标 public Cursor fet
  • 在 Spring 中为 @Pathvariable 添加类级别验证

    在发布这个问题之前 我已经做了很多研究并尝试了很多可用的解决方案 这是我陷入的棘手情况 我有一个 Spring 控制器 它有多个请求映射 它们都有 PathVariables 控制器如下所示 Controller EnableWebMvc
  • 将 Node.js(用于实时通知)添加到现有 PHP 应用程序

    我有一个现有的 PHP 应用程序 我需要向其中添加实时通知 为了实现这一点 我安装了node js 打算添加socket io以实现所有实时功能 然而 尽管在过去的三个小时里研究并试图弄清楚如何将两者结合起来 但我发现自己并没有更接近于获得
  • 为什么解析这个 JSON 会抛出错误?

    我正在尝试解析这个 JSONObject query yahoo count 1 results rate Name USD INR id USDINR Time 12 19pm Date 10 31 2015 Bid 65 405 Ask
  • Android 认为我没有关闭数据库!为什么?

    我有一个 SQLiteDatabase 数据成员 我在 onCreate 中初始化它 并在 onPause onStop 和 onDestroy 中调用 close 它在 onResume 中重新初始化 它似乎运行得很好 但当我查看调试器时
  • 在java程序中使用c++ Dll

    我正在尝试使用System LoadLibrary 使用我用 C 编写的一个简单的 dll UseDllInJava java import com sun jna Library import com sun jna Native imp
  • proc_open() 失败并显示“权限被拒绝”

    我正在尝试使用proc open 执行程序并打印结果 但是 我不断收到 许可被拒绝 的消息 已将脚本和可执行文件的 chmod 设置为 0777 但无济于事 ini get safe mode 是假的 可能出什么问题了 我正在使用 Cent
  • 如何自定义舍入形式

    我的问题可能看起来很简单 但仍然无法得到有效的东西 我需要自定义 Math round 舍入格式或其他格式以使其工作如下 如果数字是 1 6 他应该四舍五入到 1 如果大于或等于 1 7 他应该四舍五入到 2 0 对于所有其他带有 6 的小
  • 使用 Proguard 通过 Dropbox.com 库混淆 Android 应用程序

    我刚刚创建了一个需要 Dropbox com API 库的 Android 应用程序 我现在尝试在 发布 模式下构建应用程序 并希望在代码上运行混淆器以对其进行混淆 但是 每当我尝试运行 Proguard 时 都会收到以下错误 Progua
  • Android - 存储对ApplicationContext的引用

    我有一个静态 Preferences 类 其中包含一些应用程序首选项和类似的内容 可以在那里存储对 ApplicationContext 的引用吗 我需要该引用 以便我可以在不继承 Activity 的类中获取缓存文件夹和类似内容 你使用的
  • 按降序排序映射java8 [重复]

    这个问题在这里已经有答案了 private static
  • 为什么Apache MPM prefork.c 使用互斥体来保护accept()?

    我坐下来读书Apache 的 MPM prefork c http code metager de source xref apache httpd server mpm prefork prefork c这段代码使用了一个名为accept
  • 操作错误:尝试在 ubuntu 服务器中写入只读数据库

    我正在使用 FlaskApp 运行mod wsgi and apache2在 Ubuntu 服务器上 我尝试运行烧瓶应用程序localhost成功 然后部署到ubuntu服务器上 但是当我尝试更新数据库时 出现错误 Failed to up
  • 什么是 Java2D 处理程序线程?

    我创建了一个使用 Hibernate 的示例 java 应用程序 当我进行线程转储时 我观察到一个名为 Java2D Disposer 的奇怪线程 有人能告诉我该线程的功能吗 AWT 系统中的某些实体需要最终确定以释放资源 最突出的例子是j

随机推荐

  • PyCharm 找不到已安装的软件包:keras

    我在运行 Ubuntu 14 04 的 PC 上安装了 pycharm 2016 1 4 我已经使用安装了 Keras 一个 Python 包 pip install keras和 PyCharmcan找到它before 但它cannot找
  • redis 阻塞直到 key 存在

    我是 Redis 新手 想知道是否有办法能够await get通过它的键来获取值 直到该键存在 最小代码 async def handler data await self fetch key async def fetch key ret
  • 将预训练模型从 tfhub 转换为 tflite

    我正在尝试转换openimages v4 ssd mobilenet v2 https tfhub dev google openimages v4 ssd mobilenet v2 1到 tflite 使用 pip3 install te
  • JavaScript 中的 function($) 是什么意思?

    我意识到 只是命名指向 jQuery 对象的变量的约定 也是 document getElementById 的函数 但是 function 意味着什么吗 编辑 我其实是想说 function jQuery 抱歉造成混乱 但感谢您的回答 一
  • dmesg 和 /var/log/kern.log 之间的区别

    我正在修改kvm模块 并在内核代码中添加了printk语句 运行虚拟机后 printk为我提供了错误地址和有关客户操作系统的其他信息 我需要根据此信息生成统计信息 当我使用 dmesg 时 我只能看到错误地址 在内核空间中 即它们的地址高于
  • 警告:implode() [function.implode]:传递的参数无效

    我收到以下错误 警告 implode function implode 在第 1335 行的 wp content themes mytheme functions php 中传递的参数无效 at function my get tags
  • 如何平滑过渡 CSS 背景图片?

    主要的解决方案是 只需抛出一个加载屏幕 直到页面加载完毕 但我的目标是构建能够快速呈现基础知识的页面 无需加载屏幕 然后在图像和精美功能准备就绪时进行转换 所以我会等到它加载完毕 然后淡入 或者我会加载一个非常低分辨率的版本 然后在准备好时
  • PyCharm 未使用环境变量进行更新

    当我使用vim更新我的环境变量 在 bashrc PyCharm 不会立即获取更新 我必须关闭程序 源 bashrc再次 然后重新打开 PyCharm 有没有办法让 PyC harm 自动获取更改 或无需关闭 当任何进程创建时 它都会从其父
  • 获取自分离父分支以来的提交日志,包括父分支的最新提交

    我正在尝试创建一个快速的 bash 函数 该函数返回 oneline自当前分支从其父分支分支以来的每次提交的日志 以及包括先前提交的行 这是我到目前为止所拥有的 stolen from another Stack Overflow ques
  • 如何获取一维标量数组作为学说 dql 查询结果?

    我想从拍卖表的 id 列中获取一组值 如果这是一个原始 SQL 我会写 SELECT id FROM auction 但是当我在 Doctrine 中执行此操作并执行时 em gt createQuery SELECT a id FROM
  • 为什么 Java Swing html 字体渲染看起来这么糟糕?

    为了显示具有多种样式的复杂多行标签 我使用了 Swing 的 html 渲染功能 但最终得到了非常糟糕的字体渲染 我尝试明确设置字体系列 infoLabel setText span style font family Tahoma My
  • Json.NET:将嵌套数组反序列化为强类型对象

    我正在编写客户端应用程序 它应该处理服务器响应 响应采用 JSON 格式 我决定使用 Json NET 来反序列化它们 我无法简化或修改这些响应 在服务器端 此特定 JSON 响应的特殊困难在于不同的对象类型位于同一数组中 哈希值和文件数组
  • Numpy 提取网格数据的子集

    在我的应用程序中 我有一个从 meshgrid 命令获得的值矩阵及其坐标 经度 纬度 我想根据经度和纬度限制提取该矩阵的特定子区域 我已经尝试过这个解决方案 但它不起作用 我需要三个矩阵作为输出 一个用于数据 另外两个用于网格 Lons L
  • 应用程序突然崩溃 - 致命执行引擎错误 (7A0BC59E) (80131506)

    完全随机 我们的应用程序突然在其生产环境中崩溃 该应用程序在 Windows XP 和 net Framework 3 5 sp1 上运行 在应用程序中 我们提供 WCF 服务并使用串行端口 当应用程序崩溃时 它会在应用程序日志中留下消息
  • React Native 中的平台特定组件

    我很确定这很简单 但我不太明白如何将它们结合在一起 目前我的应用程序在 iOS 中运行良好 但我使用了一些与 Android 不兼容的控件
  • java中的引用传递[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我是java新手 我尝试搜索很多我的
  • OpenCV 的 findHomography 产生无意义的结果

    我正在制作一个程序 使用 OpenCV 2 43 中的 ORB 跟踪功能 我遵循并使用了建议从这里 https stackoverflow com questions 9919505 how can i extract fast featu
  • 如何解决发布 .NET Core 时出现的 PFX 签名不支持错误

    我一直在尝试使用 PFX 文件对程序集进行签名 一切正常 我在 Visual Studio 中访问了属性 签名 但每当我运行点网发布命令 我收到此错误 C Program Files dotnet sdk 2 1 201 Microsoft
  • 如何查看合并到合并提交中的提交?

    If my feature branch被合并到my main branch 我怎样才能看到合并了哪些提交my feature branch git log abc123 abc123显示合并到合并提交中的提交abc123 创建一个git
  • 在 Java Web 应用程序中处理 X-FORWARDED-PROTO 标头

    任何人都可以指导我与X 转发 原型 https developer mozilla org en US docs Web HTTP Headers X Forwarded Proto部署到 Apache Tomcat 的 Java Web