diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/JwtTokenHelper.java b/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/JwtTokenHelper.java deleted file mode 100644 index b7f24d7..0000000 --- a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/JwtTokenHelper.java +++ /dev/null @@ -1,162 +0,0 @@ -package it.fabioformosa.quartzmanager.security.helpers.impl; - -import java.nio.charset.StandardCharsets; -import java.util.Base64; -import java.util.Date; -import java.util.Map; - -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.joda.time.DateTime; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import io.jsonwebtoken.Claims; -import io.jsonwebtoken.Jwts; -import io.jsonwebtoken.SignatureAlgorithm; -import it.fabioformosa.quartzmanager.configuration.properties.JwtSecurityProperties; - -/** - * - * @author Fabio.Formosa - * - */ - -public class JwtTokenHelper { - - private static final Logger log = LoggerFactory.getLogger(JwtTokenHelper.class); - - private static String base64EncodeSecretKey(String secretKey) { - return Base64.getEncoder().encodeToString(secretKey.getBytes(StandardCharsets.UTF_8)); - } - - // @Value("${app.name}") - private final String appName; - - // @Autowired - private final JwtSecurityProperties jwtSecurityProps; - - private SignatureAlgorithm SIGNATURE_ALGORITHM = SignatureAlgorithm.HS512; - - // @Autowired - public JwtTokenHelper(String appName, JwtSecurityProperties jwtSecurityProps) { - super(); - this.appName = appName; - this.jwtSecurityProps = jwtSecurityProps; - } - - public Boolean canTokenBeRefreshed(String token) { - try { - final Date expirationDate = getClaimsFromToken(token).getExpiration(); - // String username = getUsernameFromToken(token); - // UserDetails userDetails = userDetailsService.loadUserByUsername(username); - return expirationDate.compareTo(generateCurrentDate()) > 0; - } catch (Exception e) { - return false; - } - } - - private Date generateCurrentDate() { - return new Date(getCurrentTimeMillis()); - } - - private Date generateExpirationDate() { - return new Date(getCurrentTimeMillis() + jwtSecurityProps.getExpirationInSec() * 1000); - } - - private String generateToken(Map claims) { - return Jwts.builder().setClaims(claims).setExpiration(generateExpirationDate()) - .signWith(SIGNATURE_ALGORITHM, base64EncodeSecretKey(jwtSecurityProps.getSecret())).compact(); - } - - public String generateToken(String username) { - return Jwts.builder().setIssuer(appName).setSubject(username).setIssuedAt(generateCurrentDate()) - .setExpiration(generateExpirationDate()) - .signWith(SIGNATURE_ALGORITHM, base64EncodeSecretKey(jwtSecurityProps.getSecret())).compact(); - } - - private Claims getClaimsFromToken(String token) { - Claims claims; - try { - claims = Jwts.parser().setSigningKey(base64EncodeSecretKey(jwtSecurityProps.getSecret())) - .parseClaimsJws(token).getBody(); - } catch (Exception e) { - claims = null; - log.error("Error getting claims from jwt token due to " + e.getMessage(), e); - } - return claims; - } - - /** - * Find a specific HTTP cookie in a request. - * - * @param request - * The HTTP request object. - * @param name - * The cookie name to look for. - * @return The cookie, or null if not found. - */ - public Cookie getCookieValueByName(HttpServletRequest request, String name) { - if (request.getCookies() == null) - return null; - for (int i = 0; i < request.getCookies().length; i++) - if (request.getCookies()[i].getName().equals(name)) - return request.getCookies()[i]; - return null; - } - - private long getCurrentTimeMillis() { - return DateTime.now().getMillis(); - } - - public String getUsernameFromToken(String token) { - String username; - try { - final Claims claims = getClaimsFromToken(token); - username = claims.getSubject(); - } catch (Exception e) { - username = null; - log.error("Error getting claims from jwt token due to " + e.getMessage(), e); - throw e; - } - return username; - } - - public String refreshToken(String token) { - String refreshedToken; - try { - final Claims claims = getClaimsFromToken(token); - claims.setIssuedAt(generateCurrentDate()); - refreshedToken = generateToken(claims); - } catch (Exception e) { - log.error("Error refreshing jwt token due to " + e.getMessage(), e); - refreshedToken = null; - } - return refreshedToken; - } - - public String retrieveToken(HttpServletRequest request) { - if (jwtSecurityProps.getCookieStrategy().isEnabled() == true) { - Cookie authCookie = getCookieValueByName(request, jwtSecurityProps.getCookieStrategy().getCookie()); - if (authCookie != null) - return authCookie.getValue(); - } - - if (jwtSecurityProps.getHeaderStrategy().isEnabled()) { - String authHeader = request.getHeader(jwtSecurityProps.getHeaderStrategy().getHeader()); - if (authHeader != null && authHeader.startsWith("Bearer ")) - return authHeader.substring(7); - } - - if(request.getParameter("access_token") != null) - return request.getParameter("access_token"); - - return null; - } - - public void setHeader(HttpServletResponse response, String token) { - response.addHeader(jwtSecurityProps.getHeaderStrategy().getHeader(), "Bearer " + token); - } -} diff --git a/quartz-manager-parent/pom.xml b/quartz-manager-parent/pom.xml index c37c579..3ae3655 100644 --- a/quartz-manager-parent/pom.xml +++ b/quartz-manager-parent/pom.xml @@ -1,7 +1,33 @@ - + 4.0.0 + + + org.springframework.boot + spring-boot-starter-parent + 2.3.4.RELEASE + + it.fabioformosa.quartz-manager quartz-manager-parent 2.2.1-SNAPSHOT + pom + + + quartz-manager-core + quartz-manager-api + + + + + + it.fabioformosa.quartz-manager + quartz-manager-core + 2.2.1-SNAPSHOT + + + + \ No newline at end of file diff --git a/quartz-manager-api/.gitignore b/quartz-manager-parent/quartz-manager-api/.gitignore similarity index 100% rename from quartz-manager-api/.gitignore rename to quartz-manager-parent/quartz-manager-api/.gitignore diff --git a/quartz-manager-api/pom.xml b/quartz-manager-parent/quartz-manager-api/pom.xml similarity index 54% rename from quartz-manager-api/pom.xml rename to quartz-manager-parent/quartz-manager-api/pom.xml index 78086ae..066cd07 100644 --- a/quartz-manager-api/pom.xml +++ b/quartz-manager-parent/quartz-manager-api/pom.xml @@ -3,21 +3,19 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - it.fabioformosa + + it.fabioformosa.quartz-manager + quartz-manager-parent + 2.2.1-SNAPSHOT + + quartz-manager-api - 2.2.1-SNAPSHOT - war + + war quartz-manager Manager Panel for Quartz Scheduler - - org.springframework.boot - spring-boot-parent - 2.1.4.RELEASE - - - UTF-8 UTF-8 @@ -26,15 +24,16 @@ + + it.fabioformosa.quartz-manager + quartz-manager-core + + org.springframework.boot spring-boot-starter-web - - org.springframework.boot - spring-boot-starter-mail - org.springframework.boot spring-boot-starter-security @@ -47,18 +46,6 @@ org.springframework.boot spring-boot-devtools - - org.springframework.boot - spring-boot-starter-websocket - - - org.springframework - spring-messaging - - - org.springframework - spring-tx - org.springframework.boot spring-boot-configuration-processor @@ -81,10 +68,6 @@ jjwt 0.9.0 - - joda-time - joda-time - com.fasterxml.jackson.core jackson-databind @@ -119,60 +102,7 @@ org.apache.commons commons-lang3 - 3.10 - - - - org.quartz-scheduler - quartz - - - org.apache.commons - commons-io - 1.3.2 - - - - - io.projectreactor - reactor-core - - - io.projectreactor - reactor-net - 2.0.8.RELEASE - - - io.projectreactor.spring - reactor-spring-context - 2.0.7.RELEASE - - - io.netty - netty-all - - - org.springframework.boot - spring-boot-starter-aop - - - org.yaml - snakeyaml - - - - - io.springfox - springfox-swagger2 - ${springfox.version} - - - io.springfox - springfox-swagger-ui - ${springfox.version} - - @@ -199,25 +129,6 @@ 1.8 - - - - - - - - - - - - - - - - - - - diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/QuartManagerApplication.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/QuartManagerApplication.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/QuartManagerApplication.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/QuartManagerApplication.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/ServletInitializer.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/ServletInitializer.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/ServletInitializer.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/ServletInitializer.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/configuration/WebSecurityConfigJWT.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/configuration/WebSecurityConfigJWT.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/configuration/WebSecurityConfigJWT.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/configuration/WebSecurityConfigJWT.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/configuration/properties/InMemoryAccountProperties.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/configuration/properties/InMemoryAccountProperties.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/configuration/properties/InMemoryAccountProperties.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/configuration/properties/InMemoryAccountProperties.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/configuration/properties/JwtSecurityProperties.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/configuration/properties/JwtSecurityProperties.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/configuration/properties/JwtSecurityProperties.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/configuration/properties/JwtSecurityProperties.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/controllers/AuthenticationController.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/controllers/AuthenticationController.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/controllers/AuthenticationController.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/controllers/AuthenticationController.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/controllers/QuartzManagerController.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/controllers/QuartzManagerController.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/controllers/QuartzManagerController.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/controllers/QuartzManagerController.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/controllers/SessionController.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/controllers/SessionController.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/controllers/SessionController.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/controllers/SessionController.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/controllers/UserController.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/controllers/UserController.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/controllers/UserController.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/controllers/UserController.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/jobs/myjobs/SampleJob.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/jobs/myjobs/SampleJob.java similarity index 70% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/jobs/myjobs/SampleJob.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/jobs/myjobs/SampleJob.java index a6e032c..203c5b5 100644 --- a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/jobs/myjobs/SampleJob.java +++ b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/jobs/myjobs/SampleJob.java @@ -6,11 +6,12 @@ import it.fabioformosa.quartzmanager.jobs.AbstractLoggingJob; import it.fabioformosa.quartzmanager.jobs.entities.LogRecord; import it.fabioformosa.quartzmanager.jobs.entities.LogRecord.LogType; + public class SampleJob extends AbstractLoggingJob { - @Override - public LogRecord doIt(JobExecutionContext jobExecutionContext) { - return new LogRecord(LogType.INFO, "Hello!"); - } + @Override + public LogRecord doIt(JobExecutionContext jobExecutionContext) { + return new LogRecord(LogType.INFO, "Hello!"); + } } diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/jobs/tests/MisfireTestJob.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/jobs/tests/MisfireTestJob.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/jobs/tests/MisfireTestJob.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/jobs/tests/MisfireTestJob.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/LoginConfigurer.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/LoginConfigurer.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/LoginConfigurer.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/LoginConfigurer.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/AjaxAuthenticationFilter.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/AjaxAuthenticationFilter.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/AjaxAuthenticationFilter.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/AjaxAuthenticationFilter.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/AnonAuthentication.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/AnonAuthentication.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/AnonAuthentication.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/AnonAuthentication.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/AuthenticationFailureHandler.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/AuthenticationFailureHandler.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/AuthenticationFailureHandler.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/AuthenticationFailureHandler.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/AuthenticationSuccessHandler.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/AuthenticationSuccessHandler.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/AuthenticationSuccessHandler.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/AuthenticationSuccessHandler.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/ComboEntryPoint.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/ComboEntryPoint.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/ComboEntryPoint.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/ComboEntryPoint.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/FormLoginConfig.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/FormLoginConfig.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/FormLoginConfig.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/FormLoginConfig.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/JwtAuthenticationFilter.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/JwtAuthenticationFilter.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/JwtAuthenticationFilter.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/JwtAuthenticationFilter.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/JwtAuthenticationSuccessHandler.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/JwtAuthenticationSuccessHandler.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/JwtAuthenticationSuccessHandler.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/JwtAuthenticationSuccessHandler.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/JwtAuthenticationSuccessHandlerImpl.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/JwtAuthenticationSuccessHandlerImpl.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/JwtAuthenticationSuccessHandlerImpl.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/JwtAuthenticationSuccessHandlerImpl.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/JwtTokenAuthenticationFilter.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/JwtTokenAuthenticationFilter.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/JwtTokenAuthenticationFilter.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/JwtTokenAuthenticationFilter.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/JwtTokenBasedAuthentication.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/JwtTokenBasedAuthentication.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/JwtTokenBasedAuthentication.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/JwtTokenBasedAuthentication.java diff --git a/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/JwtTokenHelper.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/JwtTokenHelper.java new file mode 100644 index 0000000..a4bc953 --- /dev/null +++ b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/JwtTokenHelper.java @@ -0,0 +1,163 @@ +package it.fabioformosa.quartzmanager.security.helpers.impl; + +import java.nio.charset.StandardCharsets; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.util.Base64; +import java.util.Date; +import java.util.Map; + +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.jsonwebtoken.Claims; +import io.jsonwebtoken.Jwts; +import io.jsonwebtoken.SignatureAlgorithm; +import it.fabioformosa.quartzmanager.configuration.properties.JwtSecurityProperties; + +/** + * + * @author Fabio.Formosa + * + */ + +public class JwtTokenHelper { + + private static final Logger log = LoggerFactory.getLogger(JwtTokenHelper.class); + + private static String base64EncodeSecretKey(String secretKey) { + return Base64.getEncoder().encodeToString(secretKey.getBytes(StandardCharsets.UTF_8)); + } + + // @Value("${app.name}") + private final String appName; + + // @Autowired + private final JwtSecurityProperties jwtSecurityProps; + + private SignatureAlgorithm SIGNATURE_ALGORITHM = SignatureAlgorithm.HS512; + + // @Autowired + public JwtTokenHelper(String appName, JwtSecurityProperties jwtSecurityProps) { + super(); + this.appName = appName; + this.jwtSecurityProps = jwtSecurityProps; + } + + public Boolean canTokenBeRefreshed(String token) { + try { + final Date expirationDate = getClaimsFromToken(token).getExpiration(); + // String username = getUsernameFromToken(token); + // UserDetails userDetails = userDetailsService.loadUserByUsername(username); + return expirationDate.compareTo(generateCurrentDate()) > 0; + } catch (Exception e) { + return false; + } + } + + private Date generateCurrentDate() { + return new Date(getCurrentTimeMillis()); + } + + private Date generateExpirationDate() { + return new Date(getCurrentTimeMillis() + jwtSecurityProps.getExpirationInSec() * 1000); + } + + private String generateToken(Map claims) { + return Jwts.builder().setClaims(claims).setExpiration(generateExpirationDate()) + .signWith(SIGNATURE_ALGORITHM, base64EncodeSecretKey(jwtSecurityProps.getSecret())).compact(); + } + + public String generateToken(String username) { + return Jwts.builder().setIssuer(appName).setSubject(username).setIssuedAt(generateCurrentDate()) + .setExpiration(generateExpirationDate()) + .signWith(SIGNATURE_ALGORITHM, base64EncodeSecretKey(jwtSecurityProps.getSecret())).compact(); + } + + private Claims getClaimsFromToken(String token) { + Claims claims; + try { + claims = Jwts.parser().setSigningKey(base64EncodeSecretKey(jwtSecurityProps.getSecret())) + .parseClaimsJws(token).getBody(); + } catch (Exception e) { + claims = null; + log.error("Error getting claims from jwt token due to " + e.getMessage(), e); + } + return claims; + } + + /** + * Find a specific HTTP cookie in a request. + * + * @param request + * The HTTP request object. + * @param name + * The cookie name to look for. + * @return The cookie, or null if not found. + */ + public Cookie getCookieValueByName(HttpServletRequest request, String name) { + if (request.getCookies() == null) + return null; + for (int i = 0; i < request.getCookies().length; i++) + if (request.getCookies()[i].getName().equals(name)) + return request.getCookies()[i]; + return null; + } + + private long getCurrentTimeMillis() { + return LocalDateTime.now().atZone(ZoneId.of("Europe/Rome")).toInstant().toEpochMilli(); + } + + public String getUsernameFromToken(String token) { + String username; + try { + final Claims claims = getClaimsFromToken(token); + username = claims.getSubject(); + } catch (Exception e) { + username = null; + log.error("Error getting claims from jwt token due to " + e.getMessage(), e); + throw e; + } + return username; + } + + public String refreshToken(String token) { + String refreshedToken; + try { + final Claims claims = getClaimsFromToken(token); + claims.setIssuedAt(generateCurrentDate()); + refreshedToken = generateToken(claims); + } catch (Exception e) { + log.error("Error refreshing jwt token due to " + e.getMessage(), e); + refreshedToken = null; + } + return refreshedToken; + } + + public String retrieveToken(HttpServletRequest request) { + if (jwtSecurityProps.getCookieStrategy().isEnabled() == true) { + Cookie authCookie = getCookieValueByName(request, jwtSecurityProps.getCookieStrategy().getCookie()); + if (authCookie != null) + return authCookie.getValue(); + } + + if (jwtSecurityProps.getHeaderStrategy().isEnabled()) { + String authHeader = request.getHeader(jwtSecurityProps.getHeaderStrategy().getHeader()); + if (authHeader != null && authHeader.startsWith("Bearer ")) + return authHeader.substring(7); + } + + if(request.getParameter("access_token") != null) + return request.getParameter("access_token"); + + return null; + } + + public void setHeader(HttpServletResponse response, String token) { + response.addHeader(jwtSecurityProps.getHeaderStrategy().getHeader(), "Bearer " + token); + } +} diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/JwtUsernamePasswordFiterLoginConfig.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/JwtUsernamePasswordFiterLoginConfig.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/JwtUsernamePasswordFiterLoginConfig.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/JwtUsernamePasswordFiterLoginConfig.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/LogoutSuccess.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/LogoutSuccess.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/LogoutSuccess.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/LogoutSuccess.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/QuartzManagerHttpSecurity.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/QuartzManagerHttpSecurity.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/QuartzManagerHttpSecurity.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/QuartzManagerHttpSecurity.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/RESTRequestMatcher.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/RESTRequestMatcher.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/RESTRequestMatcher.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/RESTRequestMatcher.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/RestAuthenticationEntryPoint.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/RestAuthenticationEntryPoint.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/RestAuthenticationEntryPoint.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/RestAuthenticationEntryPoint.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/WebsocketRequestMatcher.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/WebsocketRequestMatcher.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/WebsocketRequestMatcher.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/WebsocketRequestMatcher.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/model/Authority.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/model/Authority.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/model/Authority.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/model/Authority.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/model/User.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/model/User.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/model/User.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/model/User.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/model/UserRequest.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/model/UserRequest.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/model/UserRequest.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/model/UserRequest.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/model/UserTokenState.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/model/UserTokenState.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/model/UserTokenState.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/model/UserTokenState.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/repository/AuthorityRepository.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/repository/AuthorityRepository.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/repository/AuthorityRepository.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/repository/AuthorityRepository.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/repository/UserRepository.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/repository/UserRepository.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/repository/UserRepository.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/repository/UserRepository.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/service/AuthorityService.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/service/AuthorityService.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/service/AuthorityService.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/service/AuthorityService.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/service/UserService.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/service/UserService.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/service/UserService.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/service/UserService.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/service/impl/AuthorityServiceImpl.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/service/impl/AuthorityServiceImpl.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/service/impl/AuthorityServiceImpl.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/service/impl/AuthorityServiceImpl.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/service/impl/CustomUserDetailsService.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/service/impl/CustomUserDetailsService.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/service/impl/CustomUserDetailsService.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/service/impl/CustomUserDetailsService.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/service/impl/UserServiceImpl.java b/quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/service/impl/UserServiceImpl.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/service/impl/UserServiceImpl.java rename to quartz-manager-parent/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/security/service/impl/UserServiceImpl.java diff --git a/quartz-manager-api/src/main/resources/_disabled_import.sql_off b/quartz-manager-parent/quartz-manager-api/src/main/resources/_disabled_import.sql_off similarity index 100% rename from quartz-manager-api/src/main/resources/_disabled_import.sql_off rename to quartz-manager-parent/quartz-manager-api/src/main/resources/_disabled_import.sql_off diff --git a/quartz-manager-api/src/main/resources/application.yml b/quartz-manager-parent/quartz-manager-api/src/main/resources/application.yml similarity index 100% rename from quartz-manager-api/src/main/resources/application.yml rename to quartz-manager-parent/quartz-manager-api/src/main/resources/application.yml diff --git a/quartz-manager-api/src/main/resources/banner.txt b/quartz-manager-parent/quartz-manager-api/src/main/resources/banner.txt similarity index 100% rename from quartz-manager-api/src/main/resources/banner.txt rename to quartz-manager-parent/quartz-manager-api/src/main/resources/banner.txt diff --git a/quartz-manager-api/src/main/resources/logback.xml b/quartz-manager-parent/quartz-manager-api/src/main/resources/logback.xml similarity index 100% rename from quartz-manager-api/src/main/resources/logback.xml rename to quartz-manager-parent/quartz-manager-api/src/main/resources/logback.xml diff --git a/quartz-manager-api/src/main/resources/quartz-manager-2-screenshot_800.PNG b/quartz-manager-parent/quartz-manager-api/src/main/resources/quartz-manager-2-screenshot_800.PNG similarity index 100% rename from quartz-manager-api/src/main/resources/quartz-manager-2-screenshot_800.PNG rename to quartz-manager-parent/quartz-manager-api/src/main/resources/quartz-manager-2-screenshot_800.PNG diff --git a/quartz-manager-api/src/main/resources/quartz.properties b/quartz-manager-parent/quartz-manager-api/src/main/resources/quartz.properties similarity index 100% rename from quartz-manager-api/src/main/resources/quartz.properties rename to quartz-manager-parent/quartz-manager-api/src/main/resources/quartz.properties diff --git a/quartz-manager-api/src/test/java/it/fabioformosa/QuartManagerApplicationTests.java b/quartz-manager-parent/quartz-manager-api/src/test/java/it/fabioformosa/QuartManagerApplicationTests.java similarity index 90% rename from quartz-manager-api/src/test/java/it/fabioformosa/QuartManagerApplicationTests.java rename to quartz-manager-parent/quartz-manager-api/src/test/java/it/fabioformosa/QuartManagerApplicationTests.java index 6bd3165..199dc21 100644 --- a/quartz-manager-api/src/test/java/it/fabioformosa/QuartManagerApplicationTests.java +++ b/quartz-manager-parent/quartz-manager-api/src/test/java/it/fabioformosa/QuartManagerApplicationTests.java @@ -11,8 +11,8 @@ import org.springframework.test.context.web.WebAppConfiguration; @WebAppConfiguration public class QuartManagerApplicationTests { - @Test - public void contextLoads() { - } + @Test + public void contextLoads() { + } } diff --git a/quartz-manager-parent/quartz-manager-core/.classpath b/quartz-manager-parent/quartz-manager-core/.classpath new file mode 100644 index 0000000..68d786e --- /dev/null +++ b/quartz-manager-parent/quartz-manager-core/.classpath @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/quartz-manager-parent/quartz-manager-core/.project b/quartz-manager-parent/quartz-manager-core/.project new file mode 100644 index 0000000..90a540a --- /dev/null +++ b/quartz-manager-parent/quartz-manager-core/.project @@ -0,0 +1,41 @@ + + + quartz-manager-core + + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.springframework.ide.eclipse.boot.validation.springbootbuilder + + + + + org.eclipse.wst.validation.validationbuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + org.eclipse.wst.common.project.facet.core.nature + + diff --git a/quartz-manager-parent/quartz-manager-core/.settings/org.eclipse.core.resources.prefs b/quartz-manager-parent/quartz-manager-core/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..04cfa2c --- /dev/null +++ b/quartz-manager-parent/quartz-manager-core/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,6 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding//src/test/java=UTF-8 +encoding//src/test/resources=UTF-8 +encoding/=UTF-8 diff --git a/quartz-manager-parent/quartz-manager-core/.settings/org.eclipse.jdt.core.prefs b/quartz-manager-parent/quartz-manager-core/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..980631a --- /dev/null +++ b/quartz-manager-parent/quartz-manager-core/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,12 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.methodParameters=generate +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/quartz-manager-parent/quartz-manager-core/.settings/org.eclipse.m2e.core.prefs b/quartz-manager-parent/quartz-manager-core/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..14b697b --- /dev/null +++ b/quartz-manager-parent/quartz-manager-core/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/quartz-manager-parent/quartz-manager-core/.settings/org.eclipse.wst.common.component b/quartz-manager-parent/quartz-manager-core/.settings/org.eclipse.wst.common.component new file mode 100644 index 0000000..f8a2789 --- /dev/null +++ b/quartz-manager-parent/quartz-manager-core/.settings/org.eclipse.wst.common.component @@ -0,0 +1,6 @@ + + + + + + diff --git a/quartz-manager-parent/quartz-manager-core/.settings/org.eclipse.wst.common.project.facet.core.xml b/quartz-manager-parent/quartz-manager-core/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 0000000..6302d3e --- /dev/null +++ b/quartz-manager-parent/quartz-manager-core/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/quartz-manager-parent/quartz-manager-core/.settings/org.eclipse.wst.validation.prefs b/quartz-manager-parent/quartz-manager-core/.settings/org.eclipse.wst.validation.prefs new file mode 100644 index 0000000..6f1cba6 --- /dev/null +++ b/quartz-manager-parent/quartz-manager-core/.settings/org.eclipse.wst.validation.prefs @@ -0,0 +1,2 @@ +disabled=06target +eclipse.preferences.version=1 diff --git a/quartz-manager-parent/quartz-manager-core/.settings/org.springframework.ide.eclipse.prefs b/quartz-manager-parent/quartz-manager-core/.settings/org.springframework.ide.eclipse.prefs new file mode 100644 index 0000000..e587c65 --- /dev/null +++ b/quartz-manager-parent/quartz-manager-core/.settings/org.springframework.ide.eclipse.prefs @@ -0,0 +1,2 @@ +boot.validation.initialized=true +eclipse.preferences.version=1 diff --git a/quartz-manager-parent/quartz-manager-core/pom.xml b/quartz-manager-parent/quartz-manager-core/pom.xml new file mode 100644 index 0000000..7dcc613 --- /dev/null +++ b/quartz-manager-parent/quartz-manager-core/pom.xml @@ -0,0 +1,129 @@ + + + 4.0.0 + + it.fabioformosa.quartz-manager + quartz-manager-parent + 2.2.1-SNAPSHOT + + + quartz-manager-core + + quartz-manager-core + TBD + + https://github.com/fabioformosa/quartz-manager + + ${basedir}/../.. + UTF-8 + UTF-8 + 2.9.2 + 1.8 + + + + + + org.springframework.boot + spring-boot-starter + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-devtools + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + + + com.fasterxml.jackson.core + jackson-annotations + + + com.h2database + h2 + runtime + + + org.projectlombok + lombok + provided + + + org.apache.commons + commons-lang3 + + + + + org.quartz-scheduler + quartz + + + org.apache.commons + commons-io + 1.3.2 + + + + + io.projectreactor + reactor-core + + + io.projectreactor + reactor-net + 2.0.8.RELEASE + + + io.projectreactor.spring + reactor-spring-context + 2.0.7.RELEASE + + + io.netty + netty-all + + + org.springframework.boot + spring-boot-starter-aop + + + org.yaml + snakeyaml + + + + + io.springfox + springfox-swagger2 + ${springfox.version} + + + io.springfox + springfox-swagger-ui + ${springfox.version} + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/aspects/ProgressNotifier.java b/quartz-manager-parent/quartz-manager-core/src/main/java/it/fabioformosa/quartzmanager/aspects/ProgressNotifier.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/aspects/ProgressNotifier.java rename to quartz-manager-parent/quartz-manager-core/src/main/java/it/fabioformosa/quartzmanager/aspects/ProgressNotifier.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/aspects/WebSocketProgressNotifier.java b/quartz-manager-parent/quartz-manager-core/src/main/java/it/fabioformosa/quartzmanager/aspects/WebSocketProgressNotifier.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/aspects/WebSocketProgressNotifier.java rename to quartz-manager-parent/quartz-manager-core/src/main/java/it/fabioformosa/quartzmanager/aspects/WebSocketProgressNotifier.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/configuration/SchedulerConfig.java b/quartz-manager-parent/quartz-manager-core/src/main/java/it/fabioformosa/quartzmanager/configuration/SchedulerConfig.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/configuration/SchedulerConfig.java rename to quartz-manager-parent/quartz-manager-core/src/main/java/it/fabioformosa/quartzmanager/configuration/SchedulerConfig.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/configuration/SwaggerConfig.java b/quartz-manager-parent/quartz-manager-core/src/main/java/it/fabioformosa/quartzmanager/configuration/SwaggerConfig.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/configuration/SwaggerConfig.java rename to quartz-manager-parent/quartz-manager-core/src/main/java/it/fabioformosa/quartzmanager/configuration/SwaggerConfig.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/configuration/WebsocketConfig.java b/quartz-manager-parent/quartz-manager-core/src/main/java/it/fabioformosa/quartzmanager/configuration/WebsocketConfig.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/configuration/WebsocketConfig.java rename to quartz-manager-parent/quartz-manager-core/src/main/java/it/fabioformosa/quartzmanager/configuration/WebsocketConfig.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/controllers/SchedulerController.java b/quartz-manager-parent/quartz-manager-core/src/main/java/it/fabioformosa/quartzmanager/controllers/SchedulerController.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/controllers/SchedulerController.java rename to quartz-manager-parent/quartz-manager-core/src/main/java/it/fabioformosa/quartzmanager/controllers/SchedulerController.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/controllers/WebsocketController.java b/quartz-manager-parent/quartz-manager-core/src/main/java/it/fabioformosa/quartzmanager/controllers/WebsocketController.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/controllers/WebsocketController.java rename to quartz-manager-parent/quartz-manager-core/src/main/java/it/fabioformosa/quartzmanager/controllers/WebsocketController.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/dto/SchedulerConfigParam.java b/quartz-manager-parent/quartz-manager-core/src/main/java/it/fabioformosa/quartzmanager/dto/SchedulerConfigParam.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/dto/SchedulerConfigParam.java rename to quartz-manager-parent/quartz-manager-core/src/main/java/it/fabioformosa/quartzmanager/dto/SchedulerConfigParam.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/dto/TriggerStatus.java b/quartz-manager-parent/quartz-manager-core/src/main/java/it/fabioformosa/quartzmanager/dto/TriggerStatus.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/dto/TriggerStatus.java rename to quartz-manager-parent/quartz-manager-core/src/main/java/it/fabioformosa/quartzmanager/dto/TriggerStatus.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/enums/SchedulerStates.java b/quartz-manager-parent/quartz-manager-core/src/main/java/it/fabioformosa/quartzmanager/enums/SchedulerStates.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/enums/SchedulerStates.java rename to quartz-manager-parent/quartz-manager-core/src/main/java/it/fabioformosa/quartzmanager/enums/SchedulerStates.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/exceptions/ExceptionHandlingController.java b/quartz-manager-parent/quartz-manager-core/src/main/java/it/fabioformosa/quartzmanager/exceptions/ExceptionHandlingController.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/exceptions/ExceptionHandlingController.java rename to quartz-manager-parent/quartz-manager-core/src/main/java/it/fabioformosa/quartzmanager/exceptions/ExceptionHandlingController.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/exceptions/ExceptionResponse.java b/quartz-manager-parent/quartz-manager-core/src/main/java/it/fabioformosa/quartzmanager/exceptions/ExceptionResponse.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/exceptions/ExceptionResponse.java rename to quartz-manager-parent/quartz-manager-core/src/main/java/it/fabioformosa/quartzmanager/exceptions/ExceptionResponse.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/exceptions/ResourceConflictException.java b/quartz-manager-parent/quartz-manager-core/src/main/java/it/fabioformosa/quartzmanager/exceptions/ResourceConflictException.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/exceptions/ResourceConflictException.java rename to quartz-manager-parent/quartz-manager-core/src/main/java/it/fabioformosa/quartzmanager/exceptions/ResourceConflictException.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/jobs/AbstractLoggingJob.java b/quartz-manager-parent/quartz-manager-core/src/main/java/it/fabioformosa/quartzmanager/jobs/AbstractLoggingJob.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/jobs/AbstractLoggingJob.java rename to quartz-manager-parent/quartz-manager-core/src/main/java/it/fabioformosa/quartzmanager/jobs/AbstractLoggingJob.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/jobs/entities/LogRecord.java b/quartz-manager-parent/quartz-manager-core/src/main/java/it/fabioformosa/quartzmanager/jobs/entities/LogRecord.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/jobs/entities/LogRecord.java rename to quartz-manager-parent/quartz-manager-core/src/main/java/it/fabioformosa/quartzmanager/jobs/entities/LogRecord.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/scheduler/AutowiringSpringBeanJobFactory.java b/quartz-manager-parent/quartz-manager-core/src/main/java/it/fabioformosa/quartzmanager/scheduler/AutowiringSpringBeanJobFactory.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/scheduler/AutowiringSpringBeanJobFactory.java rename to quartz-manager-parent/quartz-manager-core/src/main/java/it/fabioformosa/quartzmanager/scheduler/AutowiringSpringBeanJobFactory.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/scheduler/TriggerMonitor.java b/quartz-manager-parent/quartz-manager-core/src/main/java/it/fabioformosa/quartzmanager/scheduler/TriggerMonitor.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/scheduler/TriggerMonitor.java rename to quartz-manager-parent/quartz-manager-core/src/main/java/it/fabioformosa/quartzmanager/scheduler/TriggerMonitor.java diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/scheduler/TriggerMonitorImpl.java b/quartz-manager-parent/quartz-manager-core/src/main/java/it/fabioformosa/quartzmanager/scheduler/TriggerMonitorImpl.java similarity index 100% rename from quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/scheduler/TriggerMonitorImpl.java rename to quartz-manager-parent/quartz-manager-core/src/main/java/it/fabioformosa/quartzmanager/scheduler/TriggerMonitorImpl.java diff --git a/quartz-manager-parent/quartz-manager-core/src/test/resources/application.properties b/quartz-manager-parent/quartz-manager-core/src/test/resources/application.properties new file mode 100644 index 0000000..4dfe84c --- /dev/null +++ b/quartz-manager-parent/quartz-manager-core/src/test/resources/application.properties @@ -0,0 +1 @@ +name: Phil \ No newline at end of file diff --git a/quartz-manager-parent/quartz-manager-core/target/classes/META-INF/MANIFEST.MF b/quartz-manager-parent/quartz-manager-core/target/classes/META-INF/MANIFEST.MF new file mode 100644 index 0000000..82fd185 --- /dev/null +++ b/quartz-manager-parent/quartz-manager-core/target/classes/META-INF/MANIFEST.MF @@ -0,0 +1,6 @@ +Manifest-Version: 1.0 +Implementation-Title: quartz-manager-core +Implementation-Version: 2.2.1-SNAPSHOT +Build-Jdk-Spec: 1.8 +Created-By: Maven Integration for Eclipse + diff --git a/quartz-manager-parent/quartz-manager-core/target/classes/META-INF/maven/it.fabioformosa.quartz-manager/quartz-manager-core/pom.properties b/quartz-manager-parent/quartz-manager-core/target/classes/META-INF/maven/it.fabioformosa.quartz-manager/quartz-manager-core/pom.properties new file mode 100644 index 0000000..6bd5ff6 --- /dev/null +++ b/quartz-manager-parent/quartz-manager-core/target/classes/META-INF/maven/it.fabioformosa.quartz-manager/quartz-manager-core/pom.properties @@ -0,0 +1,7 @@ +#Generated by Maven Integration for Eclipse +#Wed Sep 30 23:21:55 CEST 2020 +version=2.2.1-SNAPSHOT +groupId=it.fabioformosa.quartz-manager +m2e.projectName=quartz-manager-core +m2e.projectLocation=E\:\\git\\quartz-manager\\quartz-manager-parent\\quartz-manager-core +artifactId=quartz-manager-core diff --git a/quartz-manager-parent/quartz-manager-core/target/classes/META-INF/maven/it.fabioformosa.quartz-manager/quartz-manager-core/pom.xml b/quartz-manager-parent/quartz-manager-core/target/classes/META-INF/maven/it.fabioformosa.quartz-manager/quartz-manager-core/pom.xml new file mode 100644 index 0000000..7dcc613 --- /dev/null +++ b/quartz-manager-parent/quartz-manager-core/target/classes/META-INF/maven/it.fabioformosa.quartz-manager/quartz-manager-core/pom.xml @@ -0,0 +1,129 @@ + + + 4.0.0 + + it.fabioformosa.quartz-manager + quartz-manager-parent + 2.2.1-SNAPSHOT + + + quartz-manager-core + + quartz-manager-core + TBD + + https://github.com/fabioformosa/quartz-manager + + ${basedir}/../.. + UTF-8 + UTF-8 + 2.9.2 + 1.8 + + + + + + org.springframework.boot + spring-boot-starter + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-devtools + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + + + com.fasterxml.jackson.core + jackson-annotations + + + com.h2database + h2 + runtime + + + org.projectlombok + lombok + provided + + + org.apache.commons + commons-lang3 + + + + + org.quartz-scheduler + quartz + + + org.apache.commons + commons-io + 1.3.2 + + + + + io.projectreactor + reactor-core + + + io.projectreactor + reactor-net + 2.0.8.RELEASE + + + io.projectreactor.spring + reactor-spring-context + 2.0.7.RELEASE + + + io.netty + netty-all + + + org.springframework.boot + spring-boot-starter-aop + + + org.yaml + snakeyaml + + + + + io.springfox + springfox-swagger2 + ${springfox.version} + + + io.springfox + springfox-swagger-ui + ${springfox.version} + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + diff --git a/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/aspects/ProgressNotifier.class b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/aspects/ProgressNotifier.class new file mode 100644 index 0000000..7c7a05a Binary files /dev/null and b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/aspects/ProgressNotifier.class differ diff --git a/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/aspects/WebSocketProgressNotifier.class b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/aspects/WebSocketProgressNotifier.class new file mode 100644 index 0000000..d5ea6b3 Binary files /dev/null and b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/aspects/WebSocketProgressNotifier.class differ diff --git a/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/configuration/SchedulerConfig.class b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/configuration/SchedulerConfig.class new file mode 100644 index 0000000..1ea237b Binary files /dev/null and b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/configuration/SchedulerConfig.class differ diff --git a/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/configuration/SwaggerConfig.class b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/configuration/SwaggerConfig.class new file mode 100644 index 0000000..bfa5c25 Binary files /dev/null and b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/configuration/SwaggerConfig.class differ diff --git a/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/configuration/WebsocketConfig.class b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/configuration/WebsocketConfig.class new file mode 100644 index 0000000..3b98115 Binary files /dev/null and b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/configuration/WebsocketConfig.class differ diff --git a/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/controllers/SchedulerController.class b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/controllers/SchedulerController.class new file mode 100644 index 0000000..56e7e06 Binary files /dev/null and b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/controllers/SchedulerController.class differ diff --git a/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/controllers/WebsocketController.class b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/controllers/WebsocketController.class new file mode 100644 index 0000000..fa7e86e Binary files /dev/null and b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/controllers/WebsocketController.class differ diff --git a/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/dto/SchedulerConfigParam.class b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/dto/SchedulerConfigParam.class new file mode 100644 index 0000000..63d4563 Binary files /dev/null and b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/dto/SchedulerConfigParam.class differ diff --git a/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/dto/TriggerStatus.class b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/dto/TriggerStatus.class new file mode 100644 index 0000000..facbd1e Binary files /dev/null and b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/dto/TriggerStatus.class differ diff --git a/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/enums/SchedulerStates.class b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/enums/SchedulerStates.class new file mode 100644 index 0000000..59622a3 Binary files /dev/null and b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/enums/SchedulerStates.class differ diff --git a/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/exceptions/ExceptionHandlingController.class b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/exceptions/ExceptionHandlingController.class new file mode 100644 index 0000000..26f9f21 Binary files /dev/null and b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/exceptions/ExceptionHandlingController.class differ diff --git a/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/exceptions/ExceptionResponse.class b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/exceptions/ExceptionResponse.class new file mode 100644 index 0000000..74c3741 Binary files /dev/null and b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/exceptions/ExceptionResponse.class differ diff --git a/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/exceptions/ResourceConflictException.class b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/exceptions/ResourceConflictException.class new file mode 100644 index 0000000..99485c1 Binary files /dev/null and b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/exceptions/ResourceConflictException.class differ diff --git a/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/jobs/AbstractLoggingJob.class b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/jobs/AbstractLoggingJob.class new file mode 100644 index 0000000..04b7027 Binary files /dev/null and b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/jobs/AbstractLoggingJob.class differ diff --git a/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/jobs/entities/LogRecord$LogType.class b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/jobs/entities/LogRecord$LogType.class new file mode 100644 index 0000000..c05c974 Binary files /dev/null and b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/jobs/entities/LogRecord$LogType.class differ diff --git a/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/jobs/entities/LogRecord.class b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/jobs/entities/LogRecord.class new file mode 100644 index 0000000..3783d43 Binary files /dev/null and b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/jobs/entities/LogRecord.class differ diff --git a/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/scheduler/AutowiringSpringBeanJobFactory.class b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/scheduler/AutowiringSpringBeanJobFactory.class new file mode 100644 index 0000000..a5b7c73 Binary files /dev/null and b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/scheduler/AutowiringSpringBeanJobFactory.class differ diff --git a/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/scheduler/TriggerMonitor.class b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/scheduler/TriggerMonitor.class new file mode 100644 index 0000000..822063d Binary files /dev/null and b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/scheduler/TriggerMonitor.class differ diff --git a/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/scheduler/TriggerMonitorImpl.class b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/scheduler/TriggerMonitorImpl.class new file mode 100644 index 0000000..4daec37 Binary files /dev/null and b/quartz-manager-parent/quartz-manager-core/target/classes/it/fabioformosa/quartzmanager/scheduler/TriggerMonitorImpl.class differ diff --git a/quartz-manager-parent/quartz-manager-core/target/test-classes/application.properties b/quartz-manager-parent/quartz-manager-core/target/test-classes/application.properties new file mode 100644 index 0000000..4dfe84c --- /dev/null +++ b/quartz-manager-parent/quartz-manager-core/target/test-classes/application.properties @@ -0,0 +1 @@ +name: Phil \ No newline at end of file