Skip to content

Commit 9241ae4

Browse files
authored
Fix case where "SecretTokenAsPlainText" is null (#324)
* Fix case where "SecretTokenAsPlainText" is null Fixes #304 * Add missing import * Add missing import (again) * Apply spotless
1 parent d45c0f4 commit 9241ae4

File tree

4 files changed

+23
-8
lines changed

4 files changed

+23
-8
lines changed

src/main/java/io/jenkins/plugins/gitlabbranchsource/GitLabHookCreator.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,10 +86,14 @@ public static void register(
8686
return;
8787
}
8888
String hookUrl = getHookUrl(server, true);
89-
String secretToken = server.getSecretTokenAsPlainText();
9089
if (hookUrl.equals("")) {
9190
return;
9291
}
92+
String secretToken = server.getSecretTokenAsPlainText();
93+
if (secretToken == null) {
94+
// sending 'null' to GitLab will ignore the value, when we want to update it to be empty.
95+
secretToken = "";
96+
}
9397
if (credentials != null) {
9498
try {
9599
GitLabApi gitLabApi = new GitLabApi(

src/main/java/io/jenkins/plugins/gitlabbranchsource/GitLabSCMNavigator.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -285,15 +285,17 @@ public void visitSources(@NonNull final SCMSourceObserver observer) throws IOExc
285285
try {
286286
GitLabServer server = GitLabServers.get().findServer(serverName);
287287
if (webhookGitLabApi != null && webHookUrl != null) {
288+
String secretToken = server.getSecretTokenAsPlainText();
289+
if (secretToken == null) {
290+
// sending 'null' to GitLab will ignore the value, when we want to update it to be empty.
291+
secretToken = "";
292+
}
288293
observer.getListener()
289294
.getLogger()
290295
.format(
291296
"Web hook %s%n",
292297
GitLabHookCreator.createWebHookWhenMissing(
293-
webhookGitLabApi,
294-
projectPathWithNamespace,
295-
webHookUrl,
296-
server.getSecretTokenAsPlainText()));
298+
webhookGitLabApi, projectPathWithNamespace, webHookUrl, secretToken));
297299
}
298300
} catch (GitLabApiException e) {
299301
observer.getListener().getLogger().format("Cannot set web hook: %s%n", e.getReason());

src/main/java/io/jenkins/plugins/gitlabbranchsource/GitLabSystemHookAction.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import io.jenkins.plugins.gitlabserverconfig.servers.GitLabServers;
99
import java.io.IOException;
1010
import java.util.List;
11+
import java.util.Objects;
1112
import java.util.logging.Level;
1213
import java.util.logging.Logger;
1314
import javax.servlet.FilterChain;
@@ -84,7 +85,11 @@ private boolean isValidToken(String secretToken) {
8485
try {
8586
List<GitLabServer> servers = GitLabServers.get().getServers();
8687
for (GitLabServer server : servers) {
87-
if (server.getSecretTokenAsPlainText().equals(secretToken)) {
88+
String secretTokenAsPlainText = server.getSecretTokenAsPlainText();
89+
if (Objects.equals(secretToken, secretTokenAsPlainText)
90+
|| (secretTokenAsPlainText != null
91+
&& secretTokenAsPlainText.isEmpty()
92+
&& secretToken == null)) {
8893
return true;
8994
}
9095
}

src/main/java/io/jenkins/plugins/gitlabbranchsource/GitLabWebHookAction.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import io.jenkins.plugins.gitlabserverconfig.servers.GitLabServers;
99
import java.io.IOException;
1010
import java.util.List;
11+
import java.util.Objects;
1112
import java.util.logging.Level;
1213
import java.util.logging.Logger;
1314
import javax.servlet.FilterChain;
@@ -84,8 +85,11 @@ private boolean isValidToken(String secretToken) {
8485
try {
8586
List<GitLabServer> servers = GitLabServers.get().getServers();
8687
for (GitLabServer server : servers) {
87-
if (server.getSecretTokenAsPlainText().equals(secretToken)
88-
|| (server.getSecretTokenAsPlainText().isEmpty() && secretToken == null)) {
88+
String secretTokenAsPlainText = server.getSecretTokenAsPlainText();
89+
if (Objects.equals(secretToken, secretTokenAsPlainText)
90+
|| (secretTokenAsPlainText != null
91+
&& secretTokenAsPlainText.isEmpty()
92+
&& secretToken == null)) {
8993
return true;
9094
}
9195
}

0 commit comments

Comments
 (0)