我想屏蔽 Jenkins 作业中作为参数提供的密码,它使用声明性管道语法。我不想保存任何凭据并使用它们。因为这将是运行特定于他们的作业的用户输入的凭据。
我已经尝试过 MaskPasswordsBuildWrapper,但它不起作用。如果有人可以提供工作示例,我将不胜感激。
这是我使用 MaskPasswordsBuildWrapper 的声明式管道的 Jenkinsfile,它不起作用:
pipeline {
agent none
options {
skipDefaultCheckout()
skipStagesAfterUnstable()
}
parameters {
string(name: 'userid', defaultValue: 'master', description: 'Enter User ID')
password(name: 'passwd', defaultValue: 'secret', description: 'Enter Password')
}
stages {
stage('Test') {
agent {
label 'someLabel'
}
steps {
script {
wrap([$class: 'MaskPasswordsBuildWrapper', varPasswordPairs: [[var: 'PSWD', password: params.passwd]], varMaskRegexes: []]) {
sh "echo PSWD: ${PSWD}"
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud) 我们正在将Java 8 Spring Boot 2用于我们的微服务应用程序。在本地运行负载测试会注意到堆正在消耗内存,但从未释放过。我正在使用G1垃圾收集器运行该应用程序,还通过JVisualVM进行了手动GC,但仍然无法释放分配的内存。
我进行了堆转储并对其进行了分析,我可以清楚地看到由System Class Loader创建的大字节数组被列为泄漏可疑对象。我看到字节数组实例将我的HTTP请求保存到端点“ / test”。但是负载测试已经完成,线程又回到了运行负载测试之前的状态。
不知道为什么系统类加载器加载的字节数组包含所有这些元素,并且无缘无故地占用了所有这些堆。
/ test端点是@RestController类中的唯一方法
@RequestMapping(value = "/test", method = RequestMethod.GET)
@CrossOrigin(origins = "*")
public void test() {
logger.info("Testing1...");
}
Run Code Online (Sandbox Code Playgroud)
以下是与服务器相关的Spring Boot application.properties:
server.port=8090
server.tomcat.max-threads=200
server.tomcat.accept-count=100
server.tomcat.min-spare-threads=20
server.error.whitelabel.enabled=false
server.max-http-header-size=2097152
Run Code Online (Sandbox Code Playgroud)