Skip to content

Commit 26f9097

Browse files
Copilotcommjoen
andcommitted
Include user agent in Slack message content instead of HTTP header
Co-authored-by: commjoen <[email protected]>
1 parent cec59a2 commit 26f9097

File tree

2 files changed

+15
-15
lines changed

2 files changed

+15
-15
lines changed

src/main/java/org/owasp/wrongsecrets/challenges/docker/SlackNotificationService.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -45,16 +45,11 @@ public void notifyChallengeCompletion(String challengeName, String userName, Str
4545
}
4646

4747
try {
48-
String message = buildCompletionMessage(challengeName, userName);
48+
String message = buildCompletionMessage(challengeName, userName, userAgent);
4949
SlackMessage slackMessage = new SlackMessage(message);
5050

5151
HttpHeaders headers = new HttpHeaders();
5252
headers.setContentType(MediaType.APPLICATION_JSON);
53-
54-
// Add User-Agent header if provided
55-
if (userAgent != null && !userAgent.trim().isEmpty()) {
56-
headers.set("User-Agent", userAgent);
57-
}
5853

5954
HttpEntity<SlackMessage> request = new HttpEntity<>(slackMessage, headers);
6055

@@ -86,12 +81,17 @@ private boolean isSlackConfigured() {
8681
&& challenge59.get().getSlackWebhookUrl().startsWith("https://hooks.slack.com");
8782
}
8883

89-
private String buildCompletionMessage(String challengeName, String userName) {
84+
private String buildCompletionMessage(String challengeName, String userName, String userAgent) {
9085
String userPart = (userName != null && !userName.trim().isEmpty()) ? " by " + userName : "";
86+
String userAgentPart = (userAgent != null && !userAgent.trim().isEmpty()) ? " (User-Agent: " + userAgent + ")" : "";
9187

9288
return String.format(
93-
"🎉 Challenge %s completed%s! Another secret vulnerability discovered in WrongSecrets.",
94-
challengeName, userPart);
89+
"🎉 Challenge %s completed%s%s! Another secret vulnerability discovered in WrongSecrets.",
90+
challengeName, userPart, userAgentPart);
91+
}
92+
93+
private String buildCompletionMessage(String challengeName, String userName) {
94+
return buildCompletionMessage(challengeName, userName, null);
9595
}
9696

9797
/** Simple record for Slack message payload. */

src/test/java/org/owasp/wrongsecrets/challenges/docker/SlackNotificationServiceTest.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ void shouldSendNotificationWithUserAgentWhenSlackIsConfigured() {
5151
}
5252

5353
@Test
54-
void shouldSetUserAgentHeaderWhenProvided() {
54+
void shouldIncludeUserAgentInMessageWhenProvided() {
5555
// Given
5656
String webhookUrl = "https://hooks.slack.com/services/T123456789/B123456789/abcdef123456";
5757
String userAgent = "Cypress WrongSecrets E2E Tests";
@@ -71,12 +71,12 @@ void shouldSetUserAgentHeaderWhenProvided() {
7171
.postForEntity(eq(webhookUrl), entityCaptor.capture(), eq(String.class));
7272

7373
HttpEntity capturedEntity = entityCaptor.getValue();
74-
HttpHeaders headers = capturedEntity.getHeaders();
75-
assertEquals(userAgent, headers.getFirst("User-Agent"));
74+
SlackNotificationService.SlackMessage slackMessage = (SlackNotificationService.SlackMessage) capturedEntity.getBody();
75+
assertTrue(slackMessage.getText().contains("(User-Agent: " + userAgent + ")"));
7676
}
7777

7878
@Test
79-
void shouldNotSetUserAgentHeaderWhenNotProvided() {
79+
void shouldNotIncludeUserAgentInMessageWhenNotProvided() {
8080
// Given
8181
String webhookUrl = "https://hooks.slack.com/services/T123456789/B123456789/abcdef123456";
8282
when(challenge59.getSlackWebhookUrl()).thenReturn(webhookUrl);
@@ -95,8 +95,8 @@ void shouldNotSetUserAgentHeaderWhenNotProvided() {
9595
.postForEntity(eq(webhookUrl), entityCaptor.capture(), eq(String.class));
9696

9797
HttpEntity capturedEntity = entityCaptor.getValue();
98-
HttpHeaders headers = capturedEntity.getHeaders();
99-
assertNull(headers.getFirst("User-Agent"));
98+
SlackNotificationService.SlackMessage slackMessage = (SlackNotificationService.SlackMessage) capturedEntity.getBody();
99+
assertFalse(slackMessage.getText().contains("User-Agent"));
100100
}
101101

102102
@Test

0 commit comments

Comments
 (0)