diff --git a/pom.xml b/pom.xml index ab0c61bc2235c34a98e99f0d29eb3183d4774fee..aeaac44692b56cda777a843885651a86dddccb0c 100644 --- a/pom.xml +++ b/pom.xml @@ -49,7 +49,6 @@ <jaxb-maven-plugin.version>3.0.1</jaxb-maven-plugin.version> <ozg-info-manager-interface.version>0.10.0-22.8503e49-20240124.071709-1</ozg-info-manager-interface.version> <bayernid-proxy-interface.version>0.1.0</bayernid-proxy-interface.version> - <opensaml.version>4.3.0</opensaml.version> </properties> <repositories> @@ -159,28 +158,12 @@ <artifactId>mapstruct</artifactId> </dependency> - <!-- open saml2 --> - <dependency> - <groupId>org.opensaml</groupId> - <artifactId>opensaml-core</artifactId> - <version>${opensaml.version}</version> - </dependency> - <dependency> - <groupId>org.opensaml</groupId> - <artifactId>opensaml-saml-api</artifactId> - <version>${opensaml.version}</version> - </dependency> - <dependency> - <groupId>org.opensaml</groupId> - <artifactId>opensaml-saml-impl</artifactId> - <version>${opensaml.version}</version> - </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-saml2-service-provider</artifactId> </dependency> - <!-- grpc --> + <dependency> <groupId>net.devh</groupId> <artifactId>grpc-server-spring-boot-starter</artifactId> diff --git a/src/main/java/de/ozgcloud/nachrichten/antragraum/AntragraumGrpcService.java b/src/main/java/de/ozgcloud/nachrichten/antragraum/AntragraumGrpcService.java index d067974d56c50c393d29312363b7db36e882d164..6977a57499fc8ab21257ee7ffa79ab19f62daf38 100644 --- a/src/main/java/de/ozgcloud/nachrichten/antragraum/AntragraumGrpcService.java +++ b/src/main/java/de/ozgcloud/nachrichten/antragraum/AntragraumGrpcService.java @@ -35,7 +35,7 @@ import net.devh.boot.grpc.server.service.GrpcService; @GrpcService @RequiredArgsConstructor @ConditionalOnProperty(AntragraumProperties.PROPERTY_ANTRAGSRAUM_URL) -public class AntragraumGrpcService extends AntragraumServiceGrpc.AntragraumServiceImplBase { +class AntragraumGrpcService extends AntragraumServiceGrpc.AntragraumServiceImplBase { private final AntragraumService antragraumService; private final AntragraumNachrichtMapper mapper; diff --git a/src/main/java/de/ozgcloud/nachrichten/antragraum/AntragraumNachrichtMapper.java b/src/main/java/de/ozgcloud/nachrichten/antragraum/AntragraumNachrichtMapper.java index 81b3d5489edb78f083c3ca7a77c3eb151fff0a17..136b02ff864ec238cd4db5068f2ec40b4ccecc6f 100644 --- a/src/main/java/de/ozgcloud/nachrichten/antragraum/AntragraumNachrichtMapper.java +++ b/src/main/java/de/ozgcloud/nachrichten/antragraum/AntragraumNachrichtMapper.java @@ -24,39 +24,21 @@ package de.ozgcloud.nachrichten.antragraum; -import java.time.format.DateTimeFormatter; -import java.util.Collections; -import java.util.Map; - -import org.apache.commons.collections.MapUtils; +import org.mapstruct.CollectionMappingStrategy; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.NullValueCheckStrategy; import de.ozgcloud.nachrichten.postfach.PostfachNachricht; -@Mapper +@Mapper(collectionMappingStrategy = CollectionMappingStrategy.ADDER_PREFERRED, nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS) interface AntragraumNachrichtMapper { String DEFAULT_STATUS = "NEU"; - default GrpcRueckfrage toGrpc(PostfachNachricht postfachNachricht) { - return GrpcRueckfrage.newBuilder() - .setId(postfachNachricht.getId()) - .setText(postfachNachricht.getMailBody()) - .setSendAt(postfachNachricht.getSentAt().format(DateTimeFormatter.ISO_LOCAL_DATE_TIME)) - .setVorgangName(postfachNachricht.getSubject()) - .setVorgangId(postfachNachricht.getVorgangId()) - .setStatus(DEFAULT_STATUS) - .addAllAttachmentFileId(postfachNachricht.getAttachments()) - .build(); - } - - @SuppressWarnings("unchecked") - default GrpcRueckfrage toGrpc(Map<String, Object> itemMap) { - var rueckfrageBuilder = GrpcRueckfrage.newBuilder() - .setId(MapUtils.getString(itemMap, PostfachNachricht.FIELD_ID)) - .setVorgangId(MapUtils.getString(itemMap, PostfachNachricht.FIELD_VORGANG_ID)) - .setVorgangName(MapUtils.getString(itemMap, PostfachNachricht.FIELD_SUBJECT)) - .addAllAttachmentFileId((Iterable<String>) itemMap.getOrDefault(PostfachNachricht.FIELD_ATTACHMENTS, Collections.emptyList())); - - return rueckfrageBuilder.build(); - } + @Mapping(source = "sentAt", target = "sentAt", dateFormat = "yyyy-MM-dd'T'HH:mm:ss") + @Mapping(source = "mailBody", target = "text") + @Mapping(source = "subject", target = "vorgangName") + @Mapping(source = "attachments", target = "attachmentFileIdList") + @Mapping(target = "status", constant = DEFAULT_STATUS) + GrpcRueckfrage toGrpc(PostfachNachricht postfachNachricht); } diff --git a/src/main/java/de/ozgcloud/nachrichten/antragraum/BayernIdSamlConfiguration.java b/src/main/java/de/ozgcloud/nachrichten/antragraum/BayernIdSamlConfiguration.java index e258ddacb673c91f9724d73d8b7fd9ae9089ce46..0961155476fed54722e9572435b34c5225e67e80 100644 --- a/src/main/java/de/ozgcloud/nachrichten/antragraum/BayernIdSamlConfiguration.java +++ b/src/main/java/de/ozgcloud/nachrichten/antragraum/BayernIdSamlConfiguration.java @@ -81,7 +81,7 @@ import net.shibboleth.utilities.java.support.xml.XMLParserException; @Configuration @ConditionalOnProperty(AntragraumProperties.PROPERTY_ANTRAGSRAUM_URL) -public class BayernIdSamlConfiguration { +class BayernIdSamlConfiguration { private XMLObjectProviderRegistry registry; @Getter private ParserPool parserPool; @@ -104,13 +104,6 @@ public class BayernIdSamlConfiguration { private ParserPool initParserPool() throws ComponentInitializationException { var localParserPool = new BasicParserPool(); - localParserPool.setMaxPoolSize(100); - localParserPool.setCoalescing(true); - localParserPool.setIgnoreComments(true); - localParserPool.setIgnoreElementContentWhitespace(true); - localParserPool.setNamespaceAware(true); - localParserPool.setExpandEntityReferences(false); - localParserPool.setXincludeAware(false); final var features = createFeatureMap(); diff --git a/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumNachrichtMapperTest.java b/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumNachrichtMapperTest.java index 662034f677347ff99db12406bd7e9500d201c456..d07db58ecf7c183b3afef36cdcf27d8d7e7cbded 100644 --- a/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumNachrichtMapperTest.java +++ b/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumNachrichtMapperTest.java @@ -63,10 +63,10 @@ class AntragraumNachrichtMapperTest { } @Test - void shouldMapSendAt() { + void shouldMapSentAt() { var result = map(); - assertThat(result.getSendAt()).isEqualTo(PostfachNachrichtTestFactory.SENT_AT.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME)); + assertThat(result.getSentAt()).isEqualTo(PostfachNachrichtTestFactory.SENT_AT.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME)); } @Test diff --git a/src/test/java/de/ozgcloud/nachrichten/antragraum/Saml2DecrypterTest.java b/src/test/java/de/ozgcloud/nachrichten/antragraum/Saml2DecrypterTest.java index 6e688c6f8976b620e481a14df8ec0ce210e06681..1dd94cea3e8ef54e5b7d62ac936921ed583d748b 100644 --- a/src/test/java/de/ozgcloud/nachrichten/antragraum/Saml2DecrypterTest.java +++ b/src/test/java/de/ozgcloud/nachrichten/antragraum/Saml2DecrypterTest.java @@ -24,6 +24,7 @@ import static org.assertj.core.api.Assertions.*; import static org.mockito.Mockito.*; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.mockito.Mock; import org.opensaml.saml.saml2.core.Attribute; @@ -34,6 +35,7 @@ import org.springframework.test.util.ReflectionTestUtils; import de.ozgcloud.common.test.TestUtils; +@Disabled("Passende certificat und key file muessen local vorhanden sein") class Saml2DecrypterTest { private Response samlResponse; diff --git a/src/test/resources/bayernid-test-enc.crt b/src/test/resources/bayernid-test-enc.crt deleted file mode 100644 index fe04bc8d5ad148f0e84ca1c98160c111f3aeba5d..0000000000000000000000000000000000000000 --- a/src/test/resources/bayernid-test-enc.crt +++ /dev/null @@ -1,22 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDsTCCApmgAwIBAgIUdw/27be5+2vj+MhGtoJjDsMsdDEwDQYJKoZIhvcNAQEL -BQAwaDELMAkGA1UEBhMCREUxDzANBgNVBAgMBkJheWVybjERMA8GA1UEBwwITXVl -bmNoZW4xDzANBgNVBAoMBm1nbSB0cDEkMCIGCSqGSIb3DQEJARYVamVucy5yZWVz -ZUBtZ20tdHAuY29tMB4XDTI0MDExNjEyMjI0OVoXDTI1MDExNTEyMjI0OVowaDEL -MAkGA1UEBhMCREUxDzANBgNVBAgMBkJheWVybjERMA8GA1UEBwwITXVlbmNoZW4x -DzANBgNVBAoMBm1nbSB0cDEkMCIGCSqGSIb3DQEJARYVamVucy5yZWVzZUBtZ20t -dHAuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/HBBWBDSrEgd -wXkSy15V00EaVTyLgc4vh/JcDiGIYZSqmcMwBd+B1u36xbdBf/duEtCUymMNP48O -MjgFZtR6xn0meuR4NR6Ykn9mYGdU/GhldGuGv9XLAEAkVuTlo0H1QYyBS/6JwKQo -SsHDkJ3YwDwKcyOt7QtpSadRZjQEN3gDvWoRYjgXTxj2I1ovllmi0zOHsFi5PBIu -iPWUdJvBrHxpD/XVS9R/qzJpHPu3bjQ6UVRmhiZCUF7H5F/PQNwk+qXvjV0ooBeS -WWO5hywhk4OP4QEgbYMOSo20YukYX8TJEsum1pwIcQrw7kW4GyKaAycyRsa1fbM3 -tEkj+TiBKwIDAQABo1MwUTAdBgNVHQ4EFgQUfDL/6R33SJodsONCvxKy96AtU18w -HwYDVR0jBBgwFoAUfDL/6R33SJodsONCvxKy96AtU18wDwYDVR0TAQH/BAUwAwEB -/zANBgkqhkiG9w0BAQsFAAOCAQEA+PCnvSwKU+bArTCIg5lfrwONbzKkjvPUymDN -YX3oj1wVEN75hNf0RD7Rr0//ZYT3Rt0G193gjDcH1gbGIYhMLeGGkxEous2l3O+p -RIQRR+hprjr6HzF8IphaJy1RbDwyGsXyLcyOylPL4cX9IjUdhklHiLZusBq95LSy -w7hsCOAL2+vn816O7yv+28EWXXbnP2XEUjW36nxcZvR6oTJUplXyHRuuJJTsOxGR -NuXA3UVgNbkdm1HnoSGpnsGdUKsUFoEmEJkcSdQRwxeH21WzYGOZmKMcvx2gObaS -P8tafWh5z4Jx+Z7z5WP72Jt44/lnVjaV8aGo0KHXwgqQOtYftQ== ------END CERTIFICATE----- diff --git a/src/test/resources/bayernid-test-enc.key b/src/test/resources/bayernid-test-enc.key deleted file mode 100644 index 8d1c8b69c3fce7bea45c73efd06983e3c419a92f..0000000000000000000000000000000000000000 --- a/src/test/resources/bayernid-test-enc.key +++ /dev/null @@ -1 +0,0 @@ -