diff --git a/saml2/saml2-service-provider/src/main/java/org/springframework/security/saml2/provider/service/registration/RelyingPartyRegistrations.java b/saml2/saml2-service-provider/src/main/java/org/springframework/security/saml2/provider/service/registration/RelyingPartyRegistrations.java index e765a73259..d80c0fe0a2 100644 --- a/saml2/saml2-service-provider/src/main/java/org/springframework/security/saml2/provider/service/registration/RelyingPartyRegistrations.java +++ b/saml2/saml2-service-provider/src/main/java/org/springframework/security/saml2/provider/service/registration/RelyingPartyRegistrations.java @@ -57,7 +57,6 @@ public final class RelyingPartyRegistrations { * applications will also need to provide a registrationId, like so: * *
-	 *  String metadataLocation = "file:C:\\saml\\metadata.xml"
 	 *	RelyingPartyRegistration registration = RelyingPartyRegistrations
 	 * 		.fromMetadataLocation(metadataLocation)
 	 * 		.registrationId("registration-id")
diff --git a/saml2/saml2-service-provider/src/test/java/org/springframework/security/saml2/provider/service/registration/RelyingPartyRegistrationsTests.java b/saml2/saml2-service-provider/src/test/java/org/springframework/security/saml2/provider/service/registration/RelyingPartyRegistrationsTests.java
index 5adb99a224..8a070f941e 100644
--- a/saml2/saml2-service-provider/src/test/java/org/springframework/security/saml2/provider/service/registration/RelyingPartyRegistrationsTests.java
+++ b/saml2/saml2-service-provider/src/test/java/org/springframework/security/saml2/provider/service/registration/RelyingPartyRegistrationsTests.java
@@ -16,12 +16,17 @@
 
 package org.springframework.security.saml2.provider.service.registration;
 
+import java.io.BufferedReader;
 import java.io.File;
+import java.io.InputStreamReader;
+import java.util.stream.Collectors;
 
 import okhttp3.mockwebserver.MockResponse;
 import okhttp3.mockwebserver.MockWebServer;
+import org.junit.Before;
 import org.junit.Test;
 
+import org.springframework.core.io.ClassPathResource;
 import org.springframework.security.saml2.Saml2Exception;
 
 import static org.assertj.core.api.Assertions.assertThat;
@@ -32,64 +37,20 @@ import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
  */
 public class RelyingPartyRegistrationsTests {
 
-	private static final String IDP_SSO_DESCRIPTOR_PAYLOAD = "\n" + "    \n"
-			+ "   \n"
-			+ "      \n" + "         example.com\n"
-			+ "  \n" + "         \n" + "            \n"
-			+ "               Consortium GARR IdP\n" + "            \n"
-			+ "            \n" + "               Consortium GARR IdP\n"
-			+ "            \n" + "    \n" + "            \n"
-			+ "               This Identity Provider gives support for the Consortium GARR's user community\n"
-			+ "            \n" + "            \n"
-			+ "               Questo Identity Provider di test fornisce supporto alla comunita' utenti GARR\n"
-			+ "            \n" + "         \n" + "      \n" + "    \n"
-			+ "      \n" + "         \n" + "            \n"
-			+ "               \n"
-			+ "                  MIIDZjCCAk6gAwIBAgIVAL9O+PA7SXtlwZZY8MVSE9On1cVWMA0GCSqGSIb3DQEB\n"
-			+ "                  BQUAMCkxJzAlBgNVBAMTHmlkZW0tcHVwYWdlbnQuZG16LWludC51bmltby5pdDAe\n"
-			+ "                  Fw0xMzA3MjQwMDQ0MTRaFw0zMzA3MjQwMDQ0MTRaMCkxJzAlBgNVBAMTHmlkZW0t\n"
-			+ "                  cHVwYWdlbnQuZG16LWludC51bmltby5pdDCCASIwDQYJKoZIhvcNAMIIDQADggEP\n"
-			+ "                  ADCCAQoCggEBAIAcp/VyzZGXUF99kwj4NvL/Rwv4YvBgLWzpCuoxqHZ/hmBwJtqS\n"
-			+ "                  v0y9METBPFbgsF3hCISnxbcmNVxf/D0MoeKtw1YPbsUmow/bFe+r72hZ+IVAcejN\n"
-			+ "                  iDJ7t5oTjsRN1t1SqvVVk6Ryk5AZhpFW+W9pE9N6c7kJ16Rp2/mbtax9OCzxpece\n"
-			+ "                  byi1eiLfIBmkcRawL/vCc2v6VLI18i6HsNVO3l2yGosKCbuSoGDx2fCdAOk/rgdz\n"
-			+ "                  cWOvFsIZSKuD+FVbSS/J9GVs7yotsS4PRl4iX9UMnfDnOMfO7bcBgbXtDl4SCU1v\n"
-			+ "                  dJrRw7IL/pLz34Rv9a8nYitrzrxtLOp3nYUCAwEAAaOBhDCBgTBgBgMIIDEEWTBX\n"
-			+ "                  gh5pZGVtLXB1cGFnZW50LmRtei1pbnQudW5pbW8uaXSGNWh0dHBzOi8vaWRlbS1w\n"
-			+ "                  dXBhZ2VudC5kbXotaW50LnVuaW1vLml0L2lkcC9zaGliYm9sZXRoMB0GA1UdDgQW\n"
-			+ "                  BBT8PANzz+adGnTRe8ldcyxAwe4VnzANBgkqhkiG9w0BAQUFAAOCAQEAOEnO8Clu\n"
-			+ "                  9z/Lf/8XOOsTdxJbV29DIF3G8KoQsB3dBsLwPZVEAQIP6ceS32Xaxrl6FMTDDNkL\n"
-			+ "                  qUvvInUisw0+I5zZwYHybJQCletUWTnz58SC4C9G7FpuXHFZnOGtRcgGD1NOX4UU\n"
-			+ "                  duus/4nVcGSLhDjszZ70Xtj0gw2Sn46oQPHTJ81QZ3Y9ih+Aj1c9OtUSBwtWZFkU\n"
-			+ "                  yooAKoR8li68Yb21zN2N65AqV+ndL98M8xUYMKLONuAXStDeoVCipH6PJ09Z5U2p\n"
-			+ "                  V5p4IQRV6QBsNw9CISJFuHzkVYTH5ZxzN80Ru46vh4y2M0Nu8GQ9I085KoZkrf5e\n"
-			+ "                  Cq53OZt9ISjHEw==\n" + "               \n"
-			+ "            \n" + "         \n" + "      \n" + "   \n"
-			+ "      \n"
-			+ "   \n" + "    \n" + "   \n"
-			+ "      \n" + "         Consortium GARR\n"
-			+ "      \n" + "      \n"
-			+ "         Consortium GARR\n" + "      \n" + "   \n"
-			+ "      \n" + "         Consortium GARR\n"
-			+ "      \n" + "      \n"
-			+ "         Consortium GARR\n" + "      \n" + "   \n"
-			+ "      \n" + "         https://example.org\n"
-			+ "      \n" + "   \n" + "    \n"
-			+ "   \n"
-			+ "      mailto:technical.contact@example.com\n"
-			+ "   \n" + "    \n" + "";
+	private String metadata;
+
+	@Before
+	public void setup() throws Exception {
+		ClassPathResource resource = new ClassPathResource("test-metadata.xml");
+		try (BufferedReader reader = new BufferedReader(new InputStreamReader(resource.getInputStream()))) {
+			this.metadata = reader.lines().collect(Collectors.joining());
+		}
+	}
 
 	@Test
 	public void fromMetadataUrlLocationWhenResolvableThenPopulatesBuilder() throws Exception {
 		try (MockWebServer server = new MockWebServer()) {
-			server.enqueue(new MockResponse().setBody(IDP_SSO_DESCRIPTOR_PAYLOAD).setResponseCode(200));
+			server.enqueue(new MockResponse().setBody(this.metadata).setResponseCode(200));
 			RelyingPartyRegistration registration = RelyingPartyRegistrations
 					.fromMetadataLocation(server.url("/").toString()).entityId("rp").build();
 			RelyingPartyRegistration.AssertingPartyDetails details = registration.getAssertingPartyDetails();
@@ -105,7 +66,7 @@ public class RelyingPartyRegistrationsTests {
 	@Test
 	public void fromMetadataUrlLocationWhenUnresolvableThenSaml2Exception() throws Exception {
 		try (MockWebServer server = new MockWebServer()) {
-			server.enqueue(new MockResponse().setBody(IDP_SSO_DESCRIPTOR_PAYLOAD).setResponseCode(200));
+			server.enqueue(new MockResponse().setBody(this.metadata).setResponseCode(200));
 			String url = server.url("/").toString();
 			server.shutdown();
 			assertThatExceptionOfType(Saml2Exception.class)