본문 바로가기

spring9

Spring Security 인증 기본 구조 Spring Security의 인증에 사용되는 기본 구조와 component에 대해서 알아보도록 하자. (Spring Security는 인증 및 보안과 관련하여 관련하여 많은 기능들을 담고 있으나 여기서는 인증 관련하여 기본 구조만 알아보도록 하겠다) AuthenticationFilter 인증(authentication) 요청을 Spring Security에서 처리할 수 있도록 Authentication 객체로 변환시킨 뒤 이를 AuthenticationManager로 처리를 위임한다. AuthenticationManager에서 처리 후 Filter에서 성공/실패에 대한 응답을 핸들링을 한다. AuthenticationManager (implementation: ProviderManager) Authen.. 2021. 7. 18.
Spring JPA Querydsl 세팅 (with Kotlin) Spring Data JPA를 사용한 Spring Boot 프로젝트 기반으로 코드를 작성할 때 Command 작업은 큰 문제는 없지만 집계와 같은 Query 성 작업은 JPA 로는 어느정도 한계가 있다. JPQL을 사용할 순 있겠지만 String base로 코드가 작성되기 때문에 작업을 하면서 실수가 날 여지가 있고 직접 실행하지 않는 이상 이 실수를 알기 힘든 경우가 있다. Querydsl 를 사용하면 이러한 JPQL의 단점을 보완할 수 있다. Querydsl 에서 생성해준 컴파일 된 코드 기반으로 쿼리를 작성하기 때문에 일단 쿼리 작성 자체가 매우 쉬워지고 컴파일 시점에서 오류 또한 찾을 수 있다. 이번 포스팅은 Kotlin 기반의 Spring Boot 프로젝트에 JPA 기반 Querydsl 을 세팅.. 2021. 6. 7.
Rest Assured 테스트 시 redirect 막기 Rest Assured 를 사용하여 서버에 요청을 보낼 때 Spring Web application 에서 Found 와 같은 Redirect 응답을 하면 Controller 리턴하는 Redirect 응답이 오는 것이 아니라, Redirect 처리가 되어 Location header의 URL로 요청을 보낸 응답이 와서 assertion이 실패되는 케이스가 있었다. 에를 들어 Controller 에서 아래와 같이 Redirect 에 대한 ResponseEntity 를 응답할 때 Rest Assured 에서는 https://devs0n.tistory.com/ 에 대한 응답을 받는 것이다. ResponseEntity .status(HttpStatus.FOUND) .location(URI.create("https.. 2021. 6. 3.