tomcat - 在代理后面的 tomcat 上运行的 servlet 如何知道浏览器向其发送请求的服务器名称

标签 tomcat servlets proxy jira reverse-proxy

我有以下安排:浏览器 -> 转发代理 -> 云 ->(apache 服务器 + jira web 应用程序)。 出于实验目的,我使用域名 fwdproxy.foo.com 转到转发代理,然后转发代理将其更改为 jira.foo.com 并转发连接。当我加载 jira 页面时,出现错误 “JIRA 报告它在主机名‘jira.foo.com’上运行,这与用于运行这些诊断的主机名‘fwdproxy.foo.com’不匹配。已知这会导致 JIRA 构建URL 使用不正确的主机名,这将导致仪表板出现错误,以及其他问题

在进一步调试时我看到了这个 com.atlassian.gadgets.dashboard.internal.diagnostics.UrlHostnameMismatchException:检测到的 URL 主机名“jira.foo.com”与预期的主机名 fwdproxy.foo.com 不匹配。

jira web 应用程序如何知道浏览器使用的主机名。由于转发代理创建了一个完全不同的 http 连接,jira 不应该知道浏览器在转发代理后面做了什么。请提供意见。谢谢

最佳答案

只有 2 个想法:
你可以配置 JIRA,给他公共(public) url (Administration/Global configuration/base url)
我想 JIRA 将此字段与 HOST http header 进行比较,或者使用 antoher 机制,一种 XSS 保护,也许是 atlassian.xsrf.token ?

关于tomcat - 在代理后面的 tomcat 上运行的 servlet 如何知道浏览器向其发送请求的服务器名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21241805/

相关文章:

用于登录的身份验证过滤器和 servlet

visual-studio - PEM_read_bio_X509(有时)失败(OpenSSL 1.0.1p)

http - 如何找到代理是 Http 还是 Socks

java - 在 Tomcat 应用程序之间共享一个小程序

jsf - 将 Richfaces 添加到现有的 Seam 应用程序

java - 我如何使用 Spring 启用 Tomcat 阀

java - 即使选项卡关闭后,Jsp 页面仍在运行

java - 使用 Java 和 Tomcat 保存图片并获取链接

java - 在 1 个请求中将多个文件从 Android 上传到 AppEngine

java - 编码java代理