From a4b0a1bafb6d73d0beb69a97aee021e4ff3de733 Mon Sep 17 00:00:00 2001 From: Fabio Formosa Date: Tue, 8 Nov 2022 22:59:07 +0100 Subject: [PATCH] #78 fixed some smells --- .../api/common/config/QuartzManagerPaths.java | 3 ++ .../api/common/utils/DateUtils.java | 9 ++++-- .../quartzmanager/api/common/utils/Try.java | 4 +-- .../SimpleTriggerServiceIntegrationTest.java | 4 +-- .../impl/JwtTokenAuthenticationFilter.java | 7 ++--- .../security/helpers/impl/JwtTokenHelper.java | 30 ++++++++----------- 6 files changed, 27 insertions(+), 30 deletions(-) diff --git a/quartz-manager-parent/quartz-manager-common/src/main/java/it/fabioformosa/quartzmanager/api/common/config/QuartzManagerPaths.java b/quartz-manager-parent/quartz-manager-common/src/main/java/it/fabioformosa/quartzmanager/api/common/config/QuartzManagerPaths.java index 973d7fa..2652ca5 100644 --- a/quartz-manager-parent/quartz-manager-common/src/main/java/it/fabioformosa/quartzmanager/api/common/config/QuartzManagerPaths.java +++ b/quartz-manager-parent/quartz-manager-common/src/main/java/it/fabioformosa/quartzmanager/api/common/config/QuartzManagerPaths.java @@ -2,6 +2,9 @@ package it.fabioformosa.quartzmanager.api.common.config; public class QuartzManagerPaths { + private QuartzManagerPaths(){ + } + public static final String QUARTZ_MANAGER_BASE_CONTEXT_PATH = "/quartz-manager"; public static final String WEBJAR_PATH = "/quartz-manager-ui"; diff --git a/quartz-manager-parent/quartz-manager-common/src/main/java/it/fabioformosa/quartzmanager/api/common/utils/DateUtils.java b/quartz-manager-parent/quartz-manager-common/src/main/java/it/fabioformosa/quartzmanager/api/common/utils/DateUtils.java index 53ce7fb..247c221 100644 --- a/quartz-manager-parent/quartz-manager-common/src/main/java/it/fabioformosa/quartzmanager/api/common/utils/DateUtils.java +++ b/quartz-manager-parent/quartz-manager-common/src/main/java/it/fabioformosa/quartzmanager/api/common/utils/DateUtils.java @@ -8,15 +8,18 @@ import java.util.Date; public class DateUtils { - static public Date fromLocalDateTimeToDate(LocalDateTime localDateTime){ + private DateUtils(){ + } + + public static Date fromLocalDateTimeToDate(LocalDateTime localDateTime){ return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant().truncatedTo(ChronoUnit.MILLIS)); } - static public LocalDateTime fromDateToLocalDateTime(Date date) { + public static LocalDateTime fromDateToLocalDateTime(Date date) { return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime().truncatedTo(ChronoUnit.MILLIS); } - static public Date addHoursToNow(long hours){ + public static Date addHoursToNow(long hours){ return DateUtils.fromLocalDateTimeToDate(LocalDateTime.now().plus(Duration.ofHours(hours))); } diff --git a/quartz-manager-parent/quartz-manager-common/src/main/java/it/fabioformosa/quartzmanager/api/common/utils/Try.java b/quartz-manager-parent/quartz-manager-common/src/main/java/it/fabioformosa/quartzmanager/api/common/utils/Try.java index 173e7ad..285dad3 100644 --- a/quartz-manager-parent/quartz-manager-common/src/main/java/it/fabioformosa/quartzmanager/api/common/utils/Try.java +++ b/quartz-manager-parent/quartz-manager-common/src/main/java/it/fabioformosa/quartzmanager/api/common/utils/Try.java @@ -16,11 +16,11 @@ public class Try { return success; } - public static Try success(R r){ + public static Try success(R r){ return new Try<>(null, r); } - public static Try failure(Throwable e){ + public static Try failure(Throwable e){ return new Try<>(e, null); } diff --git a/quartz-manager-parent/quartz-manager-starter-api/src/test/java/it/fabioformosa/quartzmanager/api/services/SimpleTriggerServiceIntegrationTest.java b/quartz-manager-parent/quartz-manager-starter-api/src/test/java/it/fabioformosa/quartzmanager/api/services/SimpleTriggerServiceIntegrationTest.java index 064038c..06d6f7d 100644 --- a/quartz-manager-parent/quartz-manager-starter-api/src/test/java/it/fabioformosa/quartzmanager/api/services/SimpleTriggerServiceIntegrationTest.java +++ b/quartz-manager-parent/quartz-manager-starter-api/src/test/java/it/fabioformosa/quartzmanager/api/services/SimpleTriggerServiceIntegrationTest.java @@ -22,7 +22,7 @@ class SimpleTriggerServiceIntegrationTest { private SimpleTriggerService simpleTriggerService; @Test - public void givenASimpleTriggerCommandDTOWithAllData_whenANewSimpleTriggerIsScheduled_thenShouldGetATriggertDTO() throws SchedulerException, ClassNotFoundException { + void givenASimpleTriggerCommandDTOWithAllData_whenANewSimpleTriggerIsScheduled_thenShouldGetATriggertDTO() throws SchedulerException, ClassNotFoundException { String simpleTriggerTestName = "simpleTriggerWithAllData"; String jobClass = "it.fabioformosa.quartzmanager.api.jobs.SampleJob"; Date startDate = new Date(); @@ -59,7 +59,7 @@ class SimpleTriggerServiceIntegrationTest { } @Test - public void givenASimpleTriggerCommandDTOWithMissingOptionalField_whenANewSimpleTriggerIsScheduled_thenShouldGetATriggertDTO() throws SchedulerException, ClassNotFoundException { + void givenASimpleTriggerCommandDTOWithMissingOptionalField_whenANewSimpleTriggerIsScheduled_thenShouldGetATriggertDTO() throws SchedulerException, ClassNotFoundException { String simpleTriggerTestName = "simpleTriggerWithoutOptionalData"; String jobClass = "it.fabioformosa.quartzmanager.api.jobs.SampleJob"; diff --git a/quartz-manager-parent/quartz-manager-starter-security/src/main/java/it/fabioformosa/quartzmanager/api/security/helpers/impl/JwtTokenAuthenticationFilter.java b/quartz-manager-parent/quartz-manager-starter-security/src/main/java/it/fabioformosa/quartzmanager/api/security/helpers/impl/JwtTokenAuthenticationFilter.java index af512b4..e18dc11 100644 --- a/quartz-manager-parent/quartz-manager-starter-security/src/main/java/it/fabioformosa/quartzmanager/api/security/helpers/impl/JwtTokenAuthenticationFilter.java +++ b/quartz-manager-parent/quartz-manager-starter-security/src/main/java/it/fabioformosa/quartzmanager/api/security/helpers/impl/JwtTokenAuthenticationFilter.java @@ -41,7 +41,7 @@ public class JwtTokenAuthenticationFilter extends OncePerRequestFilter { private static final String LOGIN_MATCHER = "/api/login"; private static final String LOGOUT_MATCHER = "/api/logout"; - private static List PATH_TO_SKIP = Arrays.asList( + private final static List PATH_TO_SKIP = Arrays.asList( ROOT_MATCHER, HTML_MATCHER, FAVICON_MATCHER, @@ -77,9 +77,6 @@ public class JwtTokenAuthenticationFilter extends OncePerRequestFilter { SecurityContextHolder.getContext().setAuthentication(authentication); } catch (Exception e) { log.error("Authentication failed! an expected error occurred authenticating the request {} due to {}", request.getRequestURL(), e.getMessage(), e); - // SecurityContextHolder.getContext().setAuthentication(new AnonAuthentication()); - // log.error("Switched to Anonymous Authentication, " - // + "because an error occurred setting authentication in security context holder due to " + e.getMessage(), e); } } else if(skipPathRequest(request, PATH_TO_SKIP)) { @@ -94,7 +91,7 @@ public class JwtTokenAuthenticationFilter extends OncePerRequestFilter { private boolean skipPathRequest(HttpServletRequest request, List pathsToSkip ) { if(pathsToSkip == null) - pathsToSkip = new ArrayList(); + pathsToSkip = new ArrayList<>(); List matchers = pathsToSkip.stream().map(path -> new AntPathRequestMatcher(path)).collect(Collectors.toList()); OrRequestMatcher compositeMatchers = new OrRequestMatcher(matchers); return compositeMatchers.matches(request); diff --git a/quartz-manager-parent/quartz-manager-starter-security/src/main/java/it/fabioformosa/quartzmanager/api/security/helpers/impl/JwtTokenHelper.java b/quartz-manager-parent/quartz-manager-starter-security/src/main/java/it/fabioformosa/quartzmanager/api/security/helpers/impl/JwtTokenHelper.java index 03903df..428effe 100644 --- a/quartz-manager-parent/quartz-manager-starter-security/src/main/java/it/fabioformosa/quartzmanager/api/security/helpers/impl/JwtTokenHelper.java +++ b/quartz-manager-parent/quartz-manager-starter-security/src/main/java/it/fabioformosa/quartzmanager/api/security/helpers/impl/JwtTokenHelper.java @@ -33,7 +33,7 @@ public class JwtTokenHelper { private final JwtSecurityProperties jwtSecurityProps; - private SignatureAlgorithm SIGNATURE_ALGORITHM = SignatureAlgorithm.HS512; + private static final SignatureAlgorithm SIGNATURE_ALGORITHM = SignatureAlgorithm.HS512; public JwtTokenHelper(String appName, JwtSecurityProperties jwtSecurityProps) { super(); @@ -41,16 +41,15 @@ public class JwtTokenHelper { this.jwtSecurityProps = jwtSecurityProps; } - public Boolean canTokenBeRefreshed(String token) { - try { - final Date expirationDate = verifyAndGetClaimsFromToken(token).getExpiration(); - // String username = getUsernameFromToken(token); - // UserDetails userDetails = userDetailsService.loadUserByUsername(username); - return expirationDate.compareTo(generateCurrentDate()) > 0; - } catch (Exception e) { - return false; - } + public Boolean canTokenBeRefreshed(String token) { + try { + final Date expirationDate = verifyAndGetClaimsFromToken(token).getExpiration(); + return expirationDate.compareTo(generateCurrentDate()) > 0; + } catch (Exception e) { + log.error("Error getting claims from jwt token due to " + e.getMessage(), e); + return false; } + } private Date generateCurrentDate() { return new Date(getCurrentTimeMillis()); @@ -73,14 +72,9 @@ public class JwtTokenHelper { private Claims verifyAndGetClaimsFromToken(String token) { Claims claims; - try { - claims = Jwts.parser().setSigningKey(base64EncodeSecretKey(jwtSecurityProps.getSecret())) - .parseClaimsJws(token).getBody(); - } catch (Exception e) { - log.error("Error getting claims from jwt token due to " + e.getMessage(), e); - throw e; - } - if(claims == null) + claims = Jwts.parser().setSigningKey(base64EncodeSecretKey(jwtSecurityProps.getSecret())) + .parseClaimsJws(token).getBody(); + if (claims == null) throw new IllegalStateException("Not found any claims into the JWT token!"); return claims; }