BackEnd/스프링
-
BDDMokito.given return nullBackEnd/스프링 2022. 7. 29. 16:31
Controller 에서는 BoardRequest 를 받고, 서비스는 Board 를 받아 Mocking 할 때 특정 Board 를 생성해 given 인자로 사용하면 항상 null이 반환된다. 테스트 코드에서 들어가는 request 와 서비스 Mocking 에 인자는 다른 객체이기 때문에 any 로 타입명시를 해줘 해결했다. given(boardService.save(any(Board.class) )).willReturn(board); String body = objectMapper.writeValueAsString(boardRequest); mockMvc.perform(post("/api/boards") .content(body) .contentType(MediaType.APPLICATION_JSON))..
-
@AuthenticationPrincipal nullBackEnd/스프링 2022. 7. 28. 19:59
CustomService 에서 반환하는 Class 인 User 클래스로 @AuthenticationPrincipal 어노테이션에 들어온다는 정보가 많은데, 그것은 스프링 기본인 AbstractUserDetailAuthenticationProvider 를 사용하면 UserDetailService 에서 반환한 객체를 principal 로 세팅하기 때문이고, 나는 Provider 를 직접 생성했고 principal 에 username (이메일) 정보만 꺼내서 넣었기 때문에 String 으로 값이 들어온다. @AuthenticationPrincipal 필드 타입을 잘못 지정하면 null 이 들어온다. //AbstractUserDetailAuthenticationProvider.class public Authen..
-
-
@Value 는 객체 bean 등록 필수, static 키워드 사용 xBackEnd/스프링 2022. 7. 23. 23:50
1. @Value 는 Bean 등록 후 property 에서 값을 주입해주므로 @Value 를 사용하는 객체를 @Bean, @Component 로 등록해야한다. 2. FileUtil 을 생성하면서 업로드나 경로를 얻는 것을 어디서든 편하게 사용하려고 static 메서드로만 채우면서 @Value 로 설정한 fileUploadPath 필드를 static 메서드에서 사용하기 위해 static 변수로 선언했는데, property 에서 읽은 값이 들어오지 않았다. 아래와 같은 글을 발견하고 static 을 전부 삭제하니 정상적으로 동작한다. https://stackoverflow.com/questions/28636060/spring-value-often-null Spring @Value("${}") often n..
-
form-data RequestDTO 매핑 @Setter 필수BackEnd/스프링 2022. 7. 23. 23:45
Postman 으로 보내는 form-data 가 BoardRequest 에 mapping 이 잘되지 않고 에러가 나거나 null 값이 들어왔다. 결론적으로는 BoardRequest 에 @Setter 를 추가했더니 값이 잘 들어오는 것을 확인했다. @PostMapping(value="/boards" , consumes = {MediaType.MULTIPART_FORM_DATA_VALUE}, produces = {MediaType.APPLICATION_JSON_VALUE} ) public ResponseEntity save( @Valid BoardRequest request ){ ... } RequestDTO public class BoardRequest { private Title title; privat..
-
-
스프링 시큐리티 정리BackEnd/스프링 2022. 6. 24. 15:35
Authentication 현재 접근하는 주체의 정보과 권한을 담는 인터페이스 AbstractAuthenticationToken Authentication을 상속하고 있다. AbstractAuthenticationToken 을 상속해 custom Authentication 을 만들 수 있다. -JWTAccessTokenAuthenticationToken , -UsernamePasswordAuthenticationToken AuthenticationProvider -실제 인증에 대한 처리, Authentication 을 받아 인증이 완료된 Authentication를 반환 -인증 처리는 UserDetailService , JWTProvider 같은 서비스를 호출해 UserDetail 에 해당하는 객체를 가..
-