Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 需要为工作站构建编写相当于密码解密的非Jenkins脚本_Maven_Jenkins_Groovy_Bouncycastle_Gnupg - Fatal编程技术网

Maven 需要为工作站构建编写相当于密码解密的非Jenkins脚本

Maven 需要为工作站构建编写相当于密码解密的非Jenkins脚本,maven,jenkins,groovy,bouncycastle,gnupg,Maven,Jenkins,Groovy,Bouncycastle,Gnupg,在我的Jenkins管道中,我使用Jenkins服务器的gpg2可执行文件来解密Openshift/Kubernetes部署的密码。我想以某种方式在我的工作站上复制它 我们的平台ops团队提供的Jenkins groovy脚本最初处理gpg加密的文件,但作为开发人员,我们发现整个开发过程非常容易出错,并对脚本进行了修改,以从字符串变量而不是文件中解密密码 这就是我在Jenkins上所做的,其中密码短语$pw来自Jenkins凭证: readProperties(file: fil

在我的Jenkins管道中,我使用Jenkins服务器的gpg2可执行文件来解密Openshift/Kubernetes部署的密码。我想以某种方式在我的工作站上复制它

我们的平台ops团队提供的Jenkins groovy脚本最初处理gpg加密的文件,但作为开发人员,我们发现整个开发过程非常容易出错,并对脚本进行了修改,以从字符串变量而不是文件中解密密码

这就是我在Jenkins上所做的,其中密码短语
$pw
来自Jenkins凭证:

        readProperties(file: fileIn).each {
            key, value -> B: {
                def plainText = ''
                if (value) {
                    echo "encrypted $key is [$value]"
                    plainText = sh(
                        script: """echo "$value" | 
                                base64 -d -w 0  | 
                                gpg2 --batch --decrypt --passphrase $pw |
                                base64 -w 0 """,
                        returnStdout: true
                    )
                }
                sh "echo '  $key: $plainText' >> $fileOut"
            }
        }
棘手的一点是替换
sh
命令

我查看了
bouncycastle
,但不知道是否有办法只输入一个加密字符串而不是整个文件。我可以将这些值写入文件并进行处理,但我宁愿嚼一口甲虫乐队的歌

我突然想到,可能有一种比
gpg
更容易解密字符串的方法,但我还没有找到——主要要求是它可以在Jenkins上实现


我看过,但我希望现在有一个更干净的方法

Jenkins有一个经过加密的凭证存储,也可以在管道中使用,如
with credentials(…)
…也许我误解了你的意图…是的,你误解了-我希望在非Jenkins平台上创建等效的凭证存储,仍然使用groovy。