From c863f1023b4b2bb35476715151bc2162bcdc0956 Mon Sep 17 00:00:00 2001 From: heshunme Date: Mon, 1 Jul 2024 18:39:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BAJWT=E6=B7=BB=E5=8A=A0=E4=BA=86?= =?UTF-8?q?=E7=9B=B4=E6=8E=A5=E6=A0=A1=E9=AA=8Ctoken=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E6=9C=89=E6=95=88=E8=80=8C=E4=B8=8D=E9=9C=80=E8=A6=81=E6=8F=90?= =?UTF-8?q?=E4=BE=9Busername=E7=9A=84=E5=8A=9F=E8=83=BD=E3=80=82=E6=8F=90?= =?UTF-8?q?=E9=AB=98=E5=85=B6=E9=B2=81=E6=A3=92=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/cmh/backend/Utils/JwtUtil.java | 27 ++++++++++++++++--- .../org/cmh/backend/Utils/JwtUtilTest.java | 10 +++++++ 2 files changed, 34 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/cmh/backend/Utils/JwtUtil.java b/src/main/java/org/cmh/backend/Utils/JwtUtil.java index b8faa1d..9d08a9b 100644 --- a/src/main/java/org/cmh/backend/Utils/JwtUtil.java +++ b/src/main/java/org/cmh/backend/Utils/JwtUtil.java @@ -30,14 +30,35 @@ public class JwtUtil { } public static String extractUsername(String token) { - return extractClaims(token).getSubject(); + try { + return extractClaims(token).getSubject(); + } catch (Exception e) { + return null; + } + } + + public static boolean isTokenValid(String token) { + try { + extractClaims(token); + } catch (Exception e) { + return false; + } + return true; } public static boolean isTokenValid(String token, String username) { - return username.equals(extractClaims(token).getSubject()) && !isTokenExpired(token); + try { + return username.equals(extractClaims(token).getSubject()) && !isTokenExpired(token); + } catch (Exception e) { + return false; + } } private static boolean isTokenExpired(String token) { - return extractClaims(token).getExpiration().before(new Date()); + try { + return extractClaims(token).getExpiration().before(new Date()); + } catch (Exception e) { + return true; + } } } diff --git a/src/test/java/org/cmh/backend/Utils/JwtUtilTest.java b/src/test/java/org/cmh/backend/Utils/JwtUtilTest.java index 6722473..1c9fe1e 100644 --- a/src/test/java/org/cmh/backend/Utils/JwtUtilTest.java +++ b/src/test/java/org/cmh/backend/Utils/JwtUtilTest.java @@ -43,5 +43,15 @@ public class JwtUtilTest { // Validate token expires within 10 hours Assert.assertTrue("Token should expire within 10 hours", expirationTime - currentTime <= 1000 * 60 * 60 * 10); } + + @Test + public void testInvalidToken() { + String invalidToken = "invalidToken"; + String validToken = JwtUtil.generateToken("validUser"); + Assert.assertFalse("Invalid token should not be valid", JwtUtil.isTokenValid(invalidToken)); + Assert.assertTrue("Valid token should be able to extract", JwtUtil.isTokenValid(validToken)); + Assert.assertFalse("Invalid token should not be valid", JwtUtil.isTokenValid(invalidToken, "validUser")); + Assert.assertTrue("Valid token should be valid", JwtUtil.isTokenValid(validToken, "validUser")); + } }