Spring에서는 인증 및 인가의 기능을 제공해주는 JAVA EE 프레임워크인 Spring Security를 제공한다. 이 프레임워크를 이용하게되면 여러사용자에대해 특정 요청에 대해 접근제한을 둘수가 있는데 Security에서는 이러한 부분을 동적으로 처리할 수 있는 기능을 제공하는데 예제코드와 함께 살펴보자. Security 설정중 일부 해당설정은 /study/list라는 요청은 ADMIN, USER의 권한을 가진 사용자만, /study/regist는 ADMIN 권한을 가진사용자만 요청할 수 있게 설정되있다. 고객의 요구사항중에 사용자별로 메뉴에 대해 권한을 제어할 수 있는 기능을 만들어 달라고 할때가 있다. 예를들어 USER의 권한을 가진 사용자를 ADMIN 권한으로 변경을 하게되면 이 사용자는 두 ..
Spring으로 개발을 하다보면 application.properties파일 또는 application.yml파일에 공통으로 쓰이는 프로퍼티를 정의하고정의된 값을 여러 Java 파일에서 참조해서 애플리케이션 개발이 진행되는데 대표적으로 파일경로가 있다. 하지만 이 설정파일에 데이터베이스 접속정보, JWT 암호화 키, 그 외 관련된 중요한 데이터들도 들어있을 수 있는데 이러한 정보들이 외부로부터 노출될 수 있기 때문에 이 정보들을 암호화를 하거나 외부에서 접근했을때 알아보지 못하게 해야한다. 이러한 방법으로 jasypt 라는 라이브러리를 제공해는데 이 라이브러리를 이용해 예제코드와 함께 알아보도록 하자. jasypt (Java Simplified Encryption) 란? Jasypt is a java l..
Spring으로 Rest API를 개발하고 그 API에 대한 문서를 정리하여 해당 API를 사용하는 클라이언트 및 서버 개발자들에게 문서를 정리해서 공유해야하는데 이때 Swagger를 이용하게되면 이런 작업을 보다 편리하게 할 수 있고 API 문서 자동화 뿐만 아니라 UI에서 직접 API 테스트로 할 수 있다. 예제코드와 함께 기본세팅법 부터 알아보자 개발환경 Spring Boot Maven Java 11 Swagger 의존성 추가 io.springfox springfox-swagger2 2.9.2 io.springfox springfox-swagger-ui 2.9.2 Swagger를 사용하기위해 pom.xml에 해당 의존성을 추가하자 Swagger 설정 추가 import java.util.ArrayLi..
우연히 어느 개발커뮤니티 사이트에 올라온 글을 보다 VO를 Map으로 변환해야 하는 질문글이 올라왔는데 그 방법이 궁금해서 이참에 Reflection을 이용하여 양방향으로 원하는 타입에 맞게 변환하는 코드를 작성해 보았습니다. VO Map HTML 삽입 미리보기할 수 없는 소스 결과 HTML 삽입 미리보기할 수 없는 소스 List List HTML 삽입 미리보기할 수 없는 소스 결과 HTML 삽입 미리보기할 수 없는 소스 참고로 Map에서 VO로 변환할 때 두번째 인자에 들어가는 Class 타입엔 해당 Class의 기본 생성자가 있어야한다.