diff --git a/README.md b/README.md index 668928e..d48029a 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,10 @@ [![Gitter](https://badges.gitter.im/quartz-manager/community.svg)](https://gitter.im/quartz-manager/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) # QUARTZ MANAGER -GUI Manager for Quartz Scheduler. +UI Manager for Quartz Scheduler. -Through this webapp you can launch and control your scheduled job. The GUI Console is composed by a managament panel to set trigger, start/stop scheduler and a log panel with a progress bar to display the job output. +Through this webapp you can launch and control your scheduled job. The UI Console is composed by a management panel to set trigger, start/stop scheduler and a log panel with a progress bar to display the job output. -## SCREENSHOT ![](https://github.com/fabioformosa/quartz-manager/blob/master/quartz-manager-api/src/main/resources/quartz-manager-2-screenshot_800.PNG) ## HOW IT WORKS @@ -14,9 +13,19 @@ Through this webapp you can launch and control your scheduled job. The GUI Conso * The GUI manager updates the progress bar and reports all logs of your quartz job. ## ROADMAP -Open the [Projects Section](https://github.com/fabioformosa/quartz-manager/projects) to glance at the roadmap of Quartz Manager. -This project was born in 2016 when I needed a visual panel to monitor a scheduled job that fulfilled a mailing campaign to my customers. -It is currently under development, regarding: frontend, backend and CI/CD. +Open the [Project Roadmap](https://github.com/fabioformosa/quartz-manager/projects) to take a look at the plan of Quartz Manager. +Currently this project might be useful to look how to import Quartz Library in a spring boot application. For this purpose, browse the folder `quartz-manager-parent/quartz-manager-api`. +We're just working to create a library, from project `quartz-manager-parent/quartz-manager-api`, to be imported in your spring boot where you have your job to be scheduled. +The project `quartz-manager-parent/quartz-manager-web` is an example of how-to: + * import the library + * set the application.yml + * add secure layer + * schedule a custom job (a dummy `hello world`) + +## PROJECT STRUCTURE +* **quartz-parent/quartz-manager-api** is the library that can be imported in webapp to have the quartz-manager API. +* **quartz-parent/quartz-manager-web** is an example of webapp that imports quartz-manager-api. It adds a secure layer and a custom job to be scheduled. +* **quartz-frontend** is the angular app that interacts with the Quartz Manager API. Next steps in the roadmap are: * to simplify the customization of the job through plugins @@ -30,12 +39,14 @@ Next steps in the roadmap are: * [Maven](https://maven.apache.org/) * [npm](https://www.npmjs.com/get-npm), [node](https://nodejs.org) and [angular-cli](https://cli.angular.io/) +To build&run quartz-manager in your machine: + ``` #CLONE REPOSITORY git clone https://github.com/fabioformosa/quartz-manager.git -# START QUARTZ-MANAGER-API -cd quartz-manager/quartz-manager-api +# START QUARTZ-MANAGER-WEB +cd quartz-manager/quartz-parent/quartz-manager-web mvn spring-boot:run # START QUARTZ-MANAGER-FRONTEND @@ -50,15 +61,16 @@ npm start If you are not confident with maven CLI, you can start it by your IDE. For more details [spring boot ref.](http://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-running-your-application.html) + ## HOW TO RUN YOUR SCHEDULED JOB -By default, quartz-manager executes the dummy job that logs "hello world!". +By default, quartz-manager-web executes the dummy job that logs "hello world!". Replace the dummy job (class: `it.fabioformosa.quartzmanager.jobs.SampleJob`) with yours. Follow these steps: 1. Extend the super class `it.fabioformosa.quartzmanager.jobs.AbstractLoggingJob` 1. set property `quartz-manager.jobClass` with qualified name of your custom Job Class (default job is SampleJob.class) ## HOW TO CHANGE SETTINGS -* Num of Threads: `/quartz-manager/src/main/resources/quartz.properties` +* Num of Threads: `/quartz-manager-parent/quartz-manager-web/src/main/resources/quartz.properties` * Credentials: To change admin's password, set ENV var `quartz-manager.account.pwd` * quartz-manager backend context path (default `/quartz-manager`) and port (default `8080`): `/quartz-manager/src/main/resources/application.properties` 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/.gitignore b/quartz-manager-parent/.gitignore new file mode 100644 index 0000000..0c2b833 --- /dev/null +++ b/quartz-manager-parent/.gitignore @@ -0,0 +1,2 @@ +/.settings/ +/.project diff --git a/quartz-manager-parent/pom.xml b/quartz-manager-parent/pom.xml new file mode 100644 index 0000000..8ff19a3 --- /dev/null +++ b/quartz-manager-parent/pom.xml @@ -0,0 +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.2-SNAPSHOT + + pom + + + quartz-manager-api + quartz-manager-web + + + + + + it.fabioformosa.quartz-manager + quartz-manager-api + 2.2.2-SNAPSHOT + + + + + \ No newline at end of file diff --git a/quartz-manager-parent/quartz-manager-api/.gitignore b/quartz-manager-parent/quartz-manager-api/.gitignore new file mode 100644 index 0000000..3b26673 --- /dev/null +++ b/quartz-manager-parent/quartz-manager-api/.gitignore @@ -0,0 +1,4 @@ +/.classpath +/.project +/target/** +.settings/** \ No newline at end of file diff --git a/quartz-manager-parent/quartz-manager-api/pom.xml b/quartz-manager-parent/quartz-manager-api/pom.xml new file mode 100644 index 0000000..83df094 --- /dev/null +++ b/quartz-manager-parent/quartz-manager-api/pom.xml @@ -0,0 +1,120 @@ + + + 4.0.0 + + it.fabioformosa.quartz-manager + quartz-manager-parent + 2.2.2-SNAPSHOT + + + quartz-manager-api + + Quartz Manager API + A library to manage your scheduled job by API + + 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} + + + + diff --git a/quartz-manager-api/src/main/java/it/fabioformosa/quartzmanager/aspects/ProgressNotifier.java b/quartz-manager-parent/quartz-manager-api/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-api/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-api/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-api/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-api/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-api/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-api/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-api/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-api/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-api/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-api/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-api/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-api/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-api/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-api/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-api/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-api/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-api/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-api/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-api/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-api/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-api/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-api/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-api/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-api/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-api/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-api/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-api/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-api/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-api/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-api/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-api/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-api/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-api/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-api/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-api/src/main/java/it/fabioformosa/quartzmanager/scheduler/TriggerMonitorImpl.java diff --git a/quartz-manager-parent/quartz-manager-api/src/test/resources/application.properties b/quartz-manager-parent/quartz-manager-api/src/test/resources/application.properties new file mode 100644 index 0000000..4dfe84c --- /dev/null +++ b/quartz-manager-parent/quartz-manager-api/src/test/resources/application.properties @@ -0,0 +1 @@ +name: Phil \ No newline at end of file diff --git a/quartz-manager-api/.gitignore b/quartz-manager-parent/quartz-manager-web/.gitignore similarity index 90% rename from quartz-manager-api/.gitignore rename to quartz-manager-parent/quartz-manager-web/.gitignore index b889765..8f010af 100644 --- a/quartz-manager-api/.gitignore +++ b/quartz-manager-parent/quartz-manager-web/.gitignore @@ -9,3 +9,4 @@ /.classpath /.idea/ /quartz-manager.iml +/target/** diff --git a/quartz-manager-api/pom.xml b/quartz-manager-parent/quartz-manager-web/pom.xml similarity index 52% rename from quartz-manager-api/pom.xml rename to quartz-manager-parent/quartz-manager-web/pom.xml index caccc3c..d651cd5 100644 --- a/quartz-manager-api/pom.xml +++ b/quartz-manager-parent/quartz-manager-web/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 - quartz-manager - 2.1.1-SNAPSHOT - war + + it.fabioformosa.quartz-manager + quartz-manager-parent + 2.2.2-SNAPSHOT + - quartz-manager - Manager Panel for Quartz Scheduler - - - org.springframework.boot - spring-boot-parent - 2.1.4.RELEASE - - + quartz-manager-web + war + + Quartz Manager Web + A webapp that imports Quartz Manager API lib + UTF-8 UTF-8 @@ -26,15 +24,16 @@ + + it.fabioformosa.quartz-manager + quartz-manager-api + + 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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/JwtTokenBasedAuthentication.java diff --git a/quartz-manager-parent/quartz-manager-web/src/main/java/it/fabioformosa/quartzmanager/security/helpers/impl/JwtTokenHelper.java b/quartz-manager-parent/quartz-manager-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/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-web/src/main/resources/_disabled_import.sql_off diff --git a/quartz-manager-api/src/main/resources/application.yml b/quartz-manager-parent/quartz-manager-web/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-web/src/main/resources/application.yml diff --git a/quartz-manager-api/src/main/resources/banner.txt b/quartz-manager-parent/quartz-manager-web/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-web/src/main/resources/banner.txt diff --git a/quartz-manager-api/src/main/resources/logback.xml b/quartz-manager-parent/quartz-manager-web/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-web/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-web/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-web/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-web/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-web/src/main/resources/quartz.properties diff --git a/quartz-manager-api/src/test/java/it/fabioformosa/QuartManagerApplicationTests.java b/quartz-manager-parent/quartz-manager-web/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-web/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-web/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() { + } }