[英]How to set the "Resource root URL" in Jenkins
我们正在设置一个新的 Jenkins 实例,并发现“资源根 URL”默认为空。 我已经阅读了有关此内容的 Jenkins 文档和(少数)stackoverflow 响应,但我仍然不清楚如何填写此字段。 在我们的例子中,我们使用的是一个租用的服务器实例,它有一个专用的外部 IP 地址(一个点分四边形)但没有域名。 顺便说一句,“Jenkins URL”似乎已正确设置为我们的外部点分四边形地址。
谢谢!
据我所知,您需要两个指向同一个 Jenkins 实例的不同域。 这似乎是对 Content-Security-Policy 的frame-ancestors
指令的限制,请参阅JENKINS-41891 的第 6 条评论。
简而言之,CSP (Content-Security-Policy) 是一种安全功能,它限制浏览器包含外部资源(例如图像和 CSS)或执行外部脚本。
在 Jenkins 的上下文中,CSP 用于限制用户提供的内容(例如发布的 Maven 站点)与 Jenkins 混淆/交互。 如果没有它,在 Jenkins 中没有管理权限但能够在 Maven 站点中包含脚本(即对源存储库具有提交权限)的开发人员可能会在管理员浏览包含此恶意脚本的已发布 Maven 站点时触发管理 Jenkins 任务。
问题是,您通常希望拥有由 Jenkins 发布的用户生成内容的脚本。 但是由于存在安全风险,CSP 仍然阻止了它们。
所以你有这些选择:
因此,如果您想使用Resource root URL ,您需要两个域(或一个域和一个 IP)才能使其工作。 然后,您应该能够像这样设置您的 Jenkins:
在这个例子中, jenkins.example.org
和jenkins-static.example.org
指向同一个 IP。
请注意,以上所有内容均由非安全和非 Jenkins 专家编写,因此可能不是 100% 准确。 但它应该让这个想法得到传达。
我在这个上花了太多时间。 经过一番挖掘,我发现我可以卷曲相同的端点,并且能够更快地进行测试。 curl https://jenkins.example.com/git/notifyCommit?url=bitbucket.org/MyUsername/TheRepo&token=mytoken&branches=*/main
不要包含 .git,分支可能会有所不同。 我注意到我得到了多个 id 输出,您可能需要具体说明您的分支。 但是,如果您随心所欲,您可能会找到适合您的设置的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.