목록분류 전체보기 (36)
아님말고
네이버의 lucy 라이브러리를 이용하여 xss filter을 적용해보자 공식문서 : GitHub - naver/lucy-xss-servlet-filter 1. 라이브러리 가져오기 implementation 'com.navercorp.lucy:lucy-xss-servlet:2.0.1' 2. lucy-xss-servlet-filter-rule.xml 설정 xssPreventerDefender com.navercorp.lucy.security.xss.servletfilter.defender.XssPreventerDefender xssSaxFilterDefender com.navercorp.lucy.security.xss.servletfilter.defender.XssSaxFilterDefender lucy-x..
AWS의 KMS (key managerment service) 을 이용하여 DB 암복화을 구현해보자. local에서는 암복화를 실행하지 않고, 서버에서만 암복화를 실행한다고 했을때 아래와 같이 interface를 두고 local용 LocalKMSManager 와 서버용 BaseKMSManager을 구현한다. 1. KMS 암복화 모듈 개발 profile 환경에 따라 KMSManager 이름으로 bean을 등록한다. public interface KMSManager { public String encrypt(String plainText); public String decrypt(String encryptedText); } @Slf4j @Component("KMSManager") @Profile({"dev"..
계층형 아키텍처 우리가 익숙한 계층형 아키텍처 이다. 표현 계층은 사용자 요청을 받아 응용영역에 전달하고 처리 결과를 다시 사용자에게 보여주는 역할을 하는 Controller이고,응용 계층과 도메인 계층은 비즈니스 로직을 구현하는 Service이며, 인프라스트럭처 계층은 DB 연동을 처리하고, 메시지 큐에 메시지를 전송하거나 수신하는 기능을 구현하고 SMTP을 이용하여 메일을 발송하기도 한다. 계층구조의 문제는 상위 계층에서 하위 계층으로 의존한다는 것이다. 예를 들어 표현 계층은 응용 계층에 의존하고 응용 계층은 인프라스트럭처 계층에 의존한다. 그래서, 개발 순서도 DB 쿼리 작성하고 Dao를 만들어 Service가 호출하고 controller를 만든다. 한 마디로 DB가 왕이다. DB 테이블이 변경되..
token 의 알고리즘을 HS256으로 하게 되면 secret key 가 256bit 보다 커야 한다. 영어 알파벳이 8bit 이니, 영어 32자로 만들면 되겠다. 랜덤한 key를 자동으로 만들어 주는 사이트가 있다. RandomKeygen - The Secure Password & Keygen Generator RandomKeygen - The Secure Password & Keygen Generator RandomKeygen is a free mobile-friendly tool that offers a randomly generated keys and passwords you can use to secure any application, service or device. randomkeygen.c..
CustomFilter request Header에 추가하기 public class CustomFilter extends AbstractGatewayFilterFactory{ public GatewayFilter apply(Config config){ return ((exchange, chain) -> { exchange.getRequest().mutate().header("키", "값").build(); return chain.filter(exchange); }); } }
1. 호출할 API 8100 port로 기동하는 API 프로젝트를 만든다. application.yml server: port: 8100 controller @RestController public class RedisController { @GetMapping("hello") public String getHello() { return "hello!"; } } 2. API GATEWAY 8080 port로 기동하는 gateway 프로젝트를 만든다. build.gradle plugins { id 'java' id 'org.springframework.boot' version '2.7.5' id 'io.spring.dependency-management' version '1.1.0' } group = 'c..
1.NEXUS 접속정보 gradle.properties NEXUS_SNAPSHOT_URL=https://nexus2.amazonaws.com/nexus/repository/my-snapshots NEXUS_RELEASE_URL=https://nexus2.amazonaws.com/nexus/repository/my-releases NEXUS_USER_NAME=myId NEXUS_PASSWORD=1234 2.배포 script 작성 build.gradle group = 'com.myproject' //version = '1.1.0' version = '1.1.5-SNAPSHOT' sourceCompatibility = '17' publishing { repositories { maven { if(version..
여러 프로젝트에서 의존성 추가하여 사용 가능한 라이브러리 jar을 배포하는 방법을 알아보자. [테스트 환경] java : 17 spring boot : 2.7.10 gradle : 7.6.1 라이브러리용으로 gradle 프로젝트를 하나 만들어서 아래 내용되로 수정한다. 1.build.gradle 수정하기 plugins { id 'java' id 'org.springframework.boot' version '2.7.10' id 'io.spring.dependency-management' version '1.0.15.RELEASE' id 'maven-publish' } group = 'com.skt' version = '0.0.1-SNAPSHOT' sourceCompatibility = '17' publi..