我正在尝试获取在 AWS 上的 ubuntu 服务器盒上运行的 Jira 副本。我配置了 Tomcat,并且可以成功访问我的站点(网址为 http://example.com:8080/jira)并开始设置过程。我可以创建用户名,但是当指示我创建第一个项目时,我在尝试保存时收到以下错误:
创建项目抛出“创建项目时出错,XSRF 检查失败”
这里记录的是相同的错误:
Atlassian 自己以及此处:
https://answers.atlassian.com/questions/283780/looking-for-the-full-list-of-http-headers
一些论坛用户。这两种情况都表明标头被阻止,第二个链接很好地列出了每个标头:
X-AREQUESTID
X-ASESSIONID
X-AUSERNAME
X-SITEMESH-OFF
X-Atlassian-Token
X-Requested-With
Do not forget to allow GET (of course), POST (of course) but also PUT http methods
我面临的问题是我无法找出我的 ubuntu 服务器如何阻止这些标头。我正在运行 nginx,如果有帮助的话,我会很乐意发布我的配置。否则所有配置都在 tomcat 中完成。
我在某处得到提示说 UFW 可能会阻止它们,但这似乎并没有运行。有谁知道我将如何解锁这些标头来解决我的 Jira 错误?
UFW 根本不会给你这个错误。 UFW 仅运行到第 4 层(TCP/UDP),而不运行到 HTTP 层,您收到的响应是应用程序层,这意味着所有较低层都已成功通信。
如果您通过 nginx 运行代理,请确保已启用 proxy_pass_request_headers。
location / {
proxy_pass http://example.com;
proxy_set_header Host http://example.com;
proxy_pass_request_headers on;
}
查看:设置指南
您只能将 JIRA 配置为响应单个 URL,并且此设置必须与您的用户访问 JIRA 站点所请求的 URL 相匹配。例如,您不能为内部和外部用户使用不同的主机名或 URL。此基本 URL 设置与 JIRA 用户请求的 URL 之间的任何不匹配都会导致仪表板小工具出现问题。
XSRF 通常是主机名配置错误,您可能需要检查配置的基本 url。
如果您使用HAProxy并需要正确转发标头或解决与HTTP模式相关的问题,您可以使用以下配置:
listen jira
bind *:80
mode http
server services 192.168.1.1:80 check
通过设置http模式,HAProxy被配置为在HTTP层(第7层)运行。这可以正确处理 HTTP 特定的功能,例如标头转发和 HTTP 身份验证。