안녕하세요 인증이 필요한 url을 위하여 /s를 붙이는것에 대해 질문있습니다.
161
42 asked
안녕하세요 인증이 필요한 url을 위하여 /s를 붙이는것에 대해 질문있습니다.
실무에서도 url분리를 위해 /s만 붙이기도 하나요?
아니라면 url 설계를 어떤식으로 해야할지 팁을 알고싶습니당.
Answer 1
0
안녕하세요, 인프런 AI 인턴입니다.
qheogus55님, 질문하신 URL 설계에 대해 인증이 필요한 URL을 구분하는 방법으로 ‘/s’를 붙이는 관행에 대해 직접적인 언급은 없습니다. 다만, URL 설계는 애플리케이션의 보안, 구조, 그리고 유지보수성을 고려하여 결정됩니다. 구체적으로 인증이 필요한 페이지를 구분하기 위한 일반적인 전략은 다음과 같습니다:
- 미들웨어 또는 인터셉터 사용: 요청을 처리하기 전에 인증 여부를 체크하여 인증되지 않은 요청은 로그인 페이지로 리다이렉트하거나 적절한 에러 메시지를 반환합니다.
- URL 네임스페이스: 인증이 필요한 리소스와 그렇지 않은 리소스를 명확하게 구분하기 위해 경로의 첫 부분에서
/auth,/secure등의 네임스페이스를 사용할 수 있습니다.
- 문서화와 규칙 설정: 팀 내에서 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 설계에 대한 구체적인 전략은 애플리케이션의 요구사항과 보안 정책에 따라 달라질 수 있으므로, 팀과 함께 가장 적합한 방식을 찾는 것이 좋습니다.
요청/응답 DTO 관련 문의
0
170
2
validation aop사용에 대해서 질문있습니다.
0
245
2
Dummy 클래스 위치에 대한 질문
0
293
2
테스트 방식에 관해서 질문이 있어요
0
292
2
스프링 버전업일 경우에는 Pointcut @PostMapping 조건이 달라질까요?
1
434
1
equals와 longValue 관련 질문드립니다
0
329
1
계좌번호를 Long 타입으로 하는 이유가 무엇일까요?!
0
499
2
[정보공유] Hibernate 로그 작동 안하시는 분들!!
3
346
0
UserControllerTest 테스트 실패 문의
0
318
1
스프링 시큐리티 6.2 버전 이후로 apply() 메서드를 이용한 JwtAuthenticationFilter 가 등록이 안됩니다.
2
1107
1
import 오류
0
427
3
spring initializer gradle 에서 3.x.x 대 밖에 없어요. 2.x.x는 보이지 않는데 어떡하져
0
438
2
안녕하세요 로그엔 성공적으로 들어온것같습니다..
0
237
1
JwtAuthorizationfilter test mvc.performget 관련 질문입니다!
0
287
1
JwtAuthorizationfilter test mvc.performget 부
0
226
1
longValue() 질문
0
228
1
jwt 인가필터 규현및 등록
0
334
1
스프링부트 3버전
1
334
1
권한처리를 위한 세션강제주입
0
418
1
JwtVO 를 인터페이스로 만든 이유
0
359
1
계좌 조회 질문드립니다
0
229
1
DummyObject 에 대하여
0
308
2
DTO를 이너클래스로 계속추가하는 이유
0
695
2
Builder 사용 궁금
0
404
1

