From 544a653f4747f34e133bb794e9a146a738cd33e2 Mon Sep 17 00:00:00 2001 From: Hyojin Ahn Date: Fri, 19 Jun 2026 09:31:28 -0400 Subject: [PATCH] =?UTF-8?q?=EB=A1=9C=EA=B7=B8=EC=9D=B8=ED=95=A0=20?= =?UTF-8?q?=EB=95=8C=20=ED=86=A0=ED=81=B0=20=ED=99=95=EC=9D=B8=20=EC=A0=9C?= =?UTF-8?q?=EC=99=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../goi/erp/config/JwtAuthenticationFilter.java | 16 +++++++++++++++- .../java/com/goi/security/PasswordHashTest.java | 15 +++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 src/test/java/com/goi/security/PasswordHashTest.java diff --git a/src/main/java/com/goi/erp/config/JwtAuthenticationFilter.java b/src/main/java/com/goi/erp/config/JwtAuthenticationFilter.java index b68b570..c86836f 100644 --- a/src/main/java/com/goi/erp/config/JwtAuthenticationFilter.java +++ b/src/main/java/com/goi/erp/config/JwtAuthenticationFilter.java @@ -54,7 +54,13 @@ public class JwtAuthenticationFilter extends OncePerRequestFilter { return; } - UserDetails userDetails = userDetailsService.loadUserByUsername(username); + UserDetails userDetails; + try { + userDetails = userDetailsService.loadUserByUsername(username); + } catch (Exception e) { + filterChain.doFilter(request, response); + return; + } // 1. JWT 자체 유효성 if (!jwtService.isTokenValid(jwt, userDetails)) { @@ -86,6 +92,14 @@ public class JwtAuthenticationFilter extends OncePerRequestFilter { SecurityContextHolder.getContext().setAuthentication(authentication); filterChain.doFilter(request, response); } + + @Override + protected boolean shouldNotFilter(HttpServletRequest request) { + String p = request.getServletPath(); // context-path(/auth-service) 제외된 경로 + return p.equals("/auth/login") + || p.equals("/auth/token/refresh") + || p.equals("/auth/login/system"); + } /** * JWT 추출 우선순위: diff --git a/src/test/java/com/goi/security/PasswordHashTest.java b/src/test/java/com/goi/security/PasswordHashTest.java new file mode 100644 index 0000000..01cd7f7 --- /dev/null +++ b/src/test/java/com/goi/security/PasswordHashTest.java @@ -0,0 +1,15 @@ +package com.goi.security; + +import org.junit.jupiter.api.Test; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; + +class PasswordHashTest { + + @Test + void generate() { + String hash = new BCryptPasswordEncoder().encode("1111"); + System.out.println("HASH = " + hash); + System.out.println("matches = " + new BCryptPasswordEncoder().matches("1111", hash)); + } + +}