diff --git a/src/main/java/de/ozgcloud/admin/AdministrationRepositoryRestConfigurer.java b/src/main/java/de/ozgcloud/admin/AdministrationRepositoryRestConfigurer.java index 277a97132d667b79f0e8b53c4f86e719834bae85..31bcf3b864fd772838ebe1ef3555084c984af6b6 100644 --- a/src/main/java/de/ozgcloud/admin/AdministrationRepositoryRestConfigurer.java +++ b/src/main/java/de/ozgcloud/admin/AdministrationRepositoryRestConfigurer.java @@ -28,7 +28,8 @@ import jakarta.validation.Validation; import org.springframework.context.annotation.Configuration; import org.springframework.data.rest.core.event.ValidatingRepositoryEventListener; import org.springframework.data.rest.webmvc.config.RepositoryRestConfigurer; -import org.springframework.validation.beanvalidation.SpringValidatorAdapter; + +import de.ozgcloud.admin.common.DelegatingValidatorAdapter; @Configuration public class AdministrationRepositoryRestConfigurer implements RepositoryRestConfigurer { @@ -36,6 +37,6 @@ public class AdministrationRepositoryRestConfigurer implements RepositoryRestCon @Override public void configureValidatingRepositoryEventListener(ValidatingRepositoryEventListener listener) { var validator = Validation.buildDefaultValidatorFactory().getValidator(); - listener.addValidator("beforeCreate", new SpringValidatorAdapter(validator)); + listener.addValidator("beforeCreate", new DelegatingValidatorAdapter(validator)); } } diff --git a/src/main/java/de/ozgcloud/admin/common/DelegatingValidatorAdapter.java b/src/main/java/de/ozgcloud/admin/common/DelegatingValidatorAdapter.java new file mode 100644 index 0000000000000000000000000000000000000000..ca230a405d1db3bb31e8e576841db3b1e21a1d08 --- /dev/null +++ b/src/main/java/de/ozgcloud/admin/common/DelegatingValidatorAdapter.java @@ -0,0 +1,30 @@ +package de.ozgcloud.admin.common; + +import java.util.Objects; + +import jakarta.validation.ConstraintViolationException; + +import org.springframework.validation.Errors; +import org.springframework.validation.Validator; + +import lombok.RequiredArgsConstructor; + +@RequiredArgsConstructor +public class DelegatingValidatorAdapter implements Validator { + + private final jakarta.validation.Validator delegate; + + @Override + public boolean supports(Class<?> clazz) { + return !Objects.isNull(delegate); + } + + @Override + public void validate(Object target, Errors errors) { + var constraintViolations = delegate.validate(target); + if (!constraintViolations.isEmpty()) { + throw new ConstraintViolationException(constraintViolations); + } + } + +} diff --git a/src/main/java/de/ozgcloud/admin/common/errorhandling/ExceptionController.java b/src/main/java/de/ozgcloud/admin/common/errorhandling/ExceptionController.java index a6865a9eb7ab2fd54530db26884df18769417f92..260cad4f96c6b4721ee129753af42fbe9c05a1ef 100644 --- a/src/main/java/de/ozgcloud/admin/common/errorhandling/ExceptionController.java +++ b/src/main/java/de/ozgcloud/admin/common/errorhandling/ExceptionController.java @@ -25,7 +25,6 @@ package de.ozgcloud.admin.common.errorhandling; import jakarta.validation.ConstraintViolationException; -import org.springframework.data.rest.core.RepositoryConstraintViolationException; import org.springframework.data.rest.webmvc.ResourceNotFoundException; import org.springframework.http.HttpStatus; import org.springframework.http.ProblemDetail; @@ -82,10 +81,4 @@ public class ExceptionController extends ResponseEntityExceptionHandler { public ProblemDetail handleConstraintViolationException(ConstraintViolationException e) { return problemDetailMapper.fromConstraintViolationException(e); } - - @ExceptionHandler - public ProblemDetail handleConstraintiolation(RepositoryConstraintViolationException e) { - return ProblemDetail.forStatus(HttpStatus.UNPROCESSABLE_ENTITY); - // TODO map fields to ProblemDetail - } } diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index eda944334cfe180495861f29ed07464d4164c552..0ff2d17a8b35216926b5e4f4732c8d30fba13146 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -24,6 +24,24 @@ logging: ROOT: WARN '[de.ozgcloud]': INFO +spring: + application: + name: OzgCloud_Administration + data: + mongodb: + authentication-database: admin + rest: + basePath: /api/configuration + cloud: + config: + server: + prefix: /configserver + security: + oauth2: + resourceserver: + jwt: + issuer-uri: ${ozgcloud.oauth2.auth-server-url}/realms/${ozgcloud.oauth2.realm} + management: server: port: 8081 @@ -55,23 +73,7 @@ mongock: - de.ozgcloud.admin.migration enabled: true -spring: - application: - name: OzgCloud_Administration - data: - mongodb: - authentication-database: admin - rest: - basePath: /api/configuration - cloud: - config: - server: - prefix: /configserver - security: - oauth2: - resourceserver: - jwt: - issuer-uri: ${ozgcloud.oauth2.auth-server-url}/realms/${ozgcloud.oauth2.realm} + ozgcloud: keycloak: diff --git a/src/test/java/de/ozgcloud/admin/reporting/ReportingSettingITCase.java b/src/test/java/de/ozgcloud/admin/reporting/ReportingSettingITCase.java index 076a7b93649a7786117d611e4474529e11074c83..1f0a50a1cdcfdaedd590a6407b1c72ecb66e7206 100644 --- a/src/test/java/de/ozgcloud/admin/reporting/ReportingSettingITCase.java +++ b/src/test/java/de/ozgcloud/admin/reporting/ReportingSettingITCase.java @@ -3,7 +3,6 @@ package de.ozgcloud.admin.reporting; import static org.assertj.core.api.Assertions.*; import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; -import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; import org.junit.jupiter.api.BeforeEach; @@ -40,7 +39,6 @@ class ReportingSettingITCase { void shouldHaveLinkToReporting() { mockMvc.perform(get("/api/configuration")) .andExpect(status().is2xxSuccessful()) - .andDo(print()) .andExpect(jsonPath("$._links.aggregationMappings").exists()); }