inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Chương trình phát triển hài hước của Hodolman (SpringBoot, Vue.JS, AWS)

총합 kiểm thử Security Custom WithMockUser

SecurityMockContext 로부터 유저 정보를 가져오기

261

작성자 없음

0 câu hỏi đã được viết

0

 @Test
    @DisplayName("글 삭제")
    @CustomMockUser
    void test7() throws Exception {
        // given
        UserPrincipal principal = (UserPrincipal) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
        Member byId = memberRepository.findById(principal.getUserId()).orElseThrow(UserNotFound::new);
        Post post = Post.builder()
                        .title("Hello World")
                        .content("Hello Java")
                        .member(byId)
                        .build();
        postRepository.save(post);

        // expected
        mockMvc.perform(delete("/posts/{postId}", post.getId()))
               .andExpect(status().isOk())
               .andDo(print());
    }

vue.js aws spring-boot jpa spring-security

Câu trả lời 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.
제공해 주신 정보에 따르면, Spring Security를 사용한 테스트 방법에 대해 알고 싶으신 것 같습니다. 테스트에서 특정 사용자의 권한을 가진 상태로 요청을 처리하는 예시는 다음과 같습니다.

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;

import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;

@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("/"))
}

}

위 예시에서는 @WithMockUser 어노테이션을 사용하여 테스트를 실행하는 사용자가 ‘ADMIN’ 역할을 가진 것처럼 설정되어 있습니다. 여러분의 테스트에서 @CustomMockUser와 유사한 방법을 사용하고 있다면, @WithMockUser나 Spring Security의 다른 테스트 지원 기능을 사용하여 권한을 설정할 수 있습니다.

더 자세한 내용이나 다른 Spring Security 테스트 관련 기능을 알고 싶으시면, Spring Security의 참조 문서를 확인하세요.

참조 링크: Spring Security reference documentation

Deprecated 관련 사항들

0

100

2

깃헙 collaboator 초대 관련

0

88

1

강의 듣다가 도커 이미지 생성시 각각도 가능하나 그렇게 사용하는데가 많은지 모르겠다라는 말을 듣고 남김니다

0

157

2

logout 후에 login 페이지 이동은 어디서 시켜주는건가요?

0

231

1

다중 데이터를 삭제 할 때

0

270

2

querydsl Q class 이슈

0

414

2

Windows WSL Vue 설정

2

246

1

Dip, @transactional

0

188

1

[vite] http proxy error: /auth/login

0

1043

2

로그인 하고 나서 GET요청으로 메인페이지 요청

0

234

2

GitHub Collaborator 초대 관련

0

256

2

Window에서 Vue.js 설정

0

321

2

(솔루션 수정)'tsyringe' Error: TypeInfo not known for "클래스명"

0

713

2

collaboator로 초대받을 수 있을까요??

0

283

2

given 부분이 길어질 때 어떻게 처리하면 좋을까요?

0

318

1

섹션9 프론트의 코드를 보고싶습니다,,,

0

423

1

Spring Security - defaultSuccessUrl 질문

0

625

1

강의 화면이 나오지 않습니다. 음성과 자막만 나와요

0

302

1

JPAQueryFactory(em)의 객체 생성자 오류에 대해서 질문이 있습니다ㅜㅜ

0

690

2

ExceptionHandler가 AccessDeniedHandler(Http403Handler)를 먹어버리는 현상

0

1179

2

섹션10 언제 나오나요?

0

484

1

CommentService에서 Repository를 호출하지 않는데도

0

342

1

Editor....를 활용한 패턴에 질문있습니다.

0

494

1

섹션9 vue

0

453

2