Skip to content

Commit fe613e5

Browse files
authored
Merge pull request #378 from Kevin-CB/JENKINS-75914
[JENKINS-75914] Do not mask empty secrets
2 parents baac667 + 37f6814 commit fe613e5

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

src/main/java/org/jenkinsci/plugins/credentialsbinding/impl/BindingStep.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,9 @@ private static final class Handler implements FailureHandler {
163163
@NonNull
164164
@Override
165165
public Throwable handle(@NonNull StepContext ctx, @NonNull Throwable t) {
166+
if (Secret.toString(secretPattern).isEmpty()) {
167+
return t;
168+
}
166169
return MaskedException.of(t, Pattern.compile(secretPattern.getPlainText()));
167170
}
168171
}

src/test/java/org/jenkinsci/plugins/credentialsbinding/impl/BindingStepTest.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -550,6 +550,23 @@ public void usernameUnmaskedInStepArguments() throws Throwable {
550550
});
551551
}
552552

553+
@Issue("JENKINS-75914")
554+
@Test public void emptyOrBlankCredsOnExceptions() throws Throwable {
555+
rr.then(r -> {
556+
CredentialsProvider.lookupStores(r.jenkins).iterator().next().addCredentials(Domain.global(), new StringCredentialsImpl(CredentialsScope.GLOBAL, "creds", "sample", Secret.fromString("")));
557+
var p = r.jenkins.createProject(WorkflowJob.class, "p");
558+
p.setDefinition(new CpsFlowDefinition(
559+
"""
560+
withCredentials([string(credentialsId: 'creds', variable: 'SECRET')]) {
561+
error(/random String/)
562+
}
563+
""", true));
564+
var b = r.buildAndAssertStatus(Result.FAILURE, p);
565+
r.assertLogNotContains("****", b);
566+
r.assertLogContains("random String", b);
567+
});
568+
}
569+
553570
private void assertErrorActionsDoNotContainString(WorkflowRun b, String needle) {
554571
var errorActionStackTraces = new DepthFirstScanner().allNodes(b.getExecution()).stream()
555572
.map(n -> n.getPersistentAction(ErrorAction.class))

0 commit comments

Comments
 (0)