fix: WIP
This commit is contained in:
parent
015216df5f
commit
bd5fe360c7
@ -97,7 +97,8 @@ public class IDOREditOtherProfiile extends AssignmentEndpoint {
|
|||||||
.feedback("idor.edit.profile.failure3")
|
.feedback("idor.edit.profile.failure3")
|
||||||
.output(currentUserProfile.profileToMap().toString())
|
.output(currentUserProfile.profileToMap().toString())
|
||||||
.build();
|
.build();
|
||||||
} else if (userSubmittedProfile.getUserId().equals(authUserId)) {
|
} else if (userSubmittedProfile.getUserId() != null
|
||||||
|
&& userSubmittedProfile.getUserId().equals(authUserId)) {
|
||||||
return failed(this).feedback("idor.edit.profile.failure4").build();
|
return failed(this).feedback("idor.edit.profile.failure4").build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,130 @@
|
|||||||
|
package org.owasp.webgoat.lessons.idor;
|
||||||
|
|
||||||
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
|
||||||
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import org.hamcrest.CoreMatchers;
|
||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.mockito.Mockito;
|
||||||
|
import org.owasp.webgoat.container.plugins.LessonTest;
|
||||||
|
import org.owasp.webgoat.container.session.UserSessionData;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
|
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
|
||||||
|
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
|
||||||
|
|
||||||
|
class IDOREditOtherProfiileTest extends LessonTest {
|
||||||
|
@BeforeEach
|
||||||
|
public void setup() {
|
||||||
|
Mockito.when(webSession.getCurrentLesson()).thenReturn(new IDOR());
|
||||||
|
this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build();
|
||||||
|
Mockito.when(webSession.getUserName()).thenReturn("unit-test");
|
||||||
|
}
|
||||||
|
|
||||||
|
private ObjectMapper mapper = new ObjectMapper();
|
||||||
|
@Autowired
|
||||||
|
private UserSessionData userSessionData;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void solveRed() throws Exception {
|
||||||
|
userSessionData.setValue("idor-authenticated-user-id", ""
|
||||||
|
UserProfile userProfile = new UserProfile("2342384");
|
||||||
|
userProfile.setRole(0);
|
||||||
|
userProfile.setColor("red");
|
||||||
|
mockMvc
|
||||||
|
.perform(
|
||||||
|
MockMvcRequestBuilders.put("/IDOR/profile/{userId}", "2342388")
|
||||||
|
.contentType(MediaType.APPLICATION_JSON)
|
||||||
|
.content(mapper.writeValueAsString(userProfile)))
|
||||||
|
.andExpect(status().isOk())
|
||||||
|
.andExpect(jsonPath("$.lessonCompleted", CoreMatchers.is(true)));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void solveBlack() throws Exception {
|
||||||
|
UserProfile userProfile = new UserProfile("2342384");
|
||||||
|
userProfile.setRole(0);
|
||||||
|
userProfile.setColor("black");
|
||||||
|
mockMvc
|
||||||
|
.perform(
|
||||||
|
MockMvcRequestBuilders.put("/IDOR/profile/{userId}", "2342388")
|
||||||
|
.contentType(MediaType.APPLICATION_JSON)
|
||||||
|
.content(mapper.writeValueAsString(userProfile)))
|
||||||
|
.andExpect(status().isOk())
|
||||||
|
.andExpect(jsonPath("$.lessonCompleted", CoreMatchers.is(true)));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void roleNotChanged() throws Exception {
|
||||||
|
UserProfile userProfile = new UserProfile("2342384");
|
||||||
|
userProfile.setRole(2);
|
||||||
|
userProfile.setColor("red");
|
||||||
|
mockMvc
|
||||||
|
.perform(
|
||||||
|
MockMvcRequestBuilders.put("/IDOR/profile/{userId}", "2342388")
|
||||||
|
.contentType(MediaType.APPLICATION_JSON)
|
||||||
|
.content(mapper.writeValueAsString(userProfile)))
|
||||||
|
.andExpect(status().isOk())
|
||||||
|
.andExpect(jsonPath(
|
||||||
|
"$.feedback", CoreMatchers.is(messages.getMessage("idor.edit.profile.failure1"))));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void colorNotChanged() throws Exception {
|
||||||
|
UserProfile userProfile = new UserProfile("2342384");
|
||||||
|
userProfile.setRole(1);
|
||||||
|
userProfile.setColor("black");
|
||||||
|
mockMvc
|
||||||
|
.perform(
|
||||||
|
MockMvcRequestBuilders.put("/IDOR/profile/{userId}", "2342388")
|
||||||
|
.contentType(MediaType.APPLICATION_JSON)
|
||||||
|
.content(mapper.writeValueAsString(userProfile)))
|
||||||
|
.andExpect(status().isOk())
|
||||||
|
.andExpect(jsonPath(
|
||||||
|
"$.feedback", CoreMatchers.is(messages.getMessage("idor.edit.profile.failure2"))));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void wrongColorAndRoleUsed() throws Exception {
|
||||||
|
UserProfile userProfile = new UserProfile("2342388");
|
||||||
|
userProfile.setRole(2);
|
||||||
|
userProfile.setColor("purple");
|
||||||
|
mockMvc
|
||||||
|
.perform(
|
||||||
|
MockMvcRequestBuilders.put("/IDOR/profile/{userId}", "2342388")
|
||||||
|
.contentType(MediaType.APPLICATION_JSON)
|
||||||
|
.content(mapper.writeValueAsString(userProfile)))
|
||||||
|
.andExpect(status().isOk())
|
||||||
|
.andExpect(jsonPath(
|
||||||
|
"$.feedback", CoreMatchers.is(messages.getMessage("idor.edit.profile.failure3"))));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void wrongUserId() throws Exception {
|
||||||
|
UserProfile userProfile = new UserProfile("2342384");
|
||||||
|
mockMvc
|
||||||
|
.perform(
|
||||||
|
MockMvcRequestBuilders.put("/IDOR/profile/{userId}", "2342388")
|
||||||
|
.contentType(MediaType.APPLICATION_JSON)
|
||||||
|
.content(mapper.writeValueAsString(userProfile)))
|
||||||
|
.andExpect(
|
||||||
|
jsonPath(
|
||||||
|
"$.feedback", CoreMatchers.is(messages.getMessage("idor.edit.profile.failure3"))));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void noUserId() throws Exception {
|
||||||
|
UserProfile userProfile = new UserProfile();
|
||||||
|
mockMvc
|
||||||
|
.perform(
|
||||||
|
MockMvcRequestBuilders.put("/IDOR/profile/{userId}", "2342388")
|
||||||
|
.contentType(MediaType.APPLICATION_JSON)
|
||||||
|
.content(mapper.writeValueAsString(userProfile)))
|
||||||
|
.andExpect(
|
||||||
|
jsonPath(
|
||||||
|
"$.feedback", CoreMatchers.is(messages.getMessage("idor.edit.profile.failure3"))));
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user