Spring

Spring/Security

Spring Security) 싱글벙글 doFilterInternal() method 토큰 검증 후 DB접근에 대한 내 생각

Spring Security에서 토큰 검증 과정 검증 흐름 먼저 제가 작성한 코드가 어떤식으로 검증이 되는지 보겠습니다. 로그인 성공 토큰 생성 로그인 성공 -> 토큰을 생성하는 로직입니다. 토큰 검증 토큰을 검증하는 흐름을 보겠습니다. getUsername() 여기까지 로그인 후 토큰을 생성하고, 그 토큰을 검증하는 과정입니다. 이제부터 이 흐름에 왜 의문을 품었는지더 좋은 방법을 하나 하나 생각한 내용을 적겠습니다. 의문 발생 토이프로젝트를 하다가 받은 리뷰입니다. 인터넷과 강의에있는 내용을 그대로 받아들인 후 토큰 검증 과정을 구현했었는데 이러한 리뷰를 통해 왜 이렇게 해야 되는건지 고민하는 계기가 되었습니다. DB에 접근하지 않아도 User객체를 생성한다거나, 권한 정보만 들고와서 ContextH..

Spring/Rest Docs

Rest Docs) 컨트롤러 테스트에서 페이징 테스트는 어떻게 할 수 있을까?

Page 안에 있는 값을 먼저 살펴보자. Postman으로 조회했을 때 볼 수 있는 값이다. 이러한 형태는 어떻게 Rest Docs를 이용해서 나타낼 수 있을까? 엄청난 시간을 썼다. 저 모든 값을 다 필드로 나타내야 되는 건가? content 안에 있는 값에 접근해야 되는 건가? 어떻게 $.??.?? 이런 식으로 어떻게 접근해야 될까 시도를 엄청 많이했다. @RequestParam 값을 어떻게 처리해야 될까 전체 조회(페이징) 컨트롤러 먼저 내가 작성한 controller를 살펴보자. @GetMapping("/items") public Page readItemList(@RequestParam(value = "page", defaultValue = "0") Integer page, @RequestPara..

Spring/Rest Docs

Spring Rest Docs 3.0.0) 싱글벙글 requestParameters 사용법

https://docs.spring.io/spring-restdocs/docs/3.0.0-SNAPSHOT/reference/htmlsingle/#documenting-your-api-query-parameters Spring REST Docs Document RESTful services by combining hand-written documentation with auto-generated snippets produced with Spring MVC Test or WebTestClient. docs.spring.io 2.x 버전에서 param 사용법 3.0.0 부터 param 사용법 나처럼 삽질하는 사람이 없길....

Spring/Security

Spring Security) Spring Boot 3.1.0, Spring 6.1, Spring Security 6.1

Springboot 3.1.0 환경에서 Spring Security로 인증 방식을 구현하던 중 FilterChain 등록 코드에서 deprecated 에러 사인이 등장했다. Spring Security 6.1.0 SpringBoot 3.1.0 버전은 Spring Security 6.1.0 버전을 dependency 한다. 람다 DSL 사용 Lambda DSL은 버전 5.2부터 Spring Security에 있으며 람다를 사용하여 HTTP 보안을 구성할 수 있습니다. HTTP 보안의 람다 구성이 이전 구성 스타일과 어떻게 비교되는지 살펴보겠습니다. 람다를 사용한 구성 (lamda DSL) @Configuration @EnableWebSecurity public class SecurityConfig { @B..

Spring/오류

No Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based Creator

CommentSaveRequestDto public class CommentSaveRequestDto { private User user; private Post post; private String content; private Comment comment; public Comment toEntity(User user, Post post) { return Comment.builder() .user(user) .post(post) .content(content) .parent(comment) .build(); } } CommentController @PostMapping("/api/v1/post/{postId}/comment") public ResponseEntity save(@RequestBody Co..

Spring/Rest Docs

Spring REST Docs 필요한 기능들

pretty print 기본적으로 요청과 응답의 body가 텍스트로 쭉 나열된다. 크기가 작으면 상관 없지만, json 객체가 커진다면 제대로 확인하기 힘들어진다. pretty print 기능은 말 그대로 예쁘게 포매팅해준다. 스니펫을 모아 DocumentFilter를 만들때 넣어주면 된다. 기본 설정으로 사용하려면 초기화할때 넣어준다. mvc = MockMvcBuilders .webAppContextSetup(context) .apply(documentationConfiguration(restDocumentation) .operationPreprocessors() .withRequestDefaults(prettyPrint()) .withResponseDefaults(prettyPrint())) .bui..

초보병일이
'Spring' 카테고리의 글 목록 (3 Page)