Spring

    [Spring] JASYPT 적용하기

    JASYPT 적용하기 JASYPT는 'Java Simplified Encryption'의 약어이다. 개발자가 암호화 작동 방식에 대한 깊은 지식 없이도 최소한의 노력으로 프로젝트에 기본 암호화 기능을 추가할 수 있는 JAVA 라이브러리이다. 단방향 및 양방향 암호화를 위한 보안 수준이 높은 표준 기반 암호화 기술이다. Hibernate과 transparent한 통합이 가능하다. Spring 기반 어플리케이션과의 통합에 적합 하며 Spring Security 와도 통합 가능하다. 어플리케이션 구성을 암호화하기 위한 통합 기능을 가지고 있다. .properties 파일이나 .yml 파일 등에서 민감한 정보가 있고 암호화할 필요성이 있을 때에도 사용할 수 있다. 이 글은 해당 상황일 때를 기반으로 작성하였다...

    [Spring] HATEOAS에 대해

    WHY HATEOAS?? what is RESTful API? /employees/3 은 REST 가 아니다. 단순히, GET, POST,etc 또한 REST 가 아니다. CRUD 를 사용한다고 해서 REST 가 아니다. 위의 방법들로 빌드한 것은 RPC(Remote Procedure Call)이라고 보는 것이 맞다. 왜냐하면, 이것들만 가지고서는 서비스와 어떤 상호작용을 하고 있는지 알 길이 없기 때문이다. 만약 서비스를 개시하고 싶다면, 이런 정보에 대한 docs 나 portal를 작성해야 하는 것이 맞다. REST 창시자 Roy Fielding은 다음과 같이 말했다. If the engine of application state (and hence the API) is not being driven..

    [Spring] Rest Docs 이용해보기

    [Spring] Rest Docs 이용해보기

    RestDocs를 이용하면 API에 대한 문서를 생성할 수가 있다. 수행하려는 Test클래스에 @AutoConfigureRestDocs 다음과 같은 어노테이션을 사용해주면 준비는 완료된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 mockMvc.perform(post("/api/events/") .contentType(MediaType.APPLICATION_JSON_UTF8) .accept(MediaTypes.HAL_JSON) .conte..

    [Spring] EventResource를 이용한 HATEOAS 적용

    [Spring] EventResource를 이용한 HATEOAS 적용

    bepoz-study-diary.tistory.com/197 [Spring] HATEOAS에 대해 WHY HATEOAS?? what is RESTful API? /employees/3 은 REST 가 아니다. 단순히, GET , POST ,etc 또한 REST 가 아니다. CRUD 를 사용한다고 해서 REST 가 아니다. 위의 방법들로 빌드한 것은 RPC(Remote Procedure.. bepoz-study-diary.tistory.com HATEOAS를 적용하기 위해 EventResource를 이용해 보겠다. 앞서서 HATEOAS 1.0.2 이후로 ResourceSupport => RepresentaionModel Resource => EntityModel Resources => CollectionM..

    [Spring] Errors Serializer 만들기

    Errors는 자바 빈 스펙을 따르지 않기 때문에 Serialize 할 수 없다. 하지만 Errors를 꼭 body에 넣어서 그 값을 json으로 보고싶을 경우에 serializer를 따로 생성해줄 수가 있다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 @JsonComponent public class ErrorsSerializer extends JsonSerializer { @Override public void serialize(Errors errors, JsonGenerator gen, SerializerProvider serializers) throws IOExce..

    [Spring] @Autowired 생성자 주입방법에 대해서

    생성자 방식으로 @Autowired를 진행할 때에 생성자가 1개이면 @Autowired 를 생략할 수 있다고 배웠다. 1 2 3 4 5 6 7 8 public class EventController { private final EventRepository eventRepository; @Autowired public EventController(EventRepository eventRepository) { this.eventRepository = eventRepository; } Colored by Color Scripter cs 위의 코드에서 @Autowired 를 생략할 수 있다는 말이다. 더불어서 1 2 3 4 5 @RequiredArgsConstructor public class EventCont..

    [Spring] ResponseEntity에 대해서

    [Spring] ResponseEntity에 대해서

    오픈 api 를 기반으로 한 프로젝트를 진행하려다 UriComponentsBuilder 라던지 ResponseEntity 등등의 많은 지식 부족으로 인해 어려움을 겪었고 또 다시 인강을 통한 공부에 들어갔다. 먼저 모르는 것들을 집고 넘어가야 이후에도 원활한 진행이 가능할 것 같다. 일반적인 @RestController 에서 return "hello" 의 경우 status code(상태코드)를 200으로 채우고 body를 "hello" 라는 string 문자열로 채우고 return 을 한다. ResponseEntity는 status code 와 body 값 그리고 더 나아가서 header 값을 내가 원하는대로 설정을 할 수 있게끔 도와준다. ResponseEntity는 RequestEntity 와 함께 ..

    [Spring] @JsonFilter 를 이용한 필드값 필터링하기

    [Spring] @JsonFilter 를 이용한 필드값 필터링하기

    이름, 가입일자, 비밀번호, 주민번호를 가진 User 클래스를 api가 요청한 상황에서 비밀번호와 주민번호는 보여주기 싫은 경우에 해당 필드위에 @JsonIgnore 이라는 어노테이션을 사용하거ㅏ 클래스에 @JsonIgnoreProperties(value={"password","ssn"}) 등을 이용하여 응답을 무시할 수 있다. 이렇게 특정 필드만 보여주고 싶을 때에 @JsonFilter 어노테이션을 사용할 수 있다. 다음과 같이 User 라는 도메인이 존재하고 해당 클래스에 필터를 처리하고 싶을 때에 @JsonFilter("필터명") 을 선언 해준다. 그리고 api가 정의되어 있는 해당 코드에서 세부 처리를 해주면 된다. SimpleBeanPropertyFilter filter = SimpleBeanP..