当前位置: 首页 > news >正文

Jenkins上生成的allure report打不开怎么处理

目录

问题背景:

原因:

解决方案:

Jenkins上修改配置 通过Groovy脚本在Script Console中设置和修改系统属性

步骤

验证是否清空成功

进一步的定制

也可以使用Nginx去解决

使用逆向代理服务器Nginx:

通过合理调整CSP配置,可以平衡安全性与功能性的需求。在生产环境中,务必进行必要的安全性考量,以防止潜在的安全漏洞。总结:


问题背景:

Jenkins上没有安装allure相关插件 只是将生成的报告发送到个人邮箱; 但是在workspace生成之后 点击index.html出现下面的情况 一直处于加载中 F12查看 app.js文件无法加载 但是验证了其实是成功生成了的 并且在本地查看的时候是正常显示的 

原因:

  具体原因是console的报错
“Refused to load the script 'https://saldevops.jaas-gcp.cloud.sap.corp/job/support-python-ui-test/118/execution/node/3/ws/PANA/allure-report/plugins/packages/index.js' because it violates the following Content Security Policy directive: "script-src 'unsafe-inline'". Note that 'script-src-elem' was not explicitly set, so 'script-src' is used as a fallback. index.html:1  Refused to load the script 'https://saldevops.jaas-gcp.cloud.sap.corp/job/support-python-ui-test/118/execution/node/3/ws/PANA/allure-report/plugins/screen-diff/index.js' because it violates the following Content Security Policy directive: "script-src 'unsafe-inline'". Note that 'script-src-elem' was not explicitly set, so 'script-src' is used as a fallback.”

从报错不难看出是浏览器block了报告的查看

解决方案:

Jenkins上修改配置 通过Groovy脚本在Script Console中设置和修改系统属性

  1. 直接清空
    import jenkins.model.Jenkins// 将X-Frame-Options设置为空
    Jenkins.instance.setSystemProperty("hudson.model.DirectoryBrowserSupport.CSP", "")// 其他属性也可以类似地进行设置为空
  2. 允许特定脚本来源
    import jenkins.model.Jenkins// 修改 Content Security Policy,允许特定脚本来源
    Jenkins.instance.setSystemProperty("hudson.model.DirectoryBrowserSupport.CSP", "default-src 'self'; script-src 'self' 'unsafe-inline' https://yourdomain.com;")
步骤
  1. 登录Jenkins:使用管理员账户登录Jenkins界面。
  2. 打开Script Console:进入 Manage Jenkins -> Script Console
  3. 复制并粘贴脚本:将上面的示例脚本复制到Script Console中。
  4. 执行脚本:点击“Run”按钮来执行脚本。
验证是否清空成功

你可以通过浏览器的开发者工具查看HTTP头,验证这些属性是否已被清空。例如,在Chrome浏览器中:

  1. 进入 Developer Tools(Ctrl+Shift+I)。
  2. 转到 Network 标签页。
  3. 刷新Jenkins页面并选择一个HTTP请求。
  4. 查看 Headers 部分,确认相关属性是否被清空。    
进一步的定制

如果您需要更具体的配置或者处理其他系统属性,可以在Script Console中对这些属性进行类似的设置或者修改。例如:

// 设置X-Content-Type-Options为空
Jenkins.instance.setSystemProperty("hudson.model.DirectoryBrowserSupport.CSP", "")// 可以继续添加更多需要清空或设置的属性

也可以使用Nginx去解决

使用逆向代理服务器Nginx

在Nginx配置中添加相关的CSP头配置:

server {listen       80;server_name  jenkins.yourdomain.com;location / {proxy_pass         http://localhost:8080;proxy_set_header   Host $host;proxy_set_header   X-Real-IP $remote_addr;proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header   X-Forwarded-Proto $scheme;# 添加适当的CSP头add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' https://yourdomain.com;";}
}

通过合理调整CSP配置,可以平衡安全性与功能性的需求。在生产环境中,务必进行必要的安全性考量,以防止潜在的安全漏洞。

总结:

我自己用的是方法一里面的清空属性值解决的 比较省事儿 不过要注意清空这些属性可以临时解决某些兼容性问题或进行特定的调试工作,但需要注意的是,这会显著降低Jenkins的安全防护能力。 看到这篇文章的同学自己可以酌情选择适合自己的方法去解决该问题

http://www.lryc.cn/news/529213.html

相关文章:

  • JSR303校验教学
  • 使用DeepSeek技巧:提升内容创作效率与质量
  • 【第六天】零基础入门刷题Python-算法篇-数据结构与算法的介绍-一种常见的贪心算法(持续更新)
  • C# Winform制作一个登录系统
  • 算法总结-哈希表
  • 向下调整算法(详解)c++
  • 蓝桥杯之c++入门(一)【C++入门】
  • 使用Python爬虫获取1688商品拍立淘API接口(item_search_img)的实战指南
  • ElasticSearch-文档元数据乐观并发控制
  • 使用Navicat Premium管理数据库时,如何关闭事务默认自动提交功能?
  • 【单细胞-第三节 多样本数据分析】
  • (java) IO流
  • 2025年1月个人工作生活总结
  • 线性调整器——耗能型调整器
  • 【2025美赛D题】为更美好的城市绘制路线图建模|建模过程+完整代码论文全解全析
  • 【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.28 存储之道:跨平台数据持久化方案
  • 拼车(1094)
  • 基于Python的人工智能患者风险评估预测模型构建与应用研究(下)
  • < OS 有关 > Android 手机 SSH 客户端 app: connectBot
  • 向量和矩阵算法笔记
  • uniapp使用uni.navigateBack返回页面时携带参数到上个页面
  • Python 梯度下降法(二):RMSProp Optimize
  • Android Studio 正式版 10 周年回顾,承载 Androider 的峥嵘十年
  • sem_wait的概念和使用案列
  • 集合的奇妙世界:Python集合的经典、避坑与实战
  • 专业视角深度解析:DeepSeek的核心优势何在?
  • MySQL 索引存储结构
  • 【ComfyUI专栏】如何使用Git命令行安装非Manager收录节点
  • python算法和数据结构刷题[1]:数组、矩阵、字符串
  • 数据分析系列--④RapidMiner进行关联分析(案例)