diff --git a/adapter/persistence/pom.xml b/adapter/persistence/pom.xml index 429e5f2..cf0029d 100644 --- a/adapter/persistence/pom.xml +++ b/adapter/persistence/pom.xml @@ -11,7 +11,7 @@ de.strasser.peter.hexagonal - persistenceadapter + persistence 0.0.1-SNAPSHOT jar diff --git a/adapter/persistence/src/main/java/de/strasser/peter/hexagonal/persistence/config/MongoConfig.java b/adapter/persistence/src/main/java/de/strasser/peter/hexagonal/persistence/config/MongoConfig.java index c850f8f..7cd4d58 100644 --- a/adapter/persistence/src/main/java/de/strasser/peter/hexagonal/persistence/config/MongoConfig.java +++ b/adapter/persistence/src/main/java/de/strasser/peter/hexagonal/persistence/config/MongoConfig.java @@ -1,10 +1,15 @@ package de.strasser.peter.hexagonal.persistence.config; -import de.strasser.peter.hexagonal.persistence.repository.CustomerRepository; +import com.mongodb.client.MongoClient; +import com.mongodb.client.MongoClients; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.data.mongodb.repository.config.EnableMongoRepositories; @Configuration -@EnableMongoRepositories(basePackageClasses = CustomerRepository.class) public class MongoConfig { + + @Bean + public MongoClient mongoClient() { + return MongoClients.create("mongodb://admin:changeme@localhost:27017"); + } } diff --git a/adapter/persistence/src/main/java/de/strasser/peter/hexagonal/persistence/model/CustomerEntity.java b/adapter/persistence/src/main/java/de/strasser/peter/hexagonal/persistence/model/CustomerEntity.java index ad0b9dd..27f1ef8 100644 --- a/adapter/persistence/src/main/java/de/strasser/peter/hexagonal/persistence/model/CustomerEntity.java +++ b/adapter/persistence/src/main/java/de/strasser/peter/hexagonal/persistence/model/CustomerEntity.java @@ -1,11 +1,15 @@ package de.strasser.peter.hexagonal.persistence.model; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; import org.springframework.data.annotation.Id; import java.time.LocalDate; @Data +@AllArgsConstructor +@NoArgsConstructor public class CustomerEntity { @Id private Integer id; @@ -28,4 +32,5 @@ public class CustomerEntity { private int billingHouseNumber; private int billingZipCode; private String billingCountry; + } diff --git a/adapter/persistence/src/main/java/de/strasser/peter/hexagonal/persistence/repository/CustomerRepository.java b/adapter/persistence/src/main/java/de/strasser/peter/hexagonal/persistence/repository/CustomerRepository.java index f842566..22d234f 100644 --- a/adapter/persistence/src/main/java/de/strasser/peter/hexagonal/persistence/repository/CustomerRepository.java +++ b/adapter/persistence/src/main/java/de/strasser/peter/hexagonal/persistence/repository/CustomerRepository.java @@ -2,6 +2,8 @@ package de.strasser.peter.hexagonal.persistence.repository; import de.strasser.peter.hexagonal.persistence.model.CustomerEntity; import org.springframework.data.mongodb.repository.MongoRepository; +import org.springframework.stereotype.Repository; +@Repository public interface CustomerRepository extends MongoRepository { } diff --git a/adapter/persistence/src/main/resources/application.properties b/adapter/persistence/src/main/resources/application.properties deleted file mode 100644 index e69de29..0000000 diff --git a/adapter/web/pom.xml b/adapter/web/pom.xml index 7db0184..caf6476 100644 --- a/adapter/web/pom.xml +++ b/adapter/web/pom.xml @@ -10,9 +10,9 @@ de.strasser.peter.hexagonal - webadapter + web 0.0.1-SNAPSHOT - webadapter + web Web adapter 14 diff --git a/adapter/web/src/main/java/de/strasser/peter/hexagonal/webadapter/config/WebConfig.java b/adapter/web/src/main/java/de/strasser/peter/hexagonal/webadapter/config/WebConfig.java new file mode 100644 index 0000000..276c3f5 --- /dev/null +++ b/adapter/web/src/main/java/de/strasser/peter/hexagonal/webadapter/config/WebConfig.java @@ -0,0 +1,8 @@ +package de.strasser.peter.hexagonal.webadapter.config; + +import org.springframework.context.annotation.Configuration; + +@Configuration +public class WebConfig { + +} diff --git a/application/pom.xml b/application/pom.xml index ab188cf..f4b5933 100644 --- a/application/pom.xml +++ b/application/pom.xml @@ -28,11 +28,6 @@ org.springframework.boot spring-boot-starter-validation - - org.springframework.boot - spring-boot-starter-security - - org.springframework.boot spring-boot-starter-test diff --git a/application/src/main/java/de/strasser/peter/hexagonal/application/customer/service/RegisterCustomerService.java b/application/src/main/java/de/strasser/peter/hexagonal/application/customer/service/RegisterCustomerService.java index 822ca4f..720c3ed 100644 --- a/application/src/main/java/de/strasser/peter/hexagonal/application/customer/service/RegisterCustomerService.java +++ b/application/src/main/java/de/strasser/peter/hexagonal/application/customer/service/RegisterCustomerService.java @@ -6,7 +6,6 @@ import de.strasser.peter.hexagonal.application.customer.port.in.commands.Registe import de.strasser.peter.hexagonal.application.customer.port.out.SaveCustomerAdapter; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; @@ -18,13 +17,16 @@ import javax.validation.Valid; @RequiredArgsConstructor class RegisterCustomerService implements RegisterCustomerUseCase { private final SaveCustomerAdapter saveUser; - private final PasswordEncoder pwEncoder; @Override public void register(@Valid RegisterCustomerCommand registerCmd) { - var encryptedPw = pwEncoder.encode(registerCmd.getClearPassword()); + var encryptedPw = this.secureHashingAlgorithm(registerCmd.getClearPassword()); var newCustomer = Customer.newCustomer(registerCmd.getName(), encryptedPw, registerCmd.getBirthDay()); saveUser.upsert(newCustomer); } + + private String secureHashingAlgorithm(String s) { + return new StringBuilder(s).reverse().toString(); + } } diff --git a/application/src/test/java/de/strasser/peter/hexagonal/application/TestConfiguration.java b/application/src/test/java/de/strasser/peter/hexagonal/application/TestConfiguration.java index 5fd9e0d..3633615 100644 --- a/application/src/test/java/de/strasser/peter/hexagonal/application/TestConfiguration.java +++ b/application/src/test/java/de/strasser/peter/hexagonal/application/TestConfiguration.java @@ -1,25 +1,12 @@ package de.strasser.peter.hexagonal.application; -import de.strasser.peter.hexagonal.application.customer.mapper.AddAddressMapper; -import de.strasser.peter.hexagonal.application.customer.port.out.AddressValidatorAdapter; -import de.strasser.peter.hexagonal.application.customer.port.out.LoadCustomerAdapter; -import de.strasser.peter.hexagonal.application.customer.port.out.SaveCustomerAdapter; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.context.annotation.Bean; -import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; -import org.springframework.security.crypto.password.PasswordEncoder; @Slf4j @SpringBootApplication public class TestConfiguration { - @Bean - public PasswordEncoder pwEncoder() { - return new BCryptPasswordEncoder(); - } - } diff --git a/config/pom.xml b/config/pom.xml index 309eb9d..a39f19e 100644 --- a/config/pom.xml +++ b/config/pom.xml @@ -22,14 +22,6 @@ org.springframework.boot spring-boot-starter - - org.springframework.boot - spring-boot-starter-security - - - org.springframework.boot - spring-boot-starter-data-mongodb - org.springframework.boot @@ -49,12 +41,12 @@ de.strasser.peter.hexagonal - webadapter + web ${project.version} de.strasser.peter.hexagonal - persistenceadapter + persistence ${project.version} diff --git a/config/src/main/java/de/strasser/peter/hexagonal/config/HexagonalApplication.java b/config/src/main/java/de/strasser/peter/hexagonal/HexagonalApplication.java similarity index 66% rename from config/src/main/java/de/strasser/peter/hexagonal/config/HexagonalApplication.java rename to config/src/main/java/de/strasser/peter/hexagonal/HexagonalApplication.java index 140eabb..a51fe41 100644 --- a/config/src/main/java/de/strasser/peter/hexagonal/config/HexagonalApplication.java +++ b/config/src/main/java/de/strasser/peter/hexagonal/HexagonalApplication.java @@ -1,11 +1,9 @@ -package de.strasser.peter.hexagonal.config; +package de.strasser.peter.hexagonal; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.annotation.ComponentScan; @SpringBootApplication -@ComponentScan("de.strasser.peter.hexagonal") public class HexagonalApplication { public static void main(String[] args) { diff --git a/config/src/main/java/de/strasser/peter/hexagonal/config/SecurityConfig.java b/config/src/main/java/de/strasser/peter/hexagonal/config/SecurityConfig.java deleted file mode 100644 index 94b97e3..0000000 --- a/config/src/main/java/de/strasser/peter/hexagonal/config/SecurityConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package de.strasser.peter.hexagonal.config; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; -import org.springframework.security.crypto.password.PasswordEncoder; - -@Configuration -public class SecurityConfig { - @Bean - public PasswordEncoder encoder() { - return new BCryptPasswordEncoder(); - } -} diff --git a/config/src/main/resources/application.properties b/config/src/main/resources/application.properties index dba47cf..daa0eee 100644 --- a/config/src/main/resources/application.properties +++ b/config/src/main/resources/application.properties @@ -1,6 +1 @@ -spring.data.mongodb.host=localhost -spring.data.mongodb.port=27021 -spring.data.mongodb.database=test -spring.data.mongodb.authentication-database=admin -spring.data.mongodb.username=test -spring.data.mongodb.password=test +spring.jackson.serialization.WRITE_DATES_AS_TIMESTAMPS=false diff --git a/config/src/test/java/resources/application.properties b/config/src/test/java/resources/application.properties new file mode 100644 index 0000000..daa0eee --- /dev/null +++ b/config/src/test/java/resources/application.properties @@ -0,0 +1 @@ +spring.jackson.serialization.WRITE_DATES_AS_TIMESTAMPS=false diff --git a/mongodb-docker-compose.yml b/mongodb-docker-compose.yml index 2b5ff1e..ff67566 100644 --- a/mongodb-docker-compose.yml +++ b/mongodb-docker-compose.yml @@ -1,14 +1,15 @@ version: '3.1' services: - mongo: image: mongo restart: always + ports: + - 27017:27017 environment: - MONGO_INITDB_ROOT_USERNAME: test - MONGO_INITDB_ROOT_PASSWORD: test - MONGO_INITDB_DATABASE: test + MONGO_INITDB_ROOT_USERNAME: admin + MONGO_INITDB_ROOT_PASSWORD: changeme + MONGO_INITDB_DATABASE: customer mongo-express: image: mongo-express @@ -16,5 +17,5 @@ services: ports: - 8081:8081 environment: - ME_CONFIG_MONGODB_ADMINUSERNAME: test - ME_CONFIG_MONGODB_ADMINPASSWORD: test + ME_CONFIG_MONGODB_ADMINUSERNAME: admin + ME_CONFIG_MONGODB_ADMINPASSWORD: changeme