인프런 커뮤니티 질문&답변

qheogus55님의 프로필 이미지
qheogus55

작성한 질문수

스프링부트 JUnit 테스트 - 시큐리티를 활용한 Bank 애플리케이션

본인계좌목록보기 컨트롤러 만들기

안녕하세요 인증이 필요한 url을 위하여 /s를 붙이는것에 대해 질문있습니다.

작성

·

50

0

안녕하세요 인증이 필요한 url을 위하여 /s를 붙이는것에 대해 질문있습니다.
실무에서도 url분리를 위해 /s만 붙이기도 하나요?
아니라면 url 설계를 어떤식으로 해야할지 팁을 알고싶습니당.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.
qheogus55님, 질문하신 URL 설계에 대해 인증이 필요한 URL을 구분하는 방법으로 ‘/s’를 붙이는 관행에 대해 직접적인 언급은 없습니다. 다만, URL 설계는 애플리케이션의 보안, 구조, 그리고 유지보수성을 고려하여 결정됩니다. 구체적으로 인증이 필요한 페이지를 구분하기 위한 일반적인 전략은 다음과 같습니다:

  1. 미들웨어 또는 인터셉터 사용: 요청을 처리하기 전에 인증 여부를 체크하여 인증되지 않은 요청은 로그인 페이지로 리다이렉트하거나 적절한 에러 메시지를 반환합니다.
  2. URL 네임스페이스: 인증이 필요한 리소스와 그렇지 않은 리소스를 명확하게 구분하기 위해 경로의 첫 부분에서 /auth, /secure 등의 네임스페이스를 사용할 수 있습니다.
  3. 문서화와 규칙 설정: 팀 내에서 URL 설계에 대한 명확한 가이드라인을 문서화하고, 이를 일관성 있게 따르는 것이 중요합니다.

Spring Boot와 Spring Security를 사용할 경우, @WithMockUser를 이용한 테스트 방법으로 인증이 필요한 URL에 접근하는 방법을 테스트할 수 있습니다. 예를 들어,

Java:

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.security.test.context.support.WithMockUser;
import org.springframework.test.web.servlet.MockMvc;

@WebMvcTest(UserController.class)
class MySecurityTests {

@Autowired
private MockMvc mvc;

@Test
@WithMockUser(roles = "ADMIN")
void requestProtectedUrlWithUser() throws Exception {
this.mvc.perform(get("/"));
}

}

Kotlin:

import org.junit.jupiter.api.Test
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest
import org.springframework.security.test.context.support.WithMockUser
import org.springframework.test.web.servlet.MockMvc
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders

@WebMvcTest(UserController::class)
class MySecurityTests(@Autowired val mvc: MockMvc) {

@Test
@WithMockUser(roles = ["ADMIN"])
fun requestProtectedUrlWithUser() {
mvc.perform(MockMvcRequestBuilders.get("/"))
}

}

위의 예제들처럼 테스트 환경에서 Spring Security의 @WithMockUser를 사용하여 다양한 인증 시나리오를 구현하고 검증할 수 있습니다.

마지막으로 인증이 필요한 URL 설계에 대한 구체적인 전략은 애플리케이션의 요구사항과 보안 정책에 따라 달라질 수 있으므로, 팀과 함께 가장 적합한 방식을 찾는 것이 좋습니다.

qheogus55님의 프로필 이미지
qheogus55

작성한 질문수

질문하기