File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
package kr.itn.itnhub.config;
import kr.itn.itnhub.AbstractDbTest;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.test.web.servlet.MockMvc;
import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.csrf;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@AutoConfigureMockMvc
class SecurityConfigTest extends AbstractDbTest {
@Autowired
MockMvc mvc;
@Test
void 인증없이_api를_부르면_401이다() throws Exception {
mvc.perform(get("/api/orgs"))
.andExpect(status().isUnauthorized());
}
@Test
void 올바른_비밀번호로_로그인하면_200이다() throws Exception {
mvc.perform(post("/api/auth/login")
.param("username", "admin")
.param("password", "test-password")
.with(csrf()))
.andExpect(status().isOk());
}
@Test
void 틀린_비밀번호로_로그인하면_401이다() throws Exception {
mvc.perform(post("/api/auth/login")
.param("username", "admin")
.param("password", "wrong")
.with(csrf()))
.andExpect(status().isUnauthorized());
}
@Test
void 로그인_엔드포인트는_인증없이_접근할_수_있다() throws Exception {
mvc.perform(post("/api/auth/login")
.param("username", "nobody")
.param("password", "nothing")
.with(csrf()))
.andExpect(status().isUnauthorized()); // 403이 아니라 401이어야 한다
}
}