diff --git a/src/main/java/de/ozgcloud/nachrichten/antragsraum/AntragsraumGrpcService.java b/src/main/java/de/ozgcloud/nachrichten/antragraum/AntragsraumGrpcService.java similarity index 98% rename from src/main/java/de/ozgcloud/nachrichten/antragsraum/AntragsraumGrpcService.java rename to src/main/java/de/ozgcloud/nachrichten/antragraum/AntragsraumGrpcService.java index e07d5fc75492ba41cc2d3278aa3c975d275b39a2..bc623a5bf19d2ae31eadda56dfd43e7c751f2fe7 100644 --- a/src/main/java/de/ozgcloud/nachrichten/antragsraum/AntragsraumGrpcService.java +++ b/src/main/java/de/ozgcloud/nachrichten/antragraum/AntragsraumGrpcService.java @@ -18,7 +18,7 @@ * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.ozgcloud.nachrichten.antragsraum; +package de.ozgcloud.nachrichten.antragraum; import de.ozgcloud.nachrichten.postfach.PersistPostfachNachrichtService; import de.ozgcloud.nachrichten.postfach.antragraum.*; diff --git a/src/main/java/de/ozgcloud/nachrichten/antragsraum/BayernIdSamlConfiguration.java b/src/main/java/de/ozgcloud/nachrichten/antragraum/BayernIdSamlConfiguration.java similarity index 85% rename from src/main/java/de/ozgcloud/nachrichten/antragsraum/BayernIdSamlConfiguration.java rename to src/main/java/de/ozgcloud/nachrichten/antragraum/BayernIdSamlConfiguration.java index 429b962d387a9d4671d3e403dc394e215db4a799..db27510dcee7d9c24325edca059dbc9ead771e03 100644 --- a/src/main/java/de/ozgcloud/nachrichten/antragsraum/BayernIdSamlConfiguration.java +++ b/src/main/java/de/ozgcloud/nachrichten/antragraum/BayernIdSamlConfiguration.java @@ -18,14 +18,12 @@ * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.ozgcloud.nachrichten.antragsraum; +package de.ozgcloud.nachrichten.antragraum; import jakarta.annotation.PostConstruct; import lombok.extern.log4j.Log4j2; import net.shibboleth.utilities.java.support.component.ComponentInitializationException; import net.shibboleth.utilities.java.support.resolver.CriteriaSet; -import net.shibboleth.utilities.java.support.xml.BasicParserPool; -import net.shibboleth.utilities.java.support.xml.ParserPool; import net.shibboleth.utilities.java.support.xml.XMLParserException; import org.opensaml.core.config.ConfigurationService; import org.opensaml.core.config.InitializationService; @@ -71,6 +69,8 @@ import java.security.cert.X509Certificate; import java.security.interfaces.RSAPrivateKey; import java.util.*; +import static de.ozgcloud.nachrichten.antragraum.Saml2Parser.*; + @Configuration @Log4j2 public class BayernIdSamlConfiguration { @@ -104,42 +104,7 @@ public class BayernIdSamlConfiguration { @Bean Saml2Parser parser() { - try { - return new Saml2Parser(getParserPool()); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - static ParserPool getParserPool() throws ComponentInitializationException { - BasicParserPool parserPool = new BasicParserPool(); - parserPool.setMaxPoolSize(100); - parserPool.setCoalescing(true); - parserPool.setIgnoreComments(true); - parserPool.setIgnoreElementContentWhitespace(true); - parserPool.setNamespaceAware(true); - parserPool.setExpandEntityReferences(false); - parserPool.setXincludeAware(false); - - final Map<String, Boolean> features = createFeatureMap(); - - parserPool.setBuilderFeatures(features); - - parserPool.setBuilderAttributes(new HashMap<>()); - - parserPool.initialize(); - - return parserPool; - } - - private static Map<String, Boolean> createFeatureMap() { - final Map<String, Boolean> features = new HashMap<>(); - features.put("http://xml.org/sax/features/external-general-entities", Boolean.FALSE); - features.put("http://xml.org/sax/features/external-parameter-entities", Boolean.FALSE); - features.put("http://apache.org/xml/features/disallow-doctype-decl", Boolean.TRUE); - features.put("http://apache.org/xml/features/validation/schema/normalized-value", Boolean.FALSE); - features.put("http://javax.xml.XMLConstants/feature/secure-processing", Boolean.TRUE); - return features; + return new Saml2Parser(); } @Bean diff --git a/src/main/java/de/ozgcloud/nachrichten/antragsraum/NachrichtMapper.java b/src/main/java/de/ozgcloud/nachrichten/antragraum/NachrichtMapper.java similarity index 98% rename from src/main/java/de/ozgcloud/nachrichten/antragsraum/NachrichtMapper.java rename to src/main/java/de/ozgcloud/nachrichten/antragraum/NachrichtMapper.java index c7411a3898ce03c3679f00ce2dafea8800520e51..f704b435ee7a72fc5200b9c842071cf87b91873f 100644 --- a/src/main/java/de/ozgcloud/nachrichten/antragsraum/NachrichtMapper.java +++ b/src/main/java/de/ozgcloud/nachrichten/antragraum/NachrichtMapper.java @@ -18,7 +18,7 @@ * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.ozgcloud.nachrichten.antragsraum; +package de.ozgcloud.nachrichten.antragraum; import de.ozgcloud.nachrichten.postfach.PostfachNachricht; import de.ozgcloud.nachrichten.postfach.antragraum.GrpcRueckfrage; diff --git a/src/main/java/de/ozgcloud/nachrichten/antragsraum/Saml2Decrypter.java b/src/main/java/de/ozgcloud/nachrichten/antragraum/Saml2Decrypter.java similarity index 94% rename from src/main/java/de/ozgcloud/nachrichten/antragsraum/Saml2Decrypter.java rename to src/main/java/de/ozgcloud/nachrichten/antragraum/Saml2Decrypter.java index 4b96afe825179720ddbac9415ff38c5c89d52721..62e6b589c6c99e5262cb92a8c57c415b07d5b4d2 100644 --- a/src/main/java/de/ozgcloud/nachrichten/antragsraum/Saml2Decrypter.java +++ b/src/main/java/de/ozgcloud/nachrichten/antragraum/Saml2Decrypter.java @@ -18,7 +18,7 @@ * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.ozgcloud.nachrichten.antragsraum; +package de.ozgcloud.nachrichten.antragraum; import org.opensaml.core.xml.XMLObject; import org.opensaml.core.xml.schema.XSString; @@ -45,6 +45,7 @@ import java.util.Collection; import java.util.List; class Saml2Decrypter { + public static final String LEGACY_POSTKORB_HANDLE_KEY = "legacyPostkorbHandle"; private final Decrypter decrypter; private static final EncryptedKeyResolver encryptedKeyResolver = new ChainingEncryptedKeyResolver( Arrays.asList(new InlineEncryptedKeyResolver(), new EncryptedElementTypeEncryptedKeyResolver(), @@ -80,7 +81,7 @@ class Saml2Decrypter { var samlAssertion = response.getAssertions().get(0); var statements = (AttributeStatement) samlAssertion.getStatements().get(1); var attributes = statements.getAttributes(); - var postfachIdOptional = attributes.stream().filter(attribute -> "legacyPostkorbHandle".equals(attribute.getFriendlyName())).findFirst(); + var postfachIdOptional = attributes.stream().filter(attribute -> LEGACY_POSTKORB_HANDLE_KEY.equals(attribute.getFriendlyName())).findFirst(); return postfachIdOptional.map(postfachIdAttribute -> { List<XMLObject> values = postfachIdAttribute.getAttributeValues(); diff --git a/src/main/java/de/ozgcloud/nachrichten/antragraum/Saml2Parser.java b/src/main/java/de/ozgcloud/nachrichten/antragraum/Saml2Parser.java new file mode 100644 index 0000000000000000000000000000000000000000..21ebf47040a4f247cf733668b40a1377cf02db06 --- /dev/null +++ b/src/main/java/de/ozgcloud/nachrichten/antragraum/Saml2Parser.java @@ -0,0 +1,103 @@ +/* + * Copyright (c) 2024. + * Lizenziert unter der EUPL, Version 1.2 oder - sobald + * diese von der Europäischen Kommission genehmigt wurden - + * Folgeversionen der EUPL ("Lizenz"); + * Sie dürfen dieses Werk ausschließlich gemäß + * dieser Lizenz nutzen. + * Eine Kopie der Lizenz finden Sie hier: + * + * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * Sofern nicht durch anwendbare Rechtsvorschriften + * gefordert oder in schriftlicher Form vereinbart, wird + * die unter der Lizenz verbreitete Software "so wie sie + * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - + * ausdrücklich oder stillschweigend - verbreitet. + * Die sprachspezifischen Genehmigungen und Beschränkungen + * unter der Lizenz sind dem Lizenztext zu entnehmen. + */ + +package de.ozgcloud.nachrichten.antragraum; + +import net.shibboleth.utilities.java.support.component.ComponentInitializationException; +import net.shibboleth.utilities.java.support.xml.BasicParserPool; +import net.shibboleth.utilities.java.support.xml.ParserPool; +import net.shibboleth.utilities.java.support.xml.XMLParserException; +import org.opensaml.core.xml.XMLObject; +import org.opensaml.core.xml.config.XMLObjectProviderRegistrySupport; +import org.opensaml.core.xml.io.UnmarshallingException; +import org.opensaml.saml.saml2.core.Response; +import org.opensaml.saml.saml2.core.impl.ResponseUnmarshaller; +import org.springframework.security.saml2.Saml2Exception; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.nio.charset.StandardCharsets; +import java.util.HashMap; +import java.util.Map; + +class Saml2Parser { + private ParserPool parserPool; + private ResponseUnmarshaller unmarshaller; + + Saml2Parser() { + init(); + } + + void init() { + try { + this.parserPool = getParserPool(); + unmarshaller = (ResponseUnmarshaller) XMLObjectProviderRegistrySupport.getUnmarshallerFactory().getUnmarshaller(Response.DEFAULT_ELEMENT_NAME); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + static ParserPool getParserPool() throws ComponentInitializationException { + BasicParserPool parserPool = new BasicParserPool(); + parserPool.setMaxPoolSize(100); + parserPool.setCoalescing(true); + parserPool.setIgnoreComments(true); + parserPool.setIgnoreElementContentWhitespace(true); + parserPool.setNamespaceAware(true); + parserPool.setExpandEntityReferences(false); + parserPool.setXincludeAware(false); + + final Map<String, Boolean> features = createFeatureMap(); + + parserPool.setBuilderFeatures(features); + + parserPool.setBuilderAttributes(new HashMap<>()); + + parserPool.initialize(); + + return parserPool; + } + + private static Map<String, Boolean> createFeatureMap() { + final Map<String, Boolean> features = new HashMap<>(); + features.put("http://xml.org/sax/features/external-general-entities", Boolean.FALSE); + features.put("http://xml.org/sax/features/external-parameter-entities", Boolean.FALSE); + features.put("http://apache.org/xml/features/disallow-doctype-decl", Boolean.TRUE); + features.put("http://apache.org/xml/features/validation/schema/normalized-value", Boolean.FALSE); + features.put("http://javax.xml.XMLConstants/feature/secure-processing", Boolean.TRUE); + return features; + } + + Response parse(String request) { + return (Response) xmlObject(new ByteArrayInputStream(request.getBytes(StandardCharsets.UTF_8))); + } + + XMLObject xmlObject(InputStream inputStream) throws Saml2Exception { + try { + Document document = parserPool.parse(inputStream); + Element element = document.getDocumentElement(); + return unmarshaller.unmarshall(element); + } catch (XMLParserException | UnmarshallingException e) { + throw new Saml2Exception("Failed to deserialize LogoutRequest", e); + } + } +} diff --git a/src/main/java/de/ozgcloud/nachrichten/antragsraum/Saml2Verifier.java b/src/main/java/de/ozgcloud/nachrichten/antragraum/Saml2Verifier.java similarity index 98% rename from src/main/java/de/ozgcloud/nachrichten/antragsraum/Saml2Verifier.java rename to src/main/java/de/ozgcloud/nachrichten/antragraum/Saml2Verifier.java index 5ec95ae2580be0107ed1abb4fc71dc35dabb7a6b..4377d65c97a3489bfe46c039842455c7a7d3493e 100644 --- a/src/main/java/de/ozgcloud/nachrichten/antragsraum/Saml2Verifier.java +++ b/src/main/java/de/ozgcloud/nachrichten/antragraum/Saml2Verifier.java @@ -18,7 +18,7 @@ * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.ozgcloud.nachrichten.antragsraum; +package de.ozgcloud.nachrichten.antragraum; import lombok.RequiredArgsConstructor; import lombok.extern.log4j.Log4j2; @@ -42,7 +42,6 @@ class Saml2Verifier { private final SignatureTrustEngine trustEngine; private final CriteriaSet verificationCriteria; - List<Saml2Error> verify(String samlToken) { var response = parser.parse(samlToken); diff --git a/src/main/java/de/ozgcloud/nachrichten/antragsraum/Saml2Parser.java b/src/main/java/de/ozgcloud/nachrichten/antragsraum/Saml2Parser.java deleted file mode 100644 index 872ebf753a2d34a74de1f95edeb93f4f53bfe755..0000000000000000000000000000000000000000 --- a/src/main/java/de/ozgcloud/nachrichten/antragsraum/Saml2Parser.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) 2024. - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ - -package de.ozgcloud.nachrichten.antragsraum; - -import net.shibboleth.utilities.java.support.xml.ParserPool; -import org.opensaml.core.xml.config.XMLObjectProviderRegistrySupport; -import org.opensaml.saml.saml2.core.Response; -import org.opensaml.saml.saml2.core.impl.ResponseUnmarshaller; -import org.springframework.security.saml2.Saml2Exception; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - -import java.io.ByteArrayInputStream; -import java.nio.charset.StandardCharsets; - -class Saml2Parser { - private final ParserPool parserPool; - private ResponseUnmarshaller unmarshaller; - - Saml2Parser(ParserPool parserPool) { - this.parserPool = parserPool; - init(); - } - - void init() { - try { - unmarshaller = (ResponseUnmarshaller) XMLObjectProviderRegistrySupport.getUnmarshallerFactory().getUnmarshaller(Response.DEFAULT_ELEMENT_NAME); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - Response parse(String request) throws Saml2Exception { - try { - Document document = parserPool.parse(new ByteArrayInputStream(request.getBytes(StandardCharsets.UTF_8))); - Element element = document.getDocumentElement(); - return (Response) unmarshaller.unmarshall(element); - } catch (Exception e) { - throw new Saml2Exception("Failed to deserialize LogoutRequest", e); - } - } -} diff --git a/src/test/java/de/ozgcloud/nachrichten/antragsraum/AntragsraumGrpcServiceTest.java b/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragsraumGrpcServiceTest.java similarity index 98% rename from src/test/java/de/ozgcloud/nachrichten/antragsraum/AntragsraumGrpcServiceTest.java rename to src/test/java/de/ozgcloud/nachrichten/antragraum/AntragsraumGrpcServiceTest.java index e9d257fff49c2cdb0f5bcd21edf27cbd8020ce9b..102210262a05e361882cf135d2705f1d1195aa35 100644 --- a/src/test/java/de/ozgcloud/nachrichten/antragsraum/AntragsraumGrpcServiceTest.java +++ b/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragsraumGrpcServiceTest.java @@ -18,7 +18,7 @@ * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.ozgcloud.nachrichten.antragsraum; +package de.ozgcloud.nachrichten.antragraum; import de.ozgcloud.nachrichten.postfach.PersistPostfachNachrichtService; import de.ozgcloud.nachrichten.postfach.PostfachNachricht; diff --git a/src/test/java/de/ozgcloud/nachrichten/antragsraum/BayernIdSamlConfigurationITCase.java b/src/test/java/de/ozgcloud/nachrichten/antragraum/BayernIdSamlConfigurationITCase.java similarity index 97% rename from src/test/java/de/ozgcloud/nachrichten/antragsraum/BayernIdSamlConfigurationITCase.java rename to src/test/java/de/ozgcloud/nachrichten/antragraum/BayernIdSamlConfigurationITCase.java index f2ab9263006f84fd72767dad5f8ce4e59cf4be3d..711012919215c4d0e0e634b7a52e0614f5c0b339 100644 --- a/src/test/java/de/ozgcloud/nachrichten/antragsraum/BayernIdSamlConfigurationITCase.java +++ b/src/test/java/de/ozgcloud/nachrichten/antragraum/BayernIdSamlConfigurationITCase.java @@ -18,7 +18,7 @@ * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.ozgcloud.nachrichten.antragsraum; +package de.ozgcloud.nachrichten.antragraum; import de.ozgcloud.common.test.ITCase; import org.junit.jupiter.api.Test; diff --git a/src/test/java/de/ozgcloud/nachrichten/antragsraum/GrpcFindRueckfrageRequestTestFactory.java b/src/test/java/de/ozgcloud/nachrichten/antragraum/GrpcFindRueckfrageRequestTestFactory.java similarity index 96% rename from src/test/java/de/ozgcloud/nachrichten/antragsraum/GrpcFindRueckfrageRequestTestFactory.java rename to src/test/java/de/ozgcloud/nachrichten/antragraum/GrpcFindRueckfrageRequestTestFactory.java index 3e60f8a6769c653725d220ca05af6d1b4999c367..1238f4f67ae1dc16816dacd6132547b7c5c06b6a 100644 --- a/src/test/java/de/ozgcloud/nachrichten/antragsraum/GrpcFindRueckfrageRequestTestFactory.java +++ b/src/test/java/de/ozgcloud/nachrichten/antragraum/GrpcFindRueckfrageRequestTestFactory.java @@ -18,7 +18,7 @@ * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.ozgcloud.nachrichten.antragsraum; +package de.ozgcloud.nachrichten.antragraum; import de.ozgcloud.common.test.TestUtils; import de.ozgcloud.nachrichten.postfach.antragraum.GrpcFindRueckfragenRequest; diff --git a/src/test/java/de/ozgcloud/nachrichten/antragsraum/NachrichtMapperTest.java b/src/test/java/de/ozgcloud/nachrichten/antragraum/NachrichtMapperTest.java similarity index 98% rename from src/test/java/de/ozgcloud/nachrichten/antragsraum/NachrichtMapperTest.java rename to src/test/java/de/ozgcloud/nachrichten/antragraum/NachrichtMapperTest.java index bd8f93a8ec4d8bbc55a77f1fd05c165de5747237..d90fa112cb9a6becc76b52c8ba59d428caec3fa5 100644 --- a/src/test/java/de/ozgcloud/nachrichten/antragsraum/NachrichtMapperTest.java +++ b/src/test/java/de/ozgcloud/nachrichten/antragraum/NachrichtMapperTest.java @@ -18,7 +18,7 @@ * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.ozgcloud.nachrichten.antragsraum; +package de.ozgcloud.nachrichten.antragraum; import de.ozgcloud.nachrichten.postfach.PostfachNachrichtTestFactory; import de.ozgcloud.nachrichten.postfach.antragraum.GrpcRueckfrage; diff --git a/src/test/java/de/ozgcloud/nachrichten/antragsraum/Saml2DecrypterITCase.java b/src/test/java/de/ozgcloud/nachrichten/antragraum/Saml2DecrypterITCase.java similarity index 98% rename from src/test/java/de/ozgcloud/nachrichten/antragsraum/Saml2DecrypterITCase.java rename to src/test/java/de/ozgcloud/nachrichten/antragraum/Saml2DecrypterITCase.java index b6a66c491c69c97d010117b7d994fbf5bea9d59b..bd4861d04d28a886938bbdd15cd0d2001ffedaba 100644 --- a/src/test/java/de/ozgcloud/nachrichten/antragsraum/Saml2DecrypterITCase.java +++ b/src/test/java/de/ozgcloud/nachrichten/antragraum/Saml2DecrypterITCase.java @@ -18,7 +18,7 @@ * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.ozgcloud.nachrichten.antragsraum; +package de.ozgcloud.nachrichten.antragraum; import de.ozgcloud.common.test.ITCase; import de.ozgcloud.common.test.TestUtils; diff --git a/src/test/java/de/ozgcloud/nachrichten/antragsraum/Saml2ParserTest.java b/src/test/java/de/ozgcloud/nachrichten/antragraum/Saml2ParserTest.java similarity index 74% rename from src/test/java/de/ozgcloud/nachrichten/antragsraum/Saml2ParserTest.java rename to src/test/java/de/ozgcloud/nachrichten/antragraum/Saml2ParserTest.java index 4b2240c3b4cc1d09b52dd25de8a0c1cf9e31ec39..bd64e2a3c9763c170bf06da60af712ba19c79057 100644 --- a/src/test/java/de/ozgcloud/nachrichten/antragsraum/Saml2ParserTest.java +++ b/src/test/java/de/ozgcloud/nachrichten/antragraum/Saml2ParserTest.java @@ -18,18 +18,26 @@ * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.ozgcloud.nachrichten.antragsraum; +package de.ozgcloud.nachrichten.antragraum; import de.ozgcloud.common.test.TestUtils; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.opensaml.saml.saml2.core.Response; +import java.io.InputStream; + import static org.assertj.core.api.Assertions.*; class Saml2ParserTest { + @BeforeEach + void setup() { + new BayernIdSamlConfiguration().initOpenSAML(); + } + @Test - void shouldInit() throws Exception { - Saml2Parser parser = new Saml2Parser(BayernIdSamlConfiguration.getParserPool()); + void shouldInit() { + Saml2Parser parser = new Saml2Parser(); assertThat(parser).isNotNull(); } @@ -57,9 +65,18 @@ class Saml2ParserTest { assertThat(response.getIssuer().getValue()).isEqualTo("https://infra-pre-id.bayernportal.de/idp"); } + @Test + void shouldGetXMLObject() throws Exception { + Saml2Parser parser = new Saml2Parser(); + + try (InputStream tokenStream = TestUtils.loadFile("SamlResponse.xml")) { + assertThat(parser.xmlObject(tokenStream)).isNotNull(); + } + } + private static Response getResponse() throws Exception { var token = TestUtils.loadTextFile("SamlResponse.xml"); - Saml2Parser parser = new Saml2Parser(BayernIdSamlConfiguration.getParserPool()); + Saml2Parser parser = new Saml2Parser(); //BayernIdSamlConfiguration.getParserPool() return parser.parse(token); } diff --git a/src/test/java/de/ozgcloud/nachrichten/antragsraum/Saml2VerifierITCase.java b/src/test/java/de/ozgcloud/nachrichten/antragraum/Saml2VerifierITCase.java similarity index 97% rename from src/test/java/de/ozgcloud/nachrichten/antragsraum/Saml2VerifierITCase.java rename to src/test/java/de/ozgcloud/nachrichten/antragraum/Saml2VerifierITCase.java index cccbd0ff647eec7ee88ec0e462af5b1199428bb6..f342a89b65c72aa3269c4c09d65e32cb931c4f27 100644 --- a/src/test/java/de/ozgcloud/nachrichten/antragsraum/Saml2VerifierITCase.java +++ b/src/test/java/de/ozgcloud/nachrichten/antragraum/Saml2VerifierITCase.java @@ -18,7 +18,7 @@ * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.ozgcloud.nachrichten.antragsraum; +package de.ozgcloud.nachrichten.antragraum; import de.ozgcloud.common.test.ITCase; import de.ozgcloud.common.test.TestUtils;