From c74cbd1a1a9aeb9153b773e25be6bb3043c9d6e7 Mon Sep 17 00:00:00 2001 From: YongHwan Kim Date: Thu, 12 Sep 2024 16:38:46 +0900 Subject: [PATCH] =?UTF-8?q?[fix]=20ssl=20=EA=B0=B1=EC=8B=A0=20(#469)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [feat] 종목 현재가 갱신 시스템 구현 (#462) * feat: Kis 웹소켓 서비스 구현 * feat: 웹소켓 접근키 저장소 구현 * test: 웹소켓 접근키 저장소의 테스트 추가 * feat: tr-id 프로퍼티 추가 * fix: 웹소켓 접속 문제 해결 * feat: approvalKey에 대한 null 처리 추가 * feat: 정적 팩토리 추가 * test: 테스트 검증문 수정 * test: KisWebSocketClient connect 테스트 추가 * test: onClose 테스트 추가 * test: add sendMessage test * feat: oauth SecurityFilterChain 순서 변경 - 변경 이유 : 테스트용 SecurityFilterChain이 순서상 앞에 두기 위해서 * test: 테스트용 웹소켓 서버 설정 추가 * feat: 웹소켓 클라이언트에 실시간 종목 체결가 핸들링 메서드 구현 * test: 웹소켓으로 실시간 체결가를 조회하여 레디스에 저장하는 테스트 구현 * style: 투두 추가 및 메인 애플리케이션 이름 변경 * test: 테스트 서포트 클래스 support 패키지로 이동 * feat: StockPrice push 서비스 구현 * feat: WebClientConfig global 패키지로 이동 * fix: api로 요청하는 방식이 아닌 price 모듈에서 가져오는 방식으로 변경 * feat: StockPriceWebSocketClient 구현 * feat: connect 예외 처리 * rename: 패키지명 변경 * style: 코드 정리 * feat: 웹소켓 현재가 조회 API 구현 * feat: StockPriceDispatcher 구현 * feat: add log * test: solve test fail * feat: StockPriceWebSocket 스케줄러 구현 - 오전 8시30분에 웹소켓 재연결 - 오후 16시에 웹소켓 연결 해제 * refactor: extract method * feat: add stream filter * style: 코드 정리 * style: 코드 정리 * test: 테스트 추가 * test: 테스트 검증 수정 * feat: 포트폴리오 캐시 기능 추가 * feat: 캐시 TTL 설정 추가 * feat: 포트폴리오 종목 서비스에 캐시 로직 추가 * test: 캐시 관련 검증문 추가 * test: mock 설정 추가 * feat: 스케줄러 삭제 * feat: cors 프로파일별 설정 클래스 추가 (#464) * fix: test 프로파일 설정값 추가 및 클래스명 변경 * feat: appkey, secretkey 변경 (#466) * [feat] 로깅 추가 (#468) * feat: appkey, secretkey 변경 * feat: 로깅 추가 * feat: ssl 갱신 * feat: ssl release 추가 --- secret | 2 +- .../client/StockPriceWebSocketHandler.java | 4 ++-- src/main/resources/ssl/keystore.p12 | Bin 4324 -> 0 bytes src/main/resources/ssl/production/keystore.p12 | Bin 0 -> 2791 bytes src/main/resources/ssl/release/keystore.p12 | Bin 0 -> 2807 bytes 5 files changed, 3 insertions(+), 3 deletions(-) delete mode 100644 src/main/resources/ssl/keystore.p12 create mode 100644 src/main/resources/ssl/production/keystore.p12 create mode 100644 src/main/resources/ssl/release/keystore.p12 diff --git a/secret b/secret index 453bbd6f7..af5c3d6cc 160000 --- a/secret +++ b/secret @@ -1 +1 @@ -Subproject commit 453bbd6f79c9cf0fe9e91fd7f5af0f5da0bebdeb +Subproject commit af5c3d6cc6a5357b81ab3e1dae5e6c6decaf420f diff --git a/src/main/java/co/fineants/price/domain/stockprice/client/StockPriceWebSocketHandler.java b/src/main/java/co/fineants/price/domain/stockprice/client/StockPriceWebSocketHandler.java index 79846de57..64759194d 100644 --- a/src/main/java/co/fineants/price/domain/stockprice/client/StockPriceWebSocketHandler.java +++ b/src/main/java/co/fineants/price/domain/stockprice/client/StockPriceWebSocketHandler.java @@ -36,7 +36,7 @@ public void handleMessage(@NotNull WebSocketSession session, WebSocketMessage } else if (isRealTimeSigningPriceMessage(payload)) { handleStockTextMessage(payload); } else { - log.info("Received Message : {}", message); + log.info("Received Message : {}", message.getPayload()); } } @@ -56,7 +56,7 @@ private void handleStockTextMessage(String message) { String currentPrice = values[2]; KisCurrentPrice kisCurrentPrice = KisCurrentPrice.create(ticker, Long.valueOf(currentPrice)); currentPriceRedisRepository.savePrice(kisCurrentPrice); - log.debug("save the stock currentPrice, {}", kisCurrentPrice); + log.info("save the stock currentPrice, {}", kisCurrentPrice); } @Override diff --git a/src/main/resources/ssl/keystore.p12 b/src/main/resources/ssl/keystore.p12 deleted file mode 100644 index 7efa17afe27783875fa19bb8c2621b7fc574368a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4324 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 G^S=PJK_*N9 diff --git a/src/main/resources/ssl/production/keystore.p12 b/src/main/resources/ssl/production/keystore.p12 new file mode 100644 index 0000000000000000000000000000000000000000..36c9ef6109ecc979a6525e6ddc56de67488c8790 GIT binary patch literal 2791 zcmai$X*ARi7sqE9gRvHdkqPm)Ccm*{$dV9amwm}Ddng$xGK0wwvbI>qQudI&nq*03 zC(14&>tKi|Gf)5XJf~hh=bn4+`F`(0t1*4z{4IvS!DW*#RL43(6{{GM#VH zgMons1h7L{{(Fsql?enOp{%Y11F#n(1S|vLo=(x`g@t53Pacqd8-`6GM&nruyw5&~ z?`rXziA}j$y1m%MOZYw3gk(v!DmU2eu~m6deb*OCl#bW*D;Y+8(Fa{`*YzFLTNF4vu+&ufeU%&K}{Ncs0Kt`*<( zC+1y5N9xW|B6(`0U!lHk(9Z|UiDzIJA9+`l32AJ2APY)>P;? zac-UVo|+L|o%uMR^mQXh6WkwV3`?dR@_6RiTCR!9(j7DWAO#x?VekkgO{-L%%x;r& zdiLLK00%1yyoSO~Sj)b?+)xu!kMKWZfV?{Kws76eIYzQReQ;OJ6O?x#( z8yAqRq=C&jP{3tzp&4Pc{=?%>ZSW7?EJn#BS&8J^^>4&*rbH`6gie-u?jTbIJ5HMk@Qkvk2MUHRh9N5!& zcRkuAGV`_8=S;mlu&2LF8Ea~Pcx#GHGL)6oy0eumB|Qke$ zMhIzUH<;uNUpzjq2>B&?BMr+g>V_a}5DrNHP<89=igVhEm@s1|mjJS*ZJ5HvD?d(P z!^4&Y=TJsLM9u~WS^y^e!Na4;8e7bd%!>K&VNx=O>c=qb{1V*ai$#9IuR3}9t&M_d z2axMt^#$#z5BsK)2oWrJuU`E2S`O|)G@^nSWSBk6pLnJIYIU8L)>FvVGMDzVzEPGF z`CTgR0UlfG{D*+ajE>u&Dlo^vah6Y7rLd=IA*P?Uks@k!M&R%u# zz;os4lqlEP?9%ynGmk;#d({)z7&fIzyDDFG#j@jvzuwKA)Iajn;Tw)TQ?**oBpv#! z1`ai}7F8}t6I!p$&&RC{vSe9Xl3=}Gf|*17RL6$wmS4A(5HmiFNGS8~rgI?P>Z_8_rpuBQ z%-iy!XxRP4j!kCtrERyh4q;8bQe+1`LX@Z7iHr<&T-v=&dD`XBjN#uC0{Hm#54{Ve zw9Jim+LXtinFhwGM#dj2FRc(9X48z*VH0;apL$NpD*C2iBG{KY^HH{6(d@emgc@17 zI{MWq$lrEm7jq}vU?C?4tbN%;f zG7v5TQCy+FmaX3erJBp|Fc)0Lw3T;+BVI|E=xN^PI`73_WY0)Gl6Sm8=sc8(-<`b@ zCoP>&543wPhTT^=hXWt!bB>s>zrWpA5AwbUQu&CBm+$SgjkbQSTW$EoIqE?#-{f)V)?gd{?K56dGc4GRin>6iKq^ z&a(G1blK@NXxk_1&R=sbY!!Mc5&rl#ZY2&amwKYwIrW01$nPJ-EoDtRt`3ZdPfru{ zkT%uYNgf@UsLxh2TzhuM?j259uHPl1B=Q=MA{q>vOkAJ;b5{dJG_YrH++joxQQ5z%Fz9Cbvllny_6RHlG5Eq? zcR!%jPngR+Op)#OA?l{)NeAYp(ezwrgAPx{Y>U0?*{RvTQM=*Q08#JbBPh^-HRDQj>RDnk$WZhACRx#48?aNq9tDZ8U|I;_*VWyzl7=w<+&y z=(e721>KPjpGV)gl6HijSs}z;qpT!e)T`x9$~itzVkb$OJOplGzj`NKcJJ~NO>Axw zm|99~FYBrB$fHdtGn9+v?AoE!0lq)!u=1i{7OWZOp Wp%E0I5SB4@-;%RpXaD&(!2bY8f(+dN literal 0 HcmV?d00001 diff --git a/src/main/resources/ssl/release/keystore.p12 b/src/main/resources/ssl/release/keystore.p12 new file mode 100644 index 0000000000000000000000000000000000000000..5c75e7a70968b2a758d399f7d0b44d5a69d256b4 GIT binary patch literal 2807 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 nc*ISTvS9k^0W~*G`_^|%H5Y%5wl#