Jenkins HTML 发布者插件:Jenkins 1.643 没有外部链接
Jenkins HTML Publisher Plugin: No external links with Jenkins 1.643
我有一个 Jenkins 作业,我在其中生成一个 HTML-Page 作为 post 构建步骤,其中包含一个图像 link(HTML img 标签)。此 HTML 页面由每个作业的 HTML 发布者插件发布。
这一直很有效。但是由于我已经将 Jenkins 更新到 v.1.643,所以当我点击已发布的 HTML 页面时,我只看到一个空白页面。
我尝试了很多东西并发现了以下奇怪的行为:
自更新后,我无法将外部 link 嵌入到我发布的 HTML 页面中。
如果我从外部位置嵌入图像 (img src="somelocation/xxx.jpg),图像将不会显示。
如果我用 Firefox 检查 HTML 页面,我可以看到图像标签是灰色的,好像它是不可见的,但事实并非如此。
如果我嵌入一个普通的hyperlink,指向外部位置,我可以在显示的页面中看到link,但是当我点击它时,没有任何反应。
就像 Jenkins 在这种情况下不允许外部 links。
请帮帮我 :)
谢谢!
编辑:
感谢 Dave Bacher,他给了我正确的提示。
查看此页面以查看 Jenkins 的新安全策略。
你必须放宽规则,以便再次允许嵌入外部图像。
要对其进行测试,只需在脚本控制台中键入以下内容:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "sandbox; img-src *;")
这将允许嵌入来自任何外部网站的图像。
如果你 运行 Jenkins on Ubuntu 并且你想永久设置它,只需编辑文件 /etc/default/jenkins。在 # arguments to pass to java 下添加以下行:
JAVA_ARGS="-Dhudson.model.DirectoryBrowserSupport.CSP=\"sandbox; img-src *;\""
您看到的问题可能与最近 security fixes. See the Configuring Content Security Policy wiki page 有关如何放宽 Jenkins 配置的详细信息有关。
The CSP header sent by Jenkins can be modified by setting the system property hudson.model.DirectoryBrowserSupport.CSP:
If its value is the empty string, e.g. java -Dhudson.model.DirectoryBrowserSupport.CSP= -jar jenkins.war
then the header will not be sent at all.
(Warning!) This is potentially very unsafe and should only be used after reviewing the overall security setup.
您可以使用 Jenkins Script Console 试验不同的设置。
此外,如 wiki 页面所述,请确保您已升级到 HTML Publisher 1.10(或更高版本)。
如果您使用的是 Red Hat,请更新 JENKINS_JAVA_OPTIONS
我知道最初的问题是 Linux,但这也会帮助 Windows 用户...如果您将 Jenkins 作为服务安装(从 Jenkins.exe 开始) 您需要更改 jenkins.xml 中的参数才能使 属性 持续存在。
如果您要使用不安全的空白选项,请记住将参数放在引号中。下面是我来自 jenkins.xml:
的示例行
<arguments>-Xrs -Xmx1048m -XX:MaxPermSize=512m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle "-Dhudson.model.DirectoryBrowserSupport.CSP= " -jar "%BASE%\jenkins.war" --httpPort=8080</arguments>
我有一个 Jenkins 作业,我在其中生成一个 HTML-Page 作为 post 构建步骤,其中包含一个图像 link(HTML img 标签)。此 HTML 页面由每个作业的 HTML 发布者插件发布。
这一直很有效。但是由于我已经将 Jenkins 更新到 v.1.643,所以当我点击已发布的 HTML 页面时,我只看到一个空白页面。
我尝试了很多东西并发现了以下奇怪的行为: 自更新后,我无法将外部 link 嵌入到我发布的 HTML 页面中。 如果我从外部位置嵌入图像 (img src="somelocation/xxx.jpg),图像将不会显示。
如果我用 Firefox 检查 HTML 页面,我可以看到图像标签是灰色的,好像它是不可见的,但事实并非如此。
如果我嵌入一个普通的hyperlink,指向外部位置,我可以在显示的页面中看到link,但是当我点击它时,没有任何反应。
就像 Jenkins 在这种情况下不允许外部 links。
请帮帮我 :)
谢谢!
编辑:
感谢 Dave Bacher,他给了我正确的提示。 查看此页面以查看 Jenkins 的新安全策略。
你必须放宽规则,以便再次允许嵌入外部图像。
要对其进行测试,只需在脚本控制台中键入以下内容:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "sandbox; img-src *;")
这将允许嵌入来自任何外部网站的图像。
如果你 运行 Jenkins on Ubuntu 并且你想永久设置它,只需编辑文件 /etc/default/jenkins。在 # arguments to pass to java 下添加以下行:
JAVA_ARGS="-Dhudson.model.DirectoryBrowserSupport.CSP=\"sandbox; img-src *;\""
您看到的问题可能与最近 security fixes. See the Configuring Content Security Policy wiki page 有关如何放宽 Jenkins 配置的详细信息有关。
The CSP header sent by Jenkins can be modified by setting the system property hudson.model.DirectoryBrowserSupport.CSP:
If its value is the empty string, e.g.
java -Dhudson.model.DirectoryBrowserSupport.CSP= -jar jenkins.war
then the header will not be sent at all.(Warning!) This is potentially very unsafe and should only be used after reviewing the overall security setup.
您可以使用 Jenkins Script Console 试验不同的设置。
此外,如 wiki 页面所述,请确保您已升级到 HTML Publisher 1.10(或更高版本)。
如果您使用的是 Red Hat,请更新 JENKINS_JAVA_OPTIONS
我知道最初的问题是 Linux,但这也会帮助 Windows 用户...如果您将 Jenkins 作为服务安装(从 Jenkins.exe 开始) 您需要更改 jenkins.xml 中的参数才能使 属性 持续存在。
如果您要使用不安全的空白选项,请记住将参数放在引号中。下面是我来自 jenkins.xml:
的示例行<arguments>-Xrs -Xmx1048m -XX:MaxPermSize=512m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle "-Dhudson.model.DirectoryBrowserSupport.CSP= " -jar "%BASE%\jenkins.war" --httpPort=8080</arguments>