From 7b89c4535384ac049271799046144c46b30e62f5 Mon Sep 17 00:00:00 2001 From: Thomas <gltron3000@gmail.com> Date: Tue, 26 May 2020 17:38:53 +0200 Subject: [PATCH] Fixed deployment config --- buildAndRun.sh | 2 +- docker-compose.yml | 22 ++++------ mozen/pom.xml | 12 ++---- .../src/main/java/mozen/MozenApplication.java | 40 ------------------- .../mozen/auth/JwtAuthenticationFilter.java | 2 + .../src/main/java/mozen/auth/WebSecurity.java | 37 +++++++++-------- .../java/mozen/web/CommentController.java | 2 +- .../java/mozen/web/CustomLayerController.java | 2 +- .../main/java/mozen/web/ModelController.java | 2 +- .../main/java/mozen/web/SearchController.java | 2 +- .../main/java/mozen/web/TagController.java | 2 +- .../main/java/mozen/web/UserController.java | 2 +- .../main/java/mozen/web/VoteController.java | 2 +- .../src/main/resources/application.properties | 25 +++++++++--- .../src/test/resources/application.properties | 5 +++ 15 files changed, 66 insertions(+), 93 deletions(-) create mode 100644 mozen/src/test/resources/application.properties diff --git a/buildAndRun.sh b/buildAndRun.sh index 0a83112..1b9b701 100755 --- a/buildAndRun.sh +++ b/buildAndRun.sh @@ -1,3 +1,3 @@ ./quickBuildToJar.sh docker build . -t gltron/mozen -docker run --name mozen -d -p 8007:8181 gltron/mozen \ No newline at end of file +docker-compose up -d \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 301901a..b668036 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,7 @@ version: '3' services: # https://docs.linuxserver.io/images/docker-mariadb - mariadb: + mozen_mariadb: image: linuxserver/mariadb container_name: mozen_mariadb environment: @@ -10,23 +10,17 @@ services: - MYSQL_ROOT_PASSWORD=ROOT_ACCESS_PASSWORD - TZ=Europe/Paris - MYSQL_DATABASE=MOZEN_DB - - MYSQL_USER=mozen + - MYSQL_USER=mozen_user - MYSQL_PASSWORD=1234 volumes: - - path_to_data:/config - ports: - - 3306:3306 + - /data/mozen_db_data:/config restart: unless-stopped - mozen: + mozen_web: depends_on: - - mariadb - image: mozen - container_name: mozen - environment: - - DB_PORT=3306 - - DB_USER=mozen - - DB_PASSWORD=1234 + - mozen_mariadb + image: gltron/mozen + container_name: mozen_web ports: - - 80:8181 + - 8007:8181 restart: unless-stopped diff --git a/mozen/pom.xml b/mozen/pom.xml index 956a989..993375b 100644 --- a/mozen/pom.xml +++ b/mozen/pom.xml @@ -23,10 +23,6 @@ <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-mail</artifactId> - </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> @@ -46,11 +42,11 @@ <version>0.9.1</version> </dependency> <dependency> - <groupId>org.postgresql</groupId> - <artifactId>postgresql</artifactId> - <scope>runtime</scope> + <groupId>org.mariadb.jdbc</groupId> + <artifactId>mariadb-java-client</artifactId> + <version>2.6.0</version> </dependency> - + <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> diff --git a/mozen/src/main/java/mozen/MozenApplication.java b/mozen/src/main/java/mozen/MozenApplication.java index fa1e655..015cef3 100644 --- a/mozen/src/main/java/mozen/MozenApplication.java +++ b/mozen/src/main/java/mozen/MozenApplication.java @@ -1,8 +1,5 @@ package mozen; -import javax.persistence.EntityManagerFactory; -import javax.sql.DataSource; - import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.domain.EntityScan; @@ -10,14 +7,7 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.PropertySource; import org.springframework.data.jpa.repository.config.EnableJpaRepositories; -import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder; -import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType; -import org.springframework.orm.jpa.JpaTransactionManager; -import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; -import org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor; -import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; -import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.annotation.EnableTransactionManagement; @SpringBootApplication @@ -33,36 +23,6 @@ public class MozenApplication { return new BCryptPasswordEncoder(); } - @Bean - public DataSource dataSource() { - EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder(); - return builder.setType(EmbeddedDatabaseType.HSQL).build(); - } - - @Bean - public LocalContainerEntityManagerFactoryBean entityManagerFactory() { - HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter(); - vendorAdapter.setGenerateDdl(true); - - LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean(); - factory.setJpaVendorAdapter(vendorAdapter); - factory.setPackagesToScan("mozen.model"); - factory.setDataSource(dataSource()); - return factory; - } - - @Bean - public PlatformTransactionManager transactionManager(EntityManagerFactory emf) { - JpaTransactionManager transactionManager = new JpaTransactionManager(); - transactionManager.setEntityManagerFactory(emf); - return transactionManager; - } - - @Bean - public PersistenceAnnotationBeanPostProcessor annotationProcessor() { - return new PersistenceAnnotationBeanPostProcessor(); - } - public static void main(String[] args) { SpringApplication.run(MozenApplication.class, args); } diff --git a/mozen/src/main/java/mozen/auth/JwtAuthenticationFilter.java b/mozen/src/main/java/mozen/auth/JwtAuthenticationFilter.java index d600d31..7eaa46a 100644 --- a/mozen/src/main/java/mozen/auth/JwtAuthenticationFilter.java +++ b/mozen/src/main/java/mozen/auth/JwtAuthenticationFilter.java @@ -26,6 +26,8 @@ public class JwtAuthenticationFilter extends UsernamePasswordAuthenticationFilte public JwtAuthenticationFilter(AuthenticationManager authenticationManager){ this.authenticationManager = authenticationManager; + + setFilterProcessesUrl("/api/users/login"); } @Override diff --git a/mozen/src/main/java/mozen/auth/WebSecurity.java b/mozen/src/main/java/mozen/auth/WebSecurity.java index e42b976..18fe1db 100644 --- a/mozen/src/main/java/mozen/auth/WebSecurity.java +++ b/mozen/src/main/java/mozen/auth/WebSecurity.java @@ -37,27 +37,30 @@ public class WebSecurity extends WebSecurityConfigurerAdapter{ // PUBLIC SECTION .requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll() .antMatchers("/").permitAll() - .antMatchers(HttpMethod.POST, "/login").permitAll() - .antMatchers(HttpMethod.POST, "/users/signup").permitAll() - .antMatchers(HttpMethod.GET, "/search").permitAll() - .antMatchers(HttpMethod.GET, "/comments").permitAll() - .antMatchers(HttpMethod.GET, "/tags").permitAll() - .antMatchers(HttpMethod.GET, "/models").permitAll() - .antMatchers(HttpMethod.GET, "/models/download").permitAll() - .antMatchers(HttpMethod.GET, "/layers/download").permitAll() + .antMatchers(HttpMethod.POST, "/api/users/login").permitAll() + .antMatchers(HttpMethod.POST, "/api/users/signup").permitAll() + .antMatchers(HttpMethod.GET, "/api/search").permitAll() + .antMatchers(HttpMethod.GET, "/api/comments").permitAll() + .antMatchers(HttpMethod.GET, "/api/tags").permitAll() + .antMatchers(HttpMethod.GET, "/api/models").permitAll() + .antMatchers(HttpMethod.GET, "/api/models/download").permitAll() + .antMatchers(HttpMethod.GET, "/api/layers/download").permitAll() // ADMIN SECTION - .antMatchers(HttpMethod.GET, "/models/setVerified").hasRole("ADMIN") - .antMatchers(HttpMethod.GET, "/users/setAdmin").hasRole("ADMIN") - .antMatchers(HttpMethod.DELETE, "/tags").hasRole("ADMIN") - .antMatchers(HttpMethod.DELETE, "/tags/category").hasRole("ADMIN") - .antMatchers(HttpMethod.POST, "/tags/category").hasRole("ADMIN") - .antMatchers(HttpMethod.GET, "/models/list").hasRole("ADMIN") - .antMatchers(HttpMethod.GET, "/users/list").hasRole("ADMIN") - .antMatchers(HttpMethod.GET, "/comments/list").hasRole("ADMIN") + .antMatchers(HttpMethod.GET, "/api/models/setVerified").hasRole("ADMIN") + .antMatchers(HttpMethod.GET, "/api/users/setAdmin").hasRole("ADMIN") + .antMatchers(HttpMethod.DELETE, "/api/tags").hasRole("ADMIN") + .antMatchers(HttpMethod.DELETE, "/api/tags/category").hasRole("ADMIN") + .antMatchers(HttpMethod.POST, "/api/tags/category").hasRole("ADMIN") + .antMatchers(HttpMethod.GET, "/api/models/list").hasRole("ADMIN") + .antMatchers(HttpMethod.GET, "/api/users/list").hasRole("ADMIN") + .antMatchers(HttpMethod.GET, "/api/comments/list").hasRole("ADMIN") // USER SECTION - .anyRequest().authenticated() + .antMatchers("/api/**").authenticated() + + // DEFAULT + .anyRequest().permitAll() .and() .addFilter(new JwtAuthenticationFilter(authenticationManager())) .addFilter(new JwtAuthorizationFilter(authenticationManager())) diff --git a/mozen/src/main/java/mozen/web/CommentController.java b/mozen/src/main/java/mozen/web/CommentController.java index 29931a0..f8234ea 100644 --- a/mozen/src/main/java/mozen/web/CommentController.java +++ b/mozen/src/main/java/mozen/web/CommentController.java @@ -22,7 +22,7 @@ import mozen.model.User; import mozen.utils.UserHelper; @RestController -@RequestMapping("/comments") +@RequestMapping("/api/comments") @CrossOrigin public class CommentController { @Autowired diff --git a/mozen/src/main/java/mozen/web/CustomLayerController.java b/mozen/src/main/java/mozen/web/CustomLayerController.java index ce3e2df..0ed31f1 100644 --- a/mozen/src/main/java/mozen/web/CustomLayerController.java +++ b/mozen/src/main/java/mozen/web/CustomLayerController.java @@ -22,7 +22,7 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; @RestController -@RequestMapping("/layers") +@RequestMapping("/api/layers") @CrossOrigin public class CustomLayerController { @Autowired diff --git a/mozen/src/main/java/mozen/web/ModelController.java b/mozen/src/main/java/mozen/web/ModelController.java index 11d6b47..69e8522 100644 --- a/mozen/src/main/java/mozen/web/ModelController.java +++ b/mozen/src/main/java/mozen/web/ModelController.java @@ -30,7 +30,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; @RestController -@RequestMapping("/models") +@RequestMapping("/api/models") @CrossOrigin public class ModelController { @Autowired diff --git a/mozen/src/main/java/mozen/web/SearchController.java b/mozen/src/main/java/mozen/web/SearchController.java index 8d6c0fb..a4aadda 100644 --- a/mozen/src/main/java/mozen/web/SearchController.java +++ b/mozen/src/main/java/mozen/web/SearchController.java @@ -13,7 +13,7 @@ import mozen.business.IModelManager; import mozen.messages.SearchResult; @RestController -@RequestMapping("/search") +@RequestMapping("/api/search") @CrossOrigin public class SearchController { @Autowired diff --git a/mozen/src/main/java/mozen/web/TagController.java b/mozen/src/main/java/mozen/web/TagController.java index e245ba6..abff07d 100644 --- a/mozen/src/main/java/mozen/web/TagController.java +++ b/mozen/src/main/java/mozen/web/TagController.java @@ -22,7 +22,7 @@ import mozen.messages.TagMessage; import mozen.model.TagCategory; @RestController -@RequestMapping("/tags") +@RequestMapping("/api/tags") @CrossOrigin public class TagController { @Autowired diff --git a/mozen/src/main/java/mozen/web/UserController.java b/mozen/src/main/java/mozen/web/UserController.java index 4a9f4d9..c5504ad 100644 --- a/mozen/src/main/java/mozen/web/UserController.java +++ b/mozen/src/main/java/mozen/web/UserController.java @@ -29,7 +29,7 @@ import mozen.utils.JwtUtils; import mozen.utils.UserHelper; @RestController -@RequestMapping("/users") +@RequestMapping("/api/users") @CrossOrigin public class UserController { @Autowired diff --git a/mozen/src/main/java/mozen/web/VoteController.java b/mozen/src/main/java/mozen/web/VoteController.java index ad0913c..e8a2ceb 100644 --- a/mozen/src/main/java/mozen/web/VoteController.java +++ b/mozen/src/main/java/mozen/web/VoteController.java @@ -19,7 +19,7 @@ import mozen.utils.UserHelper; import org.springframework.web.bind.annotation.RequestParam; @RestController -@RequestMapping("/vote") +@RequestMapping("/api/vote") @CrossOrigin public class VoteController { @Autowired diff --git a/mozen/src/main/resources/application.properties b/mozen/src/main/resources/application.properties index eb021a5..4d10c89 100644 --- a/mozen/src/main/resources/application.properties +++ b/mozen/src/main/resources/application.properties @@ -1,12 +1,11 @@ - server.port=8181 # H2 -spring.datasource.driverClassName=org.hsqldb.jdbcDriver -spring.datasource.url=jdbc:hsqldb:mem:mydb -spring.datasource.username=SA -spring.datasource.password= -spring.jpa.database-platform=org.hibernate.dialect.H2Dialect +#spring.datasource.driverClassName=org.hsqldb.jdbcDriver +#spring.datasource.url=jdbc:hsqldb:mem:mydb +#spring.datasource.username=SA +#spring.datasource.password= +#spring.jpa.database-platform=org.hibernate.dialect.H2Dialect # MySQL #spring.datasource.url=jdbc:mysql://localhost:3306/test @@ -15,6 +14,20 @@ spring.jpa.database-platform=org.hibernate.dialect.H2Dialect #spring.datasource.driver-class-name=com.mysql.jdbc.Driver #spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect +# MARIADB +#spring.datasource.url=jdbc:mariadb://localhost:3306/MOZEN_DB +#spring.datasource.username=mozen_user +#spring.datasource.password=1234 +#spring.datasource.driver-class-name=org.mariadb.jdbc.Driver +#spring.jpa.hibernate.ddl-auto=update + +# DOCKER + MARIADB +spring.datasource.url=jdbc:mariadb://mozen_mariadb:3306/MOZEN_DB +spring.datasource.username=mozen_user +spring.datasource.password=1234 +spring.datasource.driver-class-name=org.mariadb.jdbc.Driver +spring.jpa.hibernate.ddl-auto=update + spring.servlet.multipart.max-file-size=10GB spring.servlet.multipart.max-request-size=10GB diff --git a/mozen/src/test/resources/application.properties b/mozen/src/test/resources/application.properties new file mode 100644 index 0000000..ebdca00 --- /dev/null +++ b/mozen/src/test/resources/application.properties @@ -0,0 +1,5 @@ +spring.datasource.driverClassName=org.hsqldb.jdbcDriver +spring.datasource.url=jdbc:hsqldb:mem:mydb +spring.datasource.username=SA +spring.datasource.password= +spring.jpa.database-platform=org.hibernate.dialect.H2Dialect \ No newline at end of file -- GitLab