본문 바로가기

Study/SpringBoot14

[SpringBoot] 커스텀 애노테이션으로 Password규칙 적용하기 스프링 프레임워크가 기본적으로 제공하는 Validator이외의 Validator를 구현해야할 순간이 있습니다. 스프링은 컨트롤러에서 클라이언트에서 넘겨받은 값에 대한 검증을 JSR-303 기반으로 쉽고 강력하게 할 수 있습니다. 또 한 커스텀 한 어노테이션을 쉽게 구현할 수 있고 확장도 용이합니다. 애노테이션을 직접 만들기 위해서는 2가지 클래스가 필요합니다. @interface 클래스, ConstraintValidator의 구현 클래스 아래에서 작성하는 어노테이션은 해당 Password가 유효한지 검사를 하는 애노테이션입니다. 애노테이션 정의 import javax.validation.Constraint; import javax.validation.Payload; import java.lang.anno.. 2021. 1. 28.
[IntelliJ] Column Selection Mode(컬럼 선택 모드) for mac 개발을 하다 여러 줄을 동시에 편집해야 하는 순간이 생깁니다. Column Selection Mode(컬럼 선택 모드)? 먼저 컬럼 선택 모드라 부르는 기능이 무엇인지 살펴볼 필요가 있습니다. public class Student { private int age; private int tall; private String name; private String phoneNum; public Student(int age, int tall, String name, String phoneNum) { this.age = age; this.tall = tall; this.name = name; this.phoneNum = phoneNum; } } 현재 Student 클래스의 인스턴스들은 private으로 선언되어 .. 2021. 1. 28.
[SpringBoot] Swagger를 통한 REST 요청에 전역 jwt 인증하기 안녕하세요, 이 포스트는 Jwt 설정, Swagger설정이 이미 완료된 서비스에서 활용할 수 있는 방법을 소개합니다. 문제점 그림과 같이 Swagger를 사용하면서 각 API마다 @ApiImplicitParam 을 통해 JWT를 받아왔었는데요, 서비스가 확대되고, jwt 토큰 인증이 필요한 API가 많아 질 수록 코드의 양과 가독성이 나빠 졌습니다. 또한 스웨거를 통한 테스트 진행시 각 API마다 jwt를 입력해야 한다는 번거로움 또한 있었습니다. 그림과 같이 Authentication을 받는 모든 곳에 jwt를 입력해야 했음. 해결 Swagger version 2.9.2부터 이렇게 번거로운 일을 쉽게 바뀔 수 있는 기술이 들어갔다고 합니다. 소개에 앞서 결과부터 확인 해보겠습니다. 원래는 없었던 Aut.. 2021. 1. 25.
[Swagger] Multi @ApiResponse에 동일 코드 사용시 나타나는 에러 안녕하세요. Swagger를 통해 Api문서를 정리하다 신기한 점을 발견하고, 이를 해결했던 방법에 대해 설명하려 합니다. 초기 코드 @ApiOperation(value = "게시글 저장") @ApiResponses(value = { @ApiResponse(code = 201, message = "저장 성공", response = PostSaveResponseDto.class), @ApiResponse(code = 400, message = "등록되지 않은 개인 미션", response = ErrorResponse.class), @ApiResponse(code = 400, message = "등록되지 않은 유저", response = ErrorResponse.class), @ApiResponse(code.. 2021. 1. 22.
[Jenkins] ExcuteShell 명령어에서 sudo를 사용하기 위한 설정 위 캡쳐와 같이, 젠킨스에서 빌드 진행 시 관리자 권한으로 실행이 필요한 경우가 있습니다. ex) sudo sh ../work.sh jenkins에 별다른 권한을 주지 않았다면 무조건 빌드 에러가 발생합니다. 그래서 권한을 주는 방법을 소개하려 합니다. 주의!!!! /etc/sudoers 파일이 잘못된다면 (path 설정 잘못, 띄어쓰기 잘못 등) sudo를 사용하지 못하게 됩니다. 관리자 권한 설정은 항상 주의해 주세요. 젠킨스에 권한주기 관리자 권한 설정 파일을 엽니다. $ sudo vim /etc/sudoers jenkins에 관리자 권한을 제공하기 위해 아래의 내용을 추가 한 후 저장합니다. jenkins ALL=(ALL) NOPASSWD: ALL 결론 이렇게 하면, 젠킨스에 모든 권한을 주는 거.. 2021. 1. 22.