From 139e6871bfd3f059688b8605a6cd51b31c402916 Mon Sep 17 00:00:00 2001 From: "fabio.formosa" Date: Mon, 22 Apr 2019 20:28:48 +0200 Subject: [PATCH] upgraded spring boot to ver 2.x --- quartz-manager-backend/pom.xml | 58 +++++---- .../it/fabioformosa/ServletInitializer.java | 2 +- .../configuration/SchedulerConfig.java | 111 +++++++++--------- .../configuration/WebSecurityConfig.java | 5 +- .../service/impl/AuthorityServiceImpl.java | 5 +- .../service/impl/UserServiceImpl.java | 2 +- .../src/main/resources/application.yml | 5 +- .../src/main/resources/import.sql | 4 +- 8 files changed, 101 insertions(+), 91 deletions(-) diff --git a/quartz-manager-backend/pom.xml b/quartz-manager-backend/pom.xml index 54f4f27..a338a20 100644 --- a/quartz-manager-backend/pom.xml +++ b/quartz-manager-backend/pom.xml @@ -5,7 +5,7 @@ it.fabioformosa quartz-manager - 2.0.1-SNAPSHOT + 2.1.1-SNAPSHOT war quartz-manager @@ -13,8 +13,8 @@ org.springframework.boot - spring-boot-starter-parent - 1.5.9.RELEASE + spring-boot-parent + 2.1.4.RELEASE @@ -104,14 +104,12 @@ io.rest-assured spring-mock-mvc - 3.0.5 test org.quartz-scheduler quartz - 2.2.2 org.apache.commons @@ -127,15 +125,16 @@ io.projectreactor reactor-net + 2.0.8.RELEASE io.projectreactor.spring reactor-spring-context + 2.0.7.RELEASE io.netty netty-all - 4.0.31.Final org.springframework.boot @@ -163,25 +162,34 @@ - - org.codehaus.gmavenplus - gmavenplus-plugin - 1.5 - - - - addSources - addTestSources - generateStubs - compile - testGenerateStubs - testCompile - removeStubs - removeTestStubs - - - - + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.0 + + 1.8 + 1.8 + + + + + + + + + + + + + + + + + + + + + diff --git a/quartz-manager-backend/src/main/java/it/fabioformosa/ServletInitializer.java b/quartz-manager-backend/src/main/java/it/fabioformosa/ServletInitializer.java index 1f581cf..3391f3d 100644 --- a/quartz-manager-backend/src/main/java/it/fabioformosa/ServletInitializer.java +++ b/quartz-manager-backend/src/main/java/it/fabioformosa/ServletInitializer.java @@ -1,7 +1,7 @@ package it.fabioformosa; import org.springframework.boot.builder.SpringApplicationBuilder; -import org.springframework.boot.web.support.SpringBootServletInitializer; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; public class ServletInitializer extends SpringBootServletInitializer { diff --git a/quartz-manager-backend/src/main/java/it/fabioformosa/quartzmanager/configuration/SchedulerConfig.java b/quartz-manager-backend/src/main/java/it/fabioformosa/quartzmanager/configuration/SchedulerConfig.java index a5d6352..d1bd77f 100644 --- a/quartz-manager-backend/src/main/java/it/fabioformosa/quartzmanager/configuration/SchedulerConfig.java +++ b/quartz-manager-backend/src/main/java/it/fabioformosa/quartzmanager/configuration/SchedulerConfig.java @@ -3,6 +3,7 @@ package it.fabioformosa.quartzmanager.configuration; import java.io.IOException; import java.util.Properties; +import org.quartz.Job; import org.quartz.JobDetail; import org.quartz.SimpleTrigger; import org.quartz.Trigger; @@ -28,66 +29,66 @@ import it.fabioformosa.quartzmanager.scheduler.TriggerMonitorImpl; @ConditionalOnProperty(name = "quartz.enabled") public class SchedulerConfig { - private static JobDetailFactoryBean createJobDetail(Class jobClass) { - JobDetailFactoryBean factoryBean = new JobDetailFactoryBean(); - factoryBean.setJobClass(jobClass); - factoryBean.setDurability(false); - return factoryBean; - } + private static JobDetailFactoryBean createJobDetail(Class jobClass) { + JobDetailFactoryBean factoryBean = new JobDetailFactoryBean(); + factoryBean.setJobClass(jobClass); + factoryBean.setDurability(false); + return factoryBean; + } - private static SimpleTriggerFactoryBean createTrigger(JobDetail jobDetail, long pollFrequencyMs, - int repeatCount) { - SimpleTriggerFactoryBean factoryBean = new SimpleTriggerFactoryBean(); - factoryBean.setJobDetail(jobDetail); - factoryBean.setStartDelay(0L); - factoryBean.setRepeatInterval(pollFrequencyMs); - factoryBean.setRepeatCount(repeatCount); - factoryBean - .setMisfireInstruction(SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_EXISTING_COUNT);// in case of misfire, ignore all missed triggers and continue - return factoryBean; - } + private static SimpleTriggerFactoryBean createTrigger(JobDetail jobDetail, long pollFrequencyMs, + int repeatCount) { + SimpleTriggerFactoryBean factoryBean = new SimpleTriggerFactoryBean(); + factoryBean.setJobDetail(jobDetail); + factoryBean.setStartDelay(0L); + factoryBean.setRepeatInterval(pollFrequencyMs); + factoryBean.setRepeatCount(repeatCount); + factoryBean + .setMisfireInstruction(SimpleTrigger.MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_EXISTING_COUNT);// in case of misfire, ignore all missed triggers and continue + return factoryBean; + } - @Bean(name = "triggerMonitor") - public TriggerMonitor createTriggerMonitor(@Qualifier("jobTrigger") Trigger trigger) { - TriggerMonitor triggerMonitor = new TriggerMonitorImpl(); - triggerMonitor.setTrigger(trigger); - return triggerMonitor; - } + @Bean(name = "triggerMonitor") + public TriggerMonitor createTriggerMonitor(@Qualifier("jobTrigger") Trigger trigger) { + TriggerMonitor triggerMonitor = new TriggerMonitorImpl(); + triggerMonitor.setTrigger(trigger); + return triggerMonitor; + } - @Bean - public JobDetailFactoryBean jobDetail() { - return createJobDetail(SampleJob.class); - } + @Bean + public JobDetailFactoryBean jobDetail() { + return createJobDetail(SampleJob.class); + } - @Bean - public JobFactory jobFactory(ApplicationContext applicationContext) { - AutowiringSpringBeanJobFactory jobFactory = new AutowiringSpringBeanJobFactory(); - jobFactory.setApplicationContext(applicationContext); - return jobFactory; - } + @Bean + public JobFactory jobFactory(ApplicationContext applicationContext) { + AutowiringSpringBeanJobFactory jobFactory = new AutowiringSpringBeanJobFactory(); + jobFactory.setApplicationContext(applicationContext); + return jobFactory; + } - @Bean - public Properties quartzProperties() throws IOException { - PropertiesFactoryBean propertiesFactoryBean = new PropertiesFactoryBean(); - propertiesFactoryBean.setLocation(new ClassPathResource("/quartz.properties")); - propertiesFactoryBean.afterPropertiesSet(); - return propertiesFactoryBean.getObject(); - } + @Bean + public Properties quartzProperties() throws IOException { + PropertiesFactoryBean propertiesFactoryBean = new PropertiesFactoryBean(); + propertiesFactoryBean.setLocation(new ClassPathResource("/quartz.properties")); + propertiesFactoryBean.afterPropertiesSet(); + return propertiesFactoryBean.getObject(); + } - @Bean(name = "jobTrigger") - public SimpleTriggerFactoryBean sampleJobTrigger(@Qualifier("jobDetail") JobDetail jobDetail, - @Value("${job.frequency}") long frequency, @Value("${job.repeatCount}") int repeatCount) { - return createTrigger(jobDetail, frequency, repeatCount); - } + @Bean(name = "jobTrigger") + public SimpleTriggerFactoryBean sampleJobTrigger(@Qualifier("jobDetail") JobDetail jobDetail, + @Value("${job.frequency}") long frequency, @Value("${job.repeatCount}") int repeatCount) { + return createTrigger(jobDetail, frequency, repeatCount); + } - @Bean(name = "scheduler") - public SchedulerFactoryBean schedulerFactoryBean(JobFactory jobFactory, - @Qualifier("jobTrigger") Trigger sampleJobTrigger) throws IOException { - SchedulerFactoryBean factory = new SchedulerFactoryBean(); - factory.setJobFactory(jobFactory); - factory.setQuartzProperties(quartzProperties()); - factory.setTriggers(sampleJobTrigger); - factory.setAutoStartup(false); - return factory; - } + @Bean(name = "scheduler") + public SchedulerFactoryBean schedulerFactoryBean(JobFactory jobFactory, + @Qualifier("jobTrigger") Trigger sampleJobTrigger) throws IOException { + SchedulerFactoryBean factory = new SchedulerFactoryBean(); + factory.setJobFactory(jobFactory); + factory.setQuartzProperties(quartzProperties()); + factory.setTriggers(sampleJobTrigger); + factory.setAutoStartup(false); + return factory; + } } \ No newline at end of file diff --git a/quartz-manager-backend/src/main/java/it/fabioformosa/quartzmanager/configuration/WebSecurityConfig.java b/quartz-manager-backend/src/main/java/it/fabioformosa/quartzmanager/configuration/WebSecurityConfig.java index 2d72da5..94f436b 100644 --- a/quartz-manager-backend/src/main/java/it/fabioformosa/quartzmanager/configuration/WebSecurityConfig.java +++ b/quartz-manager-backend/src/main/java/it/fabioformosa/quartzmanager/configuration/WebSecurityConfig.java @@ -11,6 +11,8 @@ import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.builders.WebSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.crypto.factory.PasswordEncoderFactories; +import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.web.util.matcher.AntPathRequestMatcher; import it.fabioformosa.quartzmanager.security.ComboEntryPoint; @@ -69,7 +71,8 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Autowired public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { - auth.inMemoryAuthentication().withUser("admin").password("admin").roles("ADMIN"); + PasswordEncoder encoder = PasswordEncoderFactories.createDelegatingPasswordEncoder(); + auth.inMemoryAuthentication().withUser("admin").password(encoder.encode("admin")).roles("ADMIN"); } } diff --git a/quartz-manager-backend/src/main/java/it/fabioformosa/quartzmanager/security/service/impl/AuthorityServiceImpl.java b/quartz-manager-backend/src/main/java/it/fabioformosa/quartzmanager/security/service/impl/AuthorityServiceImpl.java index 691704e..3c45f54 100644 --- a/quartz-manager-backend/src/main/java/it/fabioformosa/quartzmanager/security/service/impl/AuthorityServiceImpl.java +++ b/quartz-manager-backend/src/main/java/it/fabioformosa/quartzmanager/security/service/impl/AuthorityServiceImpl.java @@ -17,9 +17,7 @@ public class AuthorityServiceImpl implements AuthorityService { @Override public List findById(Long id) { - // TODO Auto-generated method stub - - Authority auth = this.authorityRepository.findOne(id); + Authority auth = this.authorityRepository.getOne(id); List auths = new ArrayList<>(); auths.add(auth); return auths; @@ -27,7 +25,6 @@ public class AuthorityServiceImpl implements AuthorityService { @Override public List findByname(String name) { - // TODO Auto-generated method stub Authority auth = this.authorityRepository.findByName(name); List auths = new ArrayList<>(); auths.add(auth); diff --git a/quartz-manager-backend/src/main/java/it/fabioformosa/quartzmanager/security/service/impl/UserServiceImpl.java b/quartz-manager-backend/src/main/java/it/fabioformosa/quartzmanager/security/service/impl/UserServiceImpl.java index 2a8836f..243801d 100644 --- a/quartz-manager-backend/src/main/java/it/fabioformosa/quartzmanager/security/service/impl/UserServiceImpl.java +++ b/quartz-manager-backend/src/main/java/it/fabioformosa/quartzmanager/security/service/impl/UserServiceImpl.java @@ -37,7 +37,7 @@ public class UserServiceImpl implements UserService { @Override @PreAuthorize("hasRole('ADMIN')") public User findById(Long id) throws AccessDeniedException { - User u = userRepository.findOne(id); + User u = userRepository.getOne(id); return u; } diff --git a/quartz-manager-backend/src/main/resources/application.yml b/quartz-manager-backend/src/main/resources/application.yml index d1a31e8..962761e 100644 --- a/quartz-manager-backend/src/main/resources/application.yml +++ b/quartz-manager-backend/src/main/resources/application.yml @@ -1,7 +1,8 @@ server: - context-path: /quartz-manager + servlet: + context-path: /quartz-manager + session.timeout : 28800 port: 8080 - session.timeout : 28800 spring: thymeleaf: diff --git a/quartz-manager-backend/src/main/resources/import.sql b/quartz-manager-backend/src/main/resources/import.sql index 4120b91..ea29080 100644 --- a/quartz-manager-backend/src/main/resources/import.sql +++ b/quartz-manager-backend/src/main/resources/import.sql @@ -1,7 +1,7 @@ -- the password hash is generated by BCrypt Calculator Generator(https://www.dailycred.com/article/bcrypt-calculator) -INSERT INTO user (id, username, password, firstname, lastname) VALUES (1, 'user', '$2a$04$Vbug2lwwJGrvUXTj6z7ff.97IzVBkrJ1XfApfGNl.Z695zqcnPYra', 'John', 'Doe'); -INSERT INTO user (id, username, password, firstname, lastname) VALUES (2, 'admin', '$2a$04$Vbug2lwwJGrvUXTj6z7ff.97IzVBkrJ1XfApfGNl.Z695zqcnPYra', 'Admin', 'Admin'); +INSERT INTO user (id, username, password, firstname, lastname) VALUES (1, 'user', '{bcrypt}$2a$04$Vbug2lwwJGrvUXTj6z7ff.97IzVBkrJ1XfApfGNl.Z695zqcnPYra', 'John', 'Doe'); +INSERT INTO user (id, username, password, firstname, lastname) VALUES (2, 'admin', '{bcrypt}$2a$04$Vbug2lwwJGrvUXTj6z7ff.97IzVBkrJ1XfApfGNl.Z695zqcnPYra', 'Admin', 'Admin'); INSERT INTO authority (id, name) VALUES (1, 'ROLE_USER'); INSERT INTO authority (id, name) VALUES (2, 'ROLE_ADMIN');