Jenkins在系统groovy脚本中拒绝LinkedHashMap

时间:2017-05-04 16:29:40

标签: jenkins groovy

在我们的Jenkins环境中,我们仍然有一些旧的自由式工作,我们不想改变为管道。其中一个使用系统groovy脚本。本周我们决定将Jenkins版本升级到2.46(也是更新的插件,例如安全性),突然间系统groovy脚本不再起作用了

<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>uTalk Demo</title>
	<link rel='stylesheet' type='text/css' href='game.css' media='screen'></style>
</head>
<body>
	<canvas id="game" width = "750" height = "500"></canvas>
</body>
</html>

对于管道,我可以去“管理Jenkins”并批准脚本,但通常我会批准整个脚本或将某些方法签名列入白名单。但我从来没有批准过对象的使用。脚本批准页面也没有任何待处理。

我可以以某种方式将此添加到批准列表中或者只是忽略它吗?也许以某种方式直接修改scriptApproval.xml?

如果相关,

script-security插件的版本为1.27。

2 个答案:

答案 0 :(得分:1)

我多次遇到这种情况,并手动将签名添加到scriptApproval.xml

new java.util.LinkedHashMap添加到a​​pprovedSignatures:

 <approvedSignatures>
    <string>new java.util.LinkedHashMap</string>
 </approvedSignatures>

我不知道为什么会这样,我认为这是一个错误。

答案 1 :(得分:0)

虽然已经给出的答案是正确的,但总是直接更改xml文件真的很烦人。在第二次修复仍然失败后,我尝试了其他的东西。我没有从GIT加载文件,而是将系统groovy代码直接放入作业并自行加载文件:

evaluate(new File("path/to/file"))