Repository navigation
Expand file tree
/
Copy pathOpenAllModulesTest.java
More file actions
45 lines (35 loc) · 1.78 KB
/
Copy pathOpenAllModulesTest.java
File metadata and controls
45 lines (35 loc) · 1.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package servlets.admin.moduleManagement;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import jakarta.servlet.http.Cookie;
import org.apache.logging.log4j.Level;
import org.junit.jupiter.api.Test;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse;
import testUtils.LogCapture;
/** OpenAllModules must not write the submitted CSRF token to the log (#972) */
public class OpenAllModulesTest {
private static final String SUBMITTED_TOKEN = "submittedCsrfToken972";
@Test
public void doPost_SubmittedToken_IsNotLogged() throws Exception {
MockHttpServletRequest request = new MockHttpServletRequest("POST", "/openAllModules");
request.setCookies(new Cookie("token", "cookieCsrfToken972"));
request.addParameter("csrfToken", SUBMITTED_TOKEN);
MockHttpServletResponse response = new MockHttpServletResponse();
try (LogCapture logs = LogCapture.of(OpenAllModules.class)) {
new OpenAllModules().doPost(request, response);
assertFalse(
logs.messagesAtOrAbove(Level.ALL).stream().anyMatch(m -> m.contains(SUBMITTED_TOKEN)),
"CSRF token was logged: " + logs.messagesAtOrAbove(Level.ALL));
}
assertTrue(response.getContentAsString().contains("loggedOutSheep"));
}
@Test
public void doPost_MissingTokenParameter_RespondsAsLoggedOut() throws Exception {
MockHttpServletRequest request = new MockHttpServletRequest("POST", "/openAllModules");
request.setCookies(new Cookie("token", "cookieCsrfToken972"));
MockHttpServletResponse response = new MockHttpServletResponse();
new OpenAllModules().doPost(request, response);
assertTrue(response.getContentAsString().contains("loggedOutSheep"));
}
}