From 15e9dfb93b5f12fc8c99ecd97e2f29e75786eb5f Mon Sep 17 00:00:00 2001 From: Jesse Brault Date: Tue, 6 Aug 2024 11:08:15 -0500 Subject: [PATCH] Added action to SecurityExceptionView. --- .../mealsmadeeasy/api/security/JwtFilter.java | 17 ++++++++++++++--- .../api/security/SecurityExceptionView.java | 12 +++++++++++- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/main/java/app/mealsmadeeasy/api/security/JwtFilter.java b/src/main/java/app/mealsmadeeasy/api/security/JwtFilter.java index 0bc2ddd..6ee6f0f 100644 --- a/src/main/java/app/mealsmadeeasy/api/security/JwtFilter.java +++ b/src/main/java/app/mealsmadeeasy/api/security/JwtFilter.java @@ -38,8 +38,13 @@ public final class JwtFilter extends OncePerRequestFilter { this.objectMapper = objectMapper; } - private void handleSecurityException(HttpServletResponse response, int status, String message) throws IOException { - final SecurityExceptionView view = new SecurityExceptionView(status, message); + private void handleSecurityException( + HttpServletResponse response, + int status, + SecurityExceptionView.Action action, + String message + ) throws IOException { + final SecurityExceptionView view = new SecurityExceptionView(status, action, message); response.setStatus(status); response.getWriter().write(this.objectMapper.writeValueAsString(view)); } @@ -62,12 +67,18 @@ public final class JwtFilter extends OncePerRequestFilter { this.handleSecurityException( response, HttpServletResponse.SC_UNAUTHORIZED, + SecurityExceptionView.Action.REFRESH, expiredJwtException.getMessage() ); return; } catch (JwtException jwtException) { logger.error("Error while getting username from token.", jwtException); - this.handleSecurityException(response, HttpServletResponse.SC_UNAUTHORIZED, jwtException.getMessage()); + this.handleSecurityException( + response, + HttpServletResponse.SC_UNAUTHORIZED, + SecurityExceptionView.Action.REFRESH, + jwtException.getMessage() + ); return; } final UserDetails userDetails = this.userDetailsService.loadUserByUsername(username); diff --git a/src/main/java/app/mealsmadeeasy/api/security/SecurityExceptionView.java b/src/main/java/app/mealsmadeeasy/api/security/SecurityExceptionView.java index bef2d5a..8940a08 100644 --- a/src/main/java/app/mealsmadeeasy/api/security/SecurityExceptionView.java +++ b/src/main/java/app/mealsmadeeasy/api/security/SecurityExceptionView.java @@ -2,11 +2,17 @@ package app.mealsmadeeasy.api.security; public class SecurityExceptionView { + public enum Action { + LOGIN, REFRESH + } + private final int status; + private final Action action; private final String message; - public SecurityExceptionView(int status, String message) { + public SecurityExceptionView(int status, Action action, String message) { this.status = status; + this.action = action; this.message = message; } @@ -14,6 +20,10 @@ public class SecurityExceptionView { return this.status; } + public Action getAction() { + return this.action; + } + public String getMessage() { return this.message; }