[java-opensaml] branch dev/OSJ-353 updated: Move Shibboleth security namespace parsers/schema out of OpenSAML.

Scott Cantor cantor.2 at osu.edu
Fri Jul 1 18:40:29 UTC 2022


This is an automated email from the git hooks/post-receive script.

scantor pushed a commit to branch dev/OSJ-353
in repository java-opensaml.

View the commit online:
http://git.shibboleth.net/view/?p=java-opensaml.git;a=commit;h=b05b0c3e289c3acc90f532c9789f48cb8192dfde

The following commit(s) were added to refs/heads/dev/OSJ-353 by this push:
     new b05b0c3e2 Move Shibboleth security namespace parsers/schema out of OpenSAML.
b05b0c3e2 is described below

commit b05b0c3e289c3acc90f532c9789f48cb8192dfde
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Fri Jul 1 14:40:25 2022 -0400

    Move Shibboleth security namespace parsers/schema out of OpenSAML.
---
 opensaml-core/.classpath                           |    1 +
 opensaml-core/.project                             |   12 +
 .../.settings/org.eclipse.wst.common.component     |    6 +
 .../org.eclipse.wst.common.project.facet.core.xml  |    5 +
 opensaml-messaging-api/.classpath                  |    1 +
 opensaml-messaging-api/.project                    |   12 +
 .../.settings/org.eclipse.wst.common.component     |    6 +
 .../org.eclipse.wst.common.project.facet.core.xml  |    5 +
 opensaml-messaging-impl/.classpath                 |    1 +
 opensaml-messaging-impl/.project                   |   12 +
 .../.settings/org.eclipse.wst.common.component     |    6 +
 .../org.eclipse.wst.common.project.facet.core.xml  |    5 +
 opensaml-profile-api/.classpath                    |    1 +
 opensaml-profile-api/.project                      |   12 +
 .../.settings/org.eclipse.wst.common.component     |    6 +
 .../org.eclipse.wst.common.project.facet.core.xml  |    5 +
 opensaml-profile-impl/.classpath                   |    1 +
 opensaml-profile-impl/.project                     |   12 +
 .../.settings/org.eclipse.wst.common.component     |    6 +
 .../org.eclipse.wst.common.project.facet.core.xml  |    5 +
 opensaml-saml-api/.classpath                       |    1 +
 opensaml-saml-api/.project                         |   12 +
 .../.settings/org.eclipse.wst.common.component     |    6 +
 .../org.eclipse.wst.common.project.facet.core.xml  |    5 +
 opensaml-saml-impl/.classpath                      |    1 +
 opensaml-saml-impl/.project                        |   12 +
 .../.settings/org.eclipse.wst.common.component     |    6 +
 .../org.eclipse.wst.common.project.facet.core.xml  |    5 +
 opensaml-security-api/.classpath                   |    1 +
 opensaml-security-api/.project                     |   12 +
 .../.settings/org.eclipse.wst.common.component     |    6 +
 .../org.eclipse.wst.common.project.facet.core.xml  |    5 +
 opensaml-security-impl/.classpath                  |    1 +
 opensaml-security-impl/.project                    |   12 +
 .../.settings/org.eclipse.wst.common.component     |    6 +
 .../org.eclipse.wst.common.project.facet.core.xml  |    5 +
 opensaml-soap-api/.classpath                       |    1 +
 opensaml-soap-api/.project                         |   12 +
 .../.settings/org.eclipse.wst.common.component     |    6 +
 .../org.eclipse.wst.common.project.facet.core.xml  |    5 +
 opensaml-soap-impl/.classpath                      |    1 +
 opensaml-soap-impl/.project                        |   12 +
 .../.settings/org.eclipse.wst.common.component     |    6 +
 .../org.eclipse.wst.common.project.facet.core.xml  |    5 +
 opensaml-spring/.classpath                         |    1 +
 opensaml-spring/.project                           |   12 +
 .../.settings/org.eclipse.wst.common.component     |    6 +
 .../org.eclipse.wst.common.project.facet.core.xml  |    5 +
 .../opensaml/spring/SecurityNamespaceHandler.java  |   90 --
 .../credential/AbstractBasicCredentialParser.java  |  163 ---
 .../credential/AbstractCredentialParser.java       |   94 --
 .../credential/AbstractX509CredentialParser.java   |  141 ---
 .../credential/BasicInlineCredentialParser.java    |   37 -
 .../credential/BasicResourceCredentialParser.java  |   38 -
 .../credential/X509InlineCredentialParser.java     |   36 -
 .../credential/X509ResourceCredentialParser.java   |   39 -
 .../java/org/opensaml/spring/package-info.java     |   22 -
 .../spring/trust/AbstractChainingParser.java       |   61 -
 .../trust/AbstractPKIXValidationInfoParser.java    |   78 --
 .../spring/trust/AbstractStaticPKIXParser.java     |  154 ---
 .../spring/trust/AbstractTrustEngineParser.java    |   44 -
 .../trust/CertPathPKIXValidationOptionsParser.java |   89 --
 .../org/opensaml/spring/trust/ChainingParser.java  |   37 -
 ...> ChainingSignatureTrustEngineFactoryBean.java} |    4 +-
 ...ry.java => ChainingTrustEngineFactoryBean.java} |    4 +-
 .../trust/PKIXInlineValidationInfoParser.java      |   42 -
 .../trust/PKIXResourceValidationInfoParser.java    |   43 -
 .../spring/trust/PKIXValidationOptionsParser.java  |   76 --
 .../spring/trust/SignatureChainingParser.java      |   38 -
 .../spring/trust/StaticExplicitKeyParser.java      |   62 -
 .../trust/StaticExplicitKeySignatureParser.java    |   66 --
 .../spring/trust/StaticPKIXSignatureParser.java    |   66 --
 .../trust/StaticPKIXX509CredentialParser.java      |   62 -
 .../src/main/resources/META-INF/spring.handlers    |    1 -
 .../src/main/resources/META-INF/spring.schemas     |    5 -
 .../main/resources/schema/shibboleth-security.xsd  |  612 ----------
 .../spring/credential/BasicInlineParserTest.java   |   70 --
 .../spring/credential/BasicResourceParserTest.java |   80 --
 .../credential/X509FilesystemParserTest.java       |   88 --
 .../spring/credential/X509InlineParserTest.java    |   62 -
 .../AbstractSecurityTest.java}                     |    6 +-
 .../spring/trust/ChainingTrustEngineTest.java      |   50 -
 .../spring/trust/PKIXFilesystemParserTest.java     |   52 -
 .../spring/trust/PKIXInlineParserTest.java         |   53 -
 .../trust/PKIXValidationOptionsParserTest.java     |   53 -
 .../spring/trust/SignatureChainingParserTest.java  |   56 -
 .../trust/StaticExplicitKeyFactoryBeanTest.java    |    3 +-
 .../spring/trust/StaticExplicitKeyParserTest.java  |   52 -
 .../StaticExplicitKeySignatureParserTest.java      |   52 -
 .../trust/StaticPKIXSignatureParserTest.java       |  163 ---
 .../trust/StaticPKIXX509CredentialParserTest.java  |  116 --
 .../org/opensaml/spring/credential/aes-base64.txt  |    1 -
 .../org/opensaml/spring/credential/aes-binary.data |    1 -
 .../org/opensaml/spring/credential/aes-hex.txt     |    1 -
 .../org/opensaml/spring/credential/crl.pem         |   19 -
 .../opensaml/spring/credential/inlineCertOnly.xml  |   30 -
 .../spring/credential/inlineKeyCertCrl.xml         |  128 --
 .../spring/credential/inlinePublicOnly.xml         |   17 -
 .../spring/credential/inlinePublicPrivate.xml      |   48 -
 .../opensaml/spring/credential/inlineWrongCert.xml |   87 --
 .../org/opensaml/spring/credential/key.pem         |   27 -
 .../opensaml/spring/credential/resourceBasic.xml   |    8 -
 .../credential/resourceCertElementsKeyName.xml     |   10 -
 .../spring/credential/resourceCertOnly.xml         |    8 -
 .../spring/credential/resourceKeyCertCrl.xml       |   11 -
 .../spring/credential/resourcePublicOnly.xml       |    9 -
 .../spring/credential/resourcePublicPrivate.xml    |    9 -
 .../spring/credential/resourceSecretAESBase64.xml  |    9 -
 .../spring/credential/resourceSecretAESBinary.xml  |    9 -
 .../spring/credential/resourceSecretAESHex.xml     |    9 -
 .../opensaml/spring/credential/resourceTwoCert.xml |    8 -
 .../spring/credential/resourceWrongCert.xml        |    9 -
 .../spring/credential/resourceWrongPublic.xml      |    9 -
 .../opensaml/spring/credential/resourceX509.xml    |    8 -
 .../spring/credential/secretKeyAESBase64.xml       |   11 -
 .../opensaml/spring/credential/secretKeyAESHex.xml |   11 -
 .../opensaml/spring/credential/wrongPublicKey.pem  |    6 -
 .../resources/org/opensaml/spring/trust/cert.pem   |   22 -
 .../resources/org/opensaml/spring/trust/chain.xml  |   41 -
 .../org/opensaml/spring/trust/chainingTrue.xml     |   18 -
 .../opensaml/spring/trust/chainingTrueFalse.xml    |   22 -
 .../resources/org/opensaml/spring/trust/crl.pem    |   19 -
 .../opensaml/spring/trust/inlineValidationInfo.xml |    5 -
 .../spring/trust/inlineValidationInfoValues.xml    |   77 --
 .../spring/trust/resourceValidationInfo.xml        |    5 -
 .../spring/trust/resourceValidationInfoValues.xml  |   10 -
 .../org/opensaml/spring/trust/staticExplicit.xml   |   30 -
 .../spring/trust/staticExplicitSignature.xml       |   30 -
 .../spring/trust/staticPKIX-nameCheckDisabled.xml  |    8 -
 .../org/opensaml/spring/trust/staticPKIX.xml       |    8 -
 .../staticPKIXCredentials-nameCheckDisabled.xml    |   18 -
 .../spring/trust/staticPKIXCredentials.xml         |   19 -
 .../org/opensaml/spring/trust/staticPKIXValues.xml |   16 -
 .../spring/trust/staticPKIXValuesCertPathOpts.xml  |   19 -
 .../opensaml/spring/trust/validationOptions.xml    |    5 -
 .../spring/trust/validationOptionsValues.xml       |    7 -
 .../test-output/Default suite/Default test.html    |  693 +----------
 .../test-output/Default suite/Default test.xml     |   94 +-
 .../test-output/Default suite/testng-failed.xml    |    9 +-
 opensaml-spring/test-output/emailable-report.html  |  294 +----
 opensaml-spring/test-output/index.html             | 1248 ++------------------
 ...edential.BasicX509CredentialFactoryBeanTest.xml |    4 +-
 ...ring.trust.StaticExplicitKeyFactoryBeanTest.xml |   10 +-
 ...saml.spring.trust.StaticPKIXFactoryBeanTest.xml |    8 +-
 .../test-output/old/Default suite/classes.html     |  434 +------
 .../old/Default suite/methods-alphabetical.html    |  192 +--
 .../old/Default suite/methods-not-run.html         |   15 +-
 .../test-output/old/Default suite/methods.html     |  192 +--
 .../test-output/old/Default suite/testng.xml.html  |    2 +-
 .../test-output/old/Default suite/toc.html         |    8 +-
 opensaml-spring/test-output/old/index.html         |    4 +-
 opensaml-spring/test-output/testng-failed.xml      |    9 +-
 opensaml-spring/test-output/testng-results.xml     |  629 +---------
 opensaml-storage-api/.classpath                    |    1 +
 opensaml-storage-api/.project                      |   60 +-
 .../.settings/org.eclipse.wst.common.component     |    6 +
 .../org.eclipse.wst.common.project.facet.core.xml  |    5 +
 opensaml-storage-impl/.classpath                   |    1 +
 opensaml-storage-impl/.project                     |   12 +
 .../.settings/org.eclipse.wst.common.component     |    6 +
 .../org.eclipse.wst.common.project.facet.core.xml  |    5 +
 opensaml-xmlsec-api/.classpath                     |    1 +
 opensaml-xmlsec-api/.project                       |   12 +
 .../.settings/org.eclipse.wst.common.component     |    6 +
 .../org.eclipse.wst.common.project.facet.core.xml  |    5 +
 opensaml-xmlsec-impl/.classpath                    |    1 +
 opensaml-xmlsec-impl/.project                      |   12 +
 .../.settings/org.eclipse.wst.common.component     |    6 +
 .../org.eclipse.wst.common.project.facet.core.xml  |    5 +
 169 files changed, 658 insertions(+), 7661 deletions(-)

diff --git a/opensaml-core/.classpath b/opensaml-core/.classpath
index 77be441ed..8c2ac107c 100644
--- a/opensaml-core/.classpath
+++ b/opensaml-core/.classpath
@@ -32,6 +32,7 @@
 	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
 		<attributes>
 			<attribute name="maven.pomderived" value="true"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
 		</attributes>
 	</classpathentry>
 	<classpathentry kind="output" path="target/classes"/>
diff --git a/opensaml-core/.project b/opensaml-core/.project
index 757d7c8fd..d34925c73 100644
--- a/opensaml-core/.project
+++ b/opensaml-core/.project
@@ -5,6 +5,11 @@
 	<projects>
 	</projects>
 	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.wst.common.project.facet.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 		<buildCommand>
 			<name>org.eclipse.jdt.core.javabuilder</name>
 			<arguments>
@@ -20,10 +25,17 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.validation.validationbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.m2e.core.maven2Nature</nature>
 		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
 		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
 	</natures>
 </projectDescription>
diff --git a/opensaml-core/.settings/org.eclipse.wst.common.component b/opensaml-core/.settings/org.eclipse.wst.common.component
new file mode 100644
index 000000000..da1ba7740
--- /dev/null
+++ b/opensaml-core/.settings/org.eclipse.wst.common.component
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
+    <wb-module deploy-name="opensaml-core">
+        <wb-resource deploy-path="/" source-path="/src/main/java"/>
+        <wb-resource deploy-path="/" source-path="/src/main/resources"/>
+    </wb-module>
+</project-modules>
diff --git a/opensaml-core/.settings/org.eclipse.wst.common.project.facet.core.xml b/opensaml-core/.settings/org.eclipse.wst.common.project.facet.core.xml
new file mode 100644
index 000000000..9ba61b70c
--- /dev/null
+++ b/opensaml-core/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+  <installed facet="java" version="17"/>
+  <installed facet="jst.utility" version="1.0"/>
+</faceted-project>
diff --git a/opensaml-messaging-api/.classpath b/opensaml-messaging-api/.classpath
index 77be441ed..8c2ac107c 100644
--- a/opensaml-messaging-api/.classpath
+++ b/opensaml-messaging-api/.classpath
@@ -32,6 +32,7 @@
 	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
 		<attributes>
 			<attribute name="maven.pomderived" value="true"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
 		</attributes>
 	</classpathentry>
 	<classpathentry kind="output" path="target/classes"/>
diff --git a/opensaml-messaging-api/.project b/opensaml-messaging-api/.project
index ff5ddf77b..16825a759 100644
--- a/opensaml-messaging-api/.project
+++ b/opensaml-messaging-api/.project
@@ -5,6 +5,11 @@
 	<projects>
 	</projects>
 	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.wst.common.project.facet.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 		<buildCommand>
 			<name>org.eclipse.jdt.core.javabuilder</name>
 			<arguments>
@@ -20,10 +25,17 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.validation.validationbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.m2e.core.maven2Nature</nature>
 		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
 		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
 	</natures>
 </projectDescription>
diff --git a/opensaml-messaging-api/.settings/org.eclipse.wst.common.component b/opensaml-messaging-api/.settings/org.eclipse.wst.common.component
new file mode 100644
index 000000000..7f24b93eb
--- /dev/null
+++ b/opensaml-messaging-api/.settings/org.eclipse.wst.common.component
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
+    <wb-module deploy-name="opensaml-messaging-api">
+        <wb-resource deploy-path="/" source-path="/src/main/java"/>
+        <wb-resource deploy-path="/" source-path="/src/main/resources"/>
+    </wb-module>
+</project-modules>
diff --git a/opensaml-messaging-api/.settings/org.eclipse.wst.common.project.facet.core.xml b/opensaml-messaging-api/.settings/org.eclipse.wst.common.project.facet.core.xml
new file mode 100644
index 000000000..9ba61b70c
--- /dev/null
+++ b/opensaml-messaging-api/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+  <installed facet="java" version="17"/>
+  <installed facet="jst.utility" version="1.0"/>
+</faceted-project>
diff --git a/opensaml-messaging-impl/.classpath b/opensaml-messaging-impl/.classpath
index 77be441ed..8c2ac107c 100644
--- a/opensaml-messaging-impl/.classpath
+++ b/opensaml-messaging-impl/.classpath
@@ -32,6 +32,7 @@
 	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
 		<attributes>
 			<attribute name="maven.pomderived" value="true"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
 		</attributes>
 	</classpathentry>
 	<classpathentry kind="output" path="target/classes"/>
diff --git a/opensaml-messaging-impl/.project b/opensaml-messaging-impl/.project
index c29a25afb..516d594eb 100644
--- a/opensaml-messaging-impl/.project
+++ b/opensaml-messaging-impl/.project
@@ -5,6 +5,11 @@
 	<projects>
 	</projects>
 	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.wst.common.project.facet.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 		<buildCommand>
 			<name>org.eclipse.jdt.core.javabuilder</name>
 			<arguments>
@@ -25,11 +30,18 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.validation.validationbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.springframework.ide.eclipse.core.springnature</nature>
 		<nature>org.eclipse.m2e.core.maven2Nature</nature>
 		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
 		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
 	</natures>
 </projectDescription>
diff --git a/opensaml-messaging-impl/.settings/org.eclipse.wst.common.component b/opensaml-messaging-impl/.settings/org.eclipse.wst.common.component
new file mode 100644
index 000000000..96089f781
--- /dev/null
+++ b/opensaml-messaging-impl/.settings/org.eclipse.wst.common.component
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
+    <wb-module deploy-name="opensaml-messaging-impl">
+        <wb-resource deploy-path="/" source-path="/src/main/java"/>
+        <wb-resource deploy-path="/" source-path="/src/main/resources"/>
+    </wb-module>
+</project-modules>
diff --git a/opensaml-messaging-impl/.settings/org.eclipse.wst.common.project.facet.core.xml b/opensaml-messaging-impl/.settings/org.eclipse.wst.common.project.facet.core.xml
new file mode 100644
index 000000000..9ba61b70c
--- /dev/null
+++ b/opensaml-messaging-impl/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+  <installed facet="java" version="17"/>
+  <installed facet="jst.utility" version="1.0"/>
+</faceted-project>
diff --git a/opensaml-profile-api/.classpath b/opensaml-profile-api/.classpath
index 77be441ed..8c2ac107c 100644
--- a/opensaml-profile-api/.classpath
+++ b/opensaml-profile-api/.classpath
@@ -32,6 +32,7 @@
 	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
 		<attributes>
 			<attribute name="maven.pomderived" value="true"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
 		</attributes>
 	</classpathentry>
 	<classpathentry kind="output" path="target/classes"/>
diff --git a/opensaml-profile-api/.project b/opensaml-profile-api/.project
index b43f792bb..af049c813 100644
--- a/opensaml-profile-api/.project
+++ b/opensaml-profile-api/.project
@@ -5,6 +5,11 @@
 	<projects>
 	</projects>
 	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.wst.common.project.facet.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 		<buildCommand>
 			<name>org.eclipse.jdt.core.javabuilder</name>
 			<arguments>
@@ -25,11 +30,18 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.validation.validationbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.springframework.ide.eclipse.core.springnature</nature>
 		<nature>org.eclipse.jdt.core.javanature</nature>
 		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
 		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
 	</natures>
 </projectDescription>
diff --git a/opensaml-profile-api/.settings/org.eclipse.wst.common.component b/opensaml-profile-api/.settings/org.eclipse.wst.common.component
new file mode 100644
index 000000000..79b3cb1f5
--- /dev/null
+++ b/opensaml-profile-api/.settings/org.eclipse.wst.common.component
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
+    <wb-module deploy-name="opensaml-profile-api">
+        <wb-resource deploy-path="/" source-path="/src/main/java"/>
+        <wb-resource deploy-path="/" source-path="/src/main/resources"/>
+    </wb-module>
+</project-modules>
diff --git a/opensaml-profile-api/.settings/org.eclipse.wst.common.project.facet.core.xml b/opensaml-profile-api/.settings/org.eclipse.wst.common.project.facet.core.xml
new file mode 100644
index 000000000..9ba61b70c
--- /dev/null
+++ b/opensaml-profile-api/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+  <installed facet="java" version="17"/>
+  <installed facet="jst.utility" version="1.0"/>
+</faceted-project>
diff --git a/opensaml-profile-impl/.classpath b/opensaml-profile-impl/.classpath
index 77be441ed..8c2ac107c 100644
--- a/opensaml-profile-impl/.classpath
+++ b/opensaml-profile-impl/.classpath
@@ -32,6 +32,7 @@
 	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
 		<attributes>
 			<attribute name="maven.pomderived" value="true"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
 		</attributes>
 	</classpathentry>
 	<classpathentry kind="output" path="target/classes"/>
diff --git a/opensaml-profile-impl/.project b/opensaml-profile-impl/.project
index d464fbb69..5092f09d9 100644
--- a/opensaml-profile-impl/.project
+++ b/opensaml-profile-impl/.project
@@ -5,6 +5,11 @@
 	<projects>
 	</projects>
 	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.wst.common.project.facet.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 		<buildCommand>
 			<name>org.eclipse.jdt.core.javabuilder</name>
 			<arguments>
@@ -25,11 +30,18 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.validation.validationbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.springframework.ide.eclipse.core.springnature</nature>
 		<nature>org.eclipse.jdt.core.javanature</nature>
 		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
 		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
 	</natures>
 </projectDescription>
diff --git a/opensaml-profile-impl/.settings/org.eclipse.wst.common.component b/opensaml-profile-impl/.settings/org.eclipse.wst.common.component
new file mode 100644
index 000000000..ab42e66ab
--- /dev/null
+++ b/opensaml-profile-impl/.settings/org.eclipse.wst.common.component
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
+    <wb-module deploy-name="opensaml-profile-impl">
+        <wb-resource deploy-path="/" source-path="/src/main/java"/>
+        <wb-resource deploy-path="/" source-path="/src/main/resources"/>
+    </wb-module>
+</project-modules>
diff --git a/opensaml-profile-impl/.settings/org.eclipse.wst.common.project.facet.core.xml b/opensaml-profile-impl/.settings/org.eclipse.wst.common.project.facet.core.xml
new file mode 100644
index 000000000..9ba61b70c
--- /dev/null
+++ b/opensaml-profile-impl/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+  <installed facet="java" version="17"/>
+  <installed facet="jst.utility" version="1.0"/>
+</faceted-project>
diff --git a/opensaml-saml-api/.classpath b/opensaml-saml-api/.classpath
index 77be441ed..8c2ac107c 100644
--- a/opensaml-saml-api/.classpath
+++ b/opensaml-saml-api/.classpath
@@ -32,6 +32,7 @@
 	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
 		<attributes>
 			<attribute name="maven.pomderived" value="true"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
 		</attributes>
 	</classpathentry>
 	<classpathentry kind="output" path="target/classes"/>
diff --git a/opensaml-saml-api/.project b/opensaml-saml-api/.project
index 3323b390d..09f14b9f2 100644
--- a/opensaml-saml-api/.project
+++ b/opensaml-saml-api/.project
@@ -5,6 +5,11 @@
 	<projects>
 	</projects>
 	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.wst.common.project.facet.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 		<buildCommand>
 			<name>org.eclipse.jdt.core.javabuilder</name>
 			<arguments>
@@ -20,10 +25,17 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.validation.validationbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.m2e.core.maven2Nature</nature>
 		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
 		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
 	</natures>
 </projectDescription>
diff --git a/opensaml-saml-api/.settings/org.eclipse.wst.common.component b/opensaml-saml-api/.settings/org.eclipse.wst.common.component
new file mode 100644
index 000000000..c0a67ab83
--- /dev/null
+++ b/opensaml-saml-api/.settings/org.eclipse.wst.common.component
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
+    <wb-module deploy-name="opensaml-saml-api">
+        <wb-resource deploy-path="/" source-path="/src/main/java"/>
+        <wb-resource deploy-path="/" source-path="/src/main/resources"/>
+    </wb-module>
+</project-modules>
diff --git a/opensaml-saml-api/.settings/org.eclipse.wst.common.project.facet.core.xml b/opensaml-saml-api/.settings/org.eclipse.wst.common.project.facet.core.xml
new file mode 100644
index 000000000..9ba61b70c
--- /dev/null
+++ b/opensaml-saml-api/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+  <installed facet="java" version="17"/>
+  <installed facet="jst.utility" version="1.0"/>
+</faceted-project>
diff --git a/opensaml-saml-impl/.classpath b/opensaml-saml-impl/.classpath
index 77be441ed..8c2ac107c 100644
--- a/opensaml-saml-impl/.classpath
+++ b/opensaml-saml-impl/.classpath
@@ -32,6 +32,7 @@
 	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
 		<attributes>
 			<attribute name="maven.pomderived" value="true"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
 		</attributes>
 	</classpathentry>
 	<classpathentry kind="output" path="target/classes"/>
diff --git a/opensaml-saml-impl/.project b/opensaml-saml-impl/.project
index 4e908d873..8daa5a618 100644
--- a/opensaml-saml-impl/.project
+++ b/opensaml-saml-impl/.project
@@ -5,6 +5,11 @@
 	<projects>
 	</projects>
 	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.wst.common.project.facet.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 		<buildCommand>
 			<name>org.eclipse.jdt.core.javabuilder</name>
 			<arguments>
@@ -25,11 +30,18 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.validation.validationbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.springframework.ide.eclipse.core.springnature</nature>
 		<nature>org.eclipse.m2e.core.maven2Nature</nature>
 		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
 		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
 	</natures>
 </projectDescription>
diff --git a/opensaml-saml-impl/.settings/org.eclipse.wst.common.component b/opensaml-saml-impl/.settings/org.eclipse.wst.common.component
new file mode 100644
index 000000000..f51a3aba2
--- /dev/null
+++ b/opensaml-saml-impl/.settings/org.eclipse.wst.common.component
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
+    <wb-module deploy-name="opensaml-saml-impl">
+        <wb-resource deploy-path="/" source-path="/src/main/java"/>
+        <wb-resource deploy-path="/" source-path="/src/main/resources"/>
+    </wb-module>
+</project-modules>
diff --git a/opensaml-saml-impl/.settings/org.eclipse.wst.common.project.facet.core.xml b/opensaml-saml-impl/.settings/org.eclipse.wst.common.project.facet.core.xml
new file mode 100644
index 000000000..9ba61b70c
--- /dev/null
+++ b/opensaml-saml-impl/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+  <installed facet="java" version="17"/>
+  <installed facet="jst.utility" version="1.0"/>
+</faceted-project>
diff --git a/opensaml-security-api/.classpath b/opensaml-security-api/.classpath
index 77be441ed..8c2ac107c 100644
--- a/opensaml-security-api/.classpath
+++ b/opensaml-security-api/.classpath
@@ -32,6 +32,7 @@
 	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
 		<attributes>
 			<attribute name="maven.pomderived" value="true"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
 		</attributes>
 	</classpathentry>
 	<classpathentry kind="output" path="target/classes"/>
diff --git a/opensaml-security-api/.project b/opensaml-security-api/.project
index fddc4a163..6c7a1c0ec 100644
--- a/opensaml-security-api/.project
+++ b/opensaml-security-api/.project
@@ -5,6 +5,11 @@
 	<projects>
 	</projects>
 	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.wst.common.project.facet.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 		<buildCommand>
 			<name>org.eclipse.jdt.core.javabuilder</name>
 			<arguments>
@@ -30,11 +35,18 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.validation.validationbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.springframework.ide.eclipse.core.springnature</nature>
 		<nature>org.eclipse.m2e.core.maven2Nature</nature>
 		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
 		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
 	</natures>
 </projectDescription>
diff --git a/opensaml-security-api/.settings/org.eclipse.wst.common.component b/opensaml-security-api/.settings/org.eclipse.wst.common.component
new file mode 100644
index 000000000..13893effa
--- /dev/null
+++ b/opensaml-security-api/.settings/org.eclipse.wst.common.component
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
+    <wb-module deploy-name="opensaml-security-api">
+        <wb-resource deploy-path="/" source-path="/src/main/java"/>
+        <wb-resource deploy-path="/" source-path="/src/main/resources"/>
+    </wb-module>
+</project-modules>
diff --git a/opensaml-security-api/.settings/org.eclipse.wst.common.project.facet.core.xml b/opensaml-security-api/.settings/org.eclipse.wst.common.project.facet.core.xml
new file mode 100644
index 000000000..9ba61b70c
--- /dev/null
+++ b/opensaml-security-api/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+  <installed facet="java" version="17"/>
+  <installed facet="jst.utility" version="1.0"/>
+</faceted-project>
diff --git a/opensaml-security-impl/.classpath b/opensaml-security-impl/.classpath
index 77be441ed..8c2ac107c 100644
--- a/opensaml-security-impl/.classpath
+++ b/opensaml-security-impl/.classpath
@@ -32,6 +32,7 @@
 	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
 		<attributes>
 			<attribute name="maven.pomderived" value="true"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
 		</attributes>
 	</classpathentry>
 	<classpathentry kind="output" path="target/classes"/>
diff --git a/opensaml-security-impl/.project b/opensaml-security-impl/.project
index 99c378a83..b484917cf 100644
--- a/opensaml-security-impl/.project
+++ b/opensaml-security-impl/.project
@@ -5,6 +5,11 @@
 	<projects>
 	</projects>
 	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.wst.common.project.facet.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 		<buildCommand>
 			<name>org.eclipse.jdt.core.javabuilder</name>
 			<arguments>
@@ -20,10 +25,17 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.validation.validationbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.m2e.core.maven2Nature</nature>
 		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
 		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
 	</natures>
 </projectDescription>
diff --git a/opensaml-security-impl/.settings/org.eclipse.wst.common.component b/opensaml-security-impl/.settings/org.eclipse.wst.common.component
new file mode 100644
index 000000000..05cdaec0a
--- /dev/null
+++ b/opensaml-security-impl/.settings/org.eclipse.wst.common.component
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
+    <wb-module deploy-name="opensaml-security-impl">
+        <wb-resource deploy-path="/" source-path="/src/main/java"/>
+        <wb-resource deploy-path="/" source-path="/src/main/resources"/>
+    </wb-module>
+</project-modules>
diff --git a/opensaml-security-impl/.settings/org.eclipse.wst.common.project.facet.core.xml b/opensaml-security-impl/.settings/org.eclipse.wst.common.project.facet.core.xml
new file mode 100644
index 000000000..9ba61b70c
--- /dev/null
+++ b/opensaml-security-impl/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+  <installed facet="java" version="17"/>
+  <installed facet="jst.utility" version="1.0"/>
+</faceted-project>
diff --git a/opensaml-soap-api/.classpath b/opensaml-soap-api/.classpath
index 77be441ed..8c2ac107c 100644
--- a/opensaml-soap-api/.classpath
+++ b/opensaml-soap-api/.classpath
@@ -32,6 +32,7 @@
 	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
 		<attributes>
 			<attribute name="maven.pomderived" value="true"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
 		</attributes>
 	</classpathentry>
 	<classpathentry kind="output" path="target/classes"/>
diff --git a/opensaml-soap-api/.project b/opensaml-soap-api/.project
index 52462fae1..26d9ba4e3 100644
--- a/opensaml-soap-api/.project
+++ b/opensaml-soap-api/.project
@@ -5,6 +5,11 @@
 	<projects>
 	</projects>
 	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.wst.common.project.facet.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 		<buildCommand>
 			<name>org.eclipse.jdt.core.javabuilder</name>
 			<arguments>
@@ -20,10 +25,17 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.validation.validationbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.m2e.core.maven2Nature</nature>
 		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
 		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
 	</natures>
 </projectDescription>
diff --git a/opensaml-soap-api/.settings/org.eclipse.wst.common.component b/opensaml-soap-api/.settings/org.eclipse.wst.common.component
new file mode 100644
index 000000000..4f1a24849
--- /dev/null
+++ b/opensaml-soap-api/.settings/org.eclipse.wst.common.component
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
+    <wb-module deploy-name="opensaml-soap-api">
+        <wb-resource deploy-path="/" source-path="/src/main/java"/>
+        <wb-resource deploy-path="/" source-path="/src/main/resources"/>
+    </wb-module>
+</project-modules>
diff --git a/opensaml-soap-api/.settings/org.eclipse.wst.common.project.facet.core.xml b/opensaml-soap-api/.settings/org.eclipse.wst.common.project.facet.core.xml
new file mode 100644
index 000000000..9ba61b70c
--- /dev/null
+++ b/opensaml-soap-api/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+  <installed facet="java" version="17"/>
+  <installed facet="jst.utility" version="1.0"/>
+</faceted-project>
diff --git a/opensaml-soap-impl/.classpath b/opensaml-soap-impl/.classpath
index 77be441ed..8c2ac107c 100644
--- a/opensaml-soap-impl/.classpath
+++ b/opensaml-soap-impl/.classpath
@@ -32,6 +32,7 @@
 	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
 		<attributes>
 			<attribute name="maven.pomderived" value="true"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
 		</attributes>
 	</classpathentry>
 	<classpathentry kind="output" path="target/classes"/>
diff --git a/opensaml-soap-impl/.project b/opensaml-soap-impl/.project
index e8c041f4e..60754d09a 100644
--- a/opensaml-soap-impl/.project
+++ b/opensaml-soap-impl/.project
@@ -5,6 +5,11 @@
 	<projects>
 	</projects>
 	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.wst.common.project.facet.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 		<buildCommand>
 			<name>org.eclipse.jdt.core.javabuilder</name>
 			<arguments>
@@ -25,11 +30,18 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.validation.validationbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.springframework.ide.eclipse.core.springnature</nature>
 		<nature>org.eclipse.m2e.core.maven2Nature</nature>
 		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
 		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
 	</natures>
 </projectDescription>
diff --git a/opensaml-soap-impl/.settings/org.eclipse.wst.common.component b/opensaml-soap-impl/.settings/org.eclipse.wst.common.component
new file mode 100644
index 000000000..c16c94ff1
--- /dev/null
+++ b/opensaml-soap-impl/.settings/org.eclipse.wst.common.component
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
+    <wb-module deploy-name="opensaml-soap-impl">
+        <wb-resource deploy-path="/" source-path="/src/main/java"/>
+        <wb-resource deploy-path="/" source-path="/src/main/resources"/>
+    </wb-module>
+</project-modules>
diff --git a/opensaml-soap-impl/.settings/org.eclipse.wst.common.project.facet.core.xml b/opensaml-soap-impl/.settings/org.eclipse.wst.common.project.facet.core.xml
new file mode 100644
index 000000000..9ba61b70c
--- /dev/null
+++ b/opensaml-soap-impl/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+  <installed facet="java" version="17"/>
+  <installed facet="jst.utility" version="1.0"/>
+</faceted-project>
diff --git a/opensaml-spring/.classpath b/opensaml-spring/.classpath
index 6fc81d614..8ea303622 100644
--- a/opensaml-spring/.classpath
+++ b/opensaml-spring/.classpath
@@ -33,6 +33,7 @@
 	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
 		<attributes>
 			<attribute name="maven.pomderived" value="true"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
 		</attributes>
 	</classpathentry>
 	<classpathentry kind="output" path="target/classes"/>
diff --git a/opensaml-spring/.project b/opensaml-spring/.project
index 939c09743..aa177194c 100644
--- a/opensaml-spring/.project
+++ b/opensaml-spring/.project
@@ -5,6 +5,11 @@
 	<projects>
 	</projects>
 	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.wst.common.project.facet.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 		<buildCommand>
 			<name>org.eclipse.jdt.core.javabuilder</name>
 			<arguments>
@@ -20,10 +25,17 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.validation.validationbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.m2e.core.maven2Nature</nature>
 		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
 		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
 	</natures>
 </projectDescription>
diff --git a/opensaml-spring/.settings/org.eclipse.wst.common.component b/opensaml-spring/.settings/org.eclipse.wst.common.component
new file mode 100644
index 000000000..8feb3fd43
--- /dev/null
+++ b/opensaml-spring/.settings/org.eclipse.wst.common.component
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
+    <wb-module deploy-name="opensaml-spring">
+        <wb-resource deploy-path="/" source-path="/src/main/java"/>
+        <wb-resource deploy-path="/" source-path="/src/main/resources"/>
+    </wb-module>
+</project-modules>
diff --git a/opensaml-spring/.settings/org.eclipse.wst.common.project.facet.core.xml b/opensaml-spring/.settings/org.eclipse.wst.common.project.facet.core.xml
new file mode 100644
index 000000000..9ba61b70c
--- /dev/null
+++ b/opensaml-spring/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+  <installed facet="java" version="17"/>
+  <installed facet="jst.utility" version="1.0"/>
+</faceted-project>
diff --git a/opensaml-spring/src/main/java/org/opensaml/spring/SecurityNamespaceHandler.java b/opensaml-spring/src/main/java/org/opensaml/spring/SecurityNamespaceHandler.java
deleted file mode 100644
index 0660bd541..000000000
--- a/opensaml-spring/src/main/java/org/opensaml/spring/SecurityNamespaceHandler.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.spring;
-
-import javax.annotation.Nonnull;
-import javax.xml.namespace.QName;
-
-import org.opensaml.spring.credential.BasicInlineCredentialParser;
-import org.opensaml.spring.credential.BasicResourceCredentialParser;
-import org.opensaml.spring.credential.X509InlineCredentialParser;
-import org.opensaml.spring.credential.X509ResourceCredentialParser;
-import org.opensaml.spring.trust.CertPathPKIXValidationOptionsParser;
-import org.opensaml.spring.trust.ChainingParser;
-import org.opensaml.spring.trust.PKIXInlineValidationInfoParser;
-import org.opensaml.spring.trust.PKIXResourceValidationInfoParser;
-import org.opensaml.spring.trust.PKIXValidationOptionsParser;
-import org.opensaml.spring.trust.SignatureChainingParser;
-import org.opensaml.spring.trust.StaticExplicitKeyParser;
-import org.opensaml.spring.trust.StaticExplicitKeySignatureParser;
-import org.opensaml.spring.trust.StaticPKIXSignatureParser;
-import org.opensaml.spring.trust.StaticPKIXX509CredentialParser;
-
-import net.shibboleth.ext.spring.util.BaseSpringNamespaceHandler;
-
-import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
-
-/** Namespace handler for {@link #SECURITY_NAMESPACE}. */
-public class SecurityNamespaceHandler extends BaseSpringNamespaceHandler {
-
-    /** Namespace for Security. */
-    @Nonnull @NotEmpty public static final String SECURITY_NAMESPACE = "urn:mace:shibboleth:2.0:security";
-
-    /** Credential element name. */
-    @Nonnull public static final QName CREDENTIAL_ELEMENT_NAME = new QName(SECURITY_NAMESPACE, "Credential");
-
-    /** TrustEngine Element name. */
-    @Nonnull public static final QName TRUST_ENGINE_ELEMENT_NAME = new QName(SECURITY_NAMESPACE, "TrustEngine");
-
-    /** TrustEngineRef element name. */
-    @Nonnull public static final QName TRUST_ENGINE_REF = new QName(SECURITY_NAMESPACE, "TrustEngineRef");
-
-    /** {@inheritDoc} */
-    @Override public void init() {
-        // Credentials
-        registerBeanDefinitionParser(X509ResourceCredentialParser.TYPE_NAME_RESOURCE,
-                new X509ResourceCredentialParser());
-        registerBeanDefinitionParser(X509InlineCredentialParser.TYPE_NAME, new X509InlineCredentialParser());
-        registerBeanDefinitionParser(BasicInlineCredentialParser.TYPE_NAME, new BasicInlineCredentialParser());
-        registerBeanDefinitionParser(BasicResourceCredentialParser.TYPE_NAME_RESOURCE,
-                new BasicResourceCredentialParser());
-
-        registerBeanDefinitionParser(StaticExplicitKeySignatureParser.TYPE_NAME, 
-                new StaticExplicitKeySignatureParser());
-        registerBeanDefinitionParser(StaticPKIXSignatureParser.TYPE_NAME, new StaticPKIXSignatureParser());
-        registerBeanDefinitionParser(SignatureChainingParser.TYPE_NAME, new SignatureChainingParser());
-
-        // Validation Info
-        registerBeanDefinitionParser(PKIXResourceValidationInfoParser.TYPE_NAME_RESOURCE,
-                new PKIXResourceValidationInfoParser());
-        registerBeanDefinitionParser(PKIXInlineValidationInfoParser.SCHEMA_TYPE, new PKIXInlineValidationInfoParser());
-
-        // Validation Opts
-        registerBeanDefinitionParser(PKIXValidationOptionsParser.ELEMENT_NAME, new PKIXValidationOptionsParser());
-        registerBeanDefinitionParser(CertPathPKIXValidationOptionsParser.ELEMENT_NAME,
-                new CertPathPKIXValidationOptionsParser());
-
-        //
-        // Trust Engines needed for the HttpMetadataProvider
-        //
-        registerBeanDefinitionParser(ChainingParser.TYPE_NAME, new ChainingParser());
-        registerBeanDefinitionParser(StaticExplicitKeyParser.TYPE_NAME, new StaticExplicitKeyParser());
-        registerBeanDefinitionParser(StaticPKIXX509CredentialParser.TYPE_NAME, new StaticPKIXX509CredentialParser());
-
-    }
-}
\ No newline at end of file
diff --git a/opensaml-spring/src/main/java/org/opensaml/spring/credential/AbstractBasicCredentialParser.java b/opensaml-spring/src/main/java/org/opensaml/spring/credential/AbstractBasicCredentialParser.java
deleted file mode 100644
index 39c58aacb..000000000
--- a/opensaml-spring/src/main/java/org/opensaml/spring/credential/AbstractBasicCredentialParser.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.spring.credential;
-
-import java.util.List;
-
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-import javax.xml.namespace.QName;
-
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
-import net.shibboleth.utilities.java.support.xml.ElementSupport;
-
-import org.opensaml.spring.SecurityNamespaceHandler;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.BeanCreationException;
-import org.springframework.beans.factory.support.BeanDefinitionBuilder;
-import org.springframework.beans.factory.xml.ParserContext;
-import org.w3c.dom.Element;
-
-/**
- * Specific parser for all BasicCredentials.
- * 
- * <p>
- * This does the work of putting the element values into strings. The bean factory then does the correct thing - with
- * some help from Spring doing auto-conversion.
- * </p>
- */
-public abstract class AbstractBasicCredentialParser extends AbstractCredentialParser {
-
-    /** <PrivateKey>. */
-    public static final QName PRIVATE_KEY_ELEMENT_NAME = new QName(SecurityNamespaceHandler.SECURITY_NAMESPACE,
-            "PrivateKey");
-
-    /** <PublicKey>. */
-    public static final QName PUBLIC_KEY_ELEMENT_NAME = new QName(SecurityNamespaceHandler.SECURITY_NAMESPACE,
-            "PublicKey");
-
-    /** <SecretKey>. */
-    public static final QName SECRET_KEY_ELEMENT_NAME = new QName(SecurityNamespaceHandler.SECURITY_NAMESPACE,
-            "SecretKey");
-
-    /** log. */
-    private final Logger log = LoggerFactory.getLogger(AbstractBasicCredentialParser.class);
-
-    /** {@inheritDoc} */
-    @Override protected void doParse(final Element element, final ParserContext parserContext,
-            final BeanDefinitionBuilder builder) {
-        super.doParse(element, parserContext, builder);
-        builder.addPropertyValue("configDescription", parserContext.getReaderContext().getResource().getDescription());
-
-        parsePrivateKey(ElementSupport.getChildElements(element, PRIVATE_KEY_ELEMENT_NAME), parserContext, builder);
-        parsePublicKey(ElementSupport.getChildElements(element, PUBLIC_KEY_ELEMENT_NAME), parserContext, builder);
-        parseSecretKey(ElementSupport.getChildElements(element, SECRET_KEY_ELEMENT_NAME), parserContext, builder);
-    }
-
-    /**
-     * Parse the <PrivateKey> element.
-     * 
-     * @param childElements the elements containing the private key, may be null or empty.
-     * @param parserContext used for logging.
-     * @param builder the builder.
-     */
-    private void parsePrivateKey(@Nullable final List<Element> childElements, final ParserContext parserContext,
-            @Nonnull final BeanDefinitionBuilder builder) {
-        if (null == childElements || childElements.isEmpty()) {
-            return;
-        }
-        if (childElements.size() > 1) {
-            log.error("{}: More than one <PrivateKey> Elements present.", parserContext.getReaderContext()
-                    .getResource().getDescription());
-            throw new BeanCreationException("More than one <PrivateKey> Elements present.");
-        }
-        final Element key = childElements.get(0);
-        final String value = StringSupport.trimOrNull(key.getTextContent());
-        if (null == value) {
-            log.error("{}: <PrivateKey> Must contain text.", parserContext.getReaderContext().getResource()
-                    .getDescription());
-            throw new BeanCreationException("<PrivateKey> Must contain text.");
-        }
-        log.debug("Found a private key <Supressed>");
-        builder.addPropertyValue("privateKeyInfo", value);
-        builder.addPropertyValue("privateKeyPassword", key.getAttributeNS(null, "password"));
-    }
-
-    /**
-     * Parse the <PublicKey> elements.
-     * 
-     * @param childElements the elements containing the public key, must have exactly one element
-     * @param parserContext used for logging.
-     * @param builder the builder
-     */
-    private void parsePublicKey(@Nullable final List<Element> childElements, final ParserContext parserContext,
-            @Nonnull final BeanDefinitionBuilder builder) {
-        if (null == childElements || childElements.isEmpty()) {
-            return;
-        }
-        if (childElements.size() > 1) {
-            log.error("{}: More than one <PublicKey> elements present.", parserContext.getReaderContext().getResource()
-                    .getDescription());
-            throw new BeanCreationException("More than one <PublicKey> elements present.");
-        }
-        final Element key = childElements.get(0);
-        final String value = StringSupport.trimOrNull(key.getTextContent());
-        if (null == value) {
-            log.error("{}: <PublicKey> Must contain text.", parserContext.getReaderContext().getResource()
-                    .getDescription());
-            throw new BeanCreationException("<PublicKey> Must contain text.");
-        }
-        log.debug("Found a public key {}", value);
-        builder.addPropertyValue("publicKeyInfo", value);
-
-        if (key.hasAttributeNS(null, "password")) {
-            log.warn("password on public key is ignored");
-        }
-    }
-
-    /**
-     * Parse the <SecretKey> element.
-     * 
-     * @param childElements the elements containing the private key, may be null or empty.
-     * @param parserContext used for logging.
-     * @param builder the builder
-     */
-    private void parseSecretKey(@Nullable final List<Element> childElements, final ParserContext parserContext,
-            @Nonnull final BeanDefinitionBuilder builder) {
-        if (null == childElements || childElements.isEmpty()) {
-            return;
-        }
-        if (childElements.size() > 1) {
-            log.error("{}: More than one <SecretKey> Elements present.", parserContext.getReaderContext().getResource()
-                    .getDescription());
-            throw new BeanCreationException("More than one <SecretKey> Elements present.");
-        }
-        final Element key = childElements.get(0);
-        final String value = StringSupport.trimOrNull(key.getTextContent());
-        if (null == value) {
-            log.error("{}: <SecretKey> Must contain text.", parserContext.getReaderContext().getResource()
-                    .getDescription());
-            throw new BeanCreationException("<SecretKey> Must contain text.");
-        }
-        log.debug("Found a secret key <Supressed>");
-        builder.addPropertyValue("secretKeyInfo", value);
-        builder.addPropertyValue("secretKeyAlgorithm", StringSupport.trimOrNull(key.getAttributeNS(null, "algorithm")));
-        builder.addPropertyValue("secretKeyEncoding", StringSupport.trimOrNull(key.getAttributeNS(null, "encoding")));
-    }
-}
diff --git a/opensaml-spring/src/main/java/org/opensaml/spring/credential/AbstractCredentialParser.java b/opensaml-spring/src/main/java/org/opensaml/spring/credential/AbstractCredentialParser.java
deleted file mode 100644
index 1fb81037c..000000000
--- a/opensaml-spring/src/main/java/org/opensaml/spring/credential/AbstractCredentialParser.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.spring.credential;
-
-import java.util.List;
-
-import javax.xml.namespace.QName;
-
-import org.opensaml.spring.SecurityNamespaceHandler;
-import org.springframework.beans.factory.support.AbstractBeanDefinition;
-import org.springframework.beans.factory.support.BeanDefinitionBuilder;
-import org.springframework.beans.factory.xml.ParserContext;
-import org.w3c.dom.Element;
-
-import net.shibboleth.ext.spring.util.AbstractCustomBeanDefinitionParser;
-import net.shibboleth.ext.spring.util.SpringSupport;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
-import net.shibboleth.utilities.java.support.xml.ElementSupport;
-
-/**
- * Base parser for all <Credential> elements.
- */
-public abstract class AbstractCredentialParser extends AbstractCustomBeanDefinitionParser {
-
-    /** <Credential>. */
-    public static final QName CREDENTIAL_ELEMENT_NAME = new QName(SecurityNamespaceHandler.SECURITY_NAMESPACE,
-            "Credential");
-
-    /** <KeyName>. */
-    public static final QName KEY_NAME_ELEMENT_NAME = new QName(SecurityNamespaceHandler.SECURITY_NAMESPACE,
-            "KeyName");
-
-    /** {@inheritDoc} */
-    @Override protected String resolveId(final Element element, final AbstractBeanDefinition definition,
-            final ParserContext parserContext) {
-        return StringSupport.trimOrNull(element.getAttributeNS(null, "id"));
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void doParse(final Element element, final ParserContext parserContext,
-            final BeanDefinitionBuilder builder) {
-        super.doParse(element, parserContext, builder);
-        
-        builder.setLazyInit(true);
-
-        parseAttributes(element, builder);
-        parseKeyNames(ElementSupport.getChildElements(element, KEY_NAME_ELEMENT_NAME), builder);
-    }
-
-    /**
-     * Parse the credential element attributes.
-     * 
-     * @param element credential element
-     * @param builder bean definition builder
-     */
-    protected void parseAttributes(final Element element, final BeanDefinitionBuilder builder) {
-        final String usage = StringSupport.trimOrNull(element.getAttributeNS(null, "usage"));
-        builder.addPropertyValue("usageType", usage);
-
-        final String entityID = StringSupport.trimOrNull(element.getAttributeNS(null, "entityID"));
-        if (entityID != null) {
-            builder.addPropertyValue("entityID", entityID);
-        }
-    }
-
-    /**
-     * Parses the key names from the credential configuration.
-     * 
-     * @param keyNameElems the elements to parse
-     * @param builder credential build
-     */
-    protected void parseKeyNames(final List<Element> keyNameElems, final BeanDefinitionBuilder builder) {
-        if (keyNameElems == null || keyNameElems.isEmpty()) {
-            return;
-        }
-
-        builder.addPropertyValue("keyNames", SpringSupport.getElementTextContentAsManagedList(keyNameElems));
-    }
-}
diff --git a/opensaml-spring/src/main/java/org/opensaml/spring/credential/AbstractX509CredentialParser.java b/opensaml-spring/src/main/java/org/opensaml/spring/credential/AbstractX509CredentialParser.java
deleted file mode 100644
index 1d5f3c949..000000000
--- a/opensaml-spring/src/main/java/org/opensaml/spring/credential/AbstractX509CredentialParser.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.spring.credential;
-
-import java.util.List;
-
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-import javax.xml.namespace.QName;
-
-import net.shibboleth.ext.spring.util.SpringSupport;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
-import net.shibboleth.utilities.java.support.xml.AttributeSupport;
-import net.shibboleth.utilities.java.support.xml.ElementSupport;
-
-import org.opensaml.spring.SecurityNamespaceHandler;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.BeanCreationException;
-import org.springframework.beans.factory.support.BeanDefinitionBuilder;
-import org.springframework.beans.factory.support.ManagedList;
-import org.w3c.dom.Element;
-
-/**
- * Specific parser for all X509Credentials.
- * 
- * <p>
- * This does the work of putting the element values into strings. The bean factory then does the correct thing - with
- * some help from Spring doing auto-conversion.
- * </p>
- */
-public abstract class AbstractX509CredentialParser extends AbstractCredentialParser {
-
-    /** <PrivateKey>. */
-    public static final QName PRIVATE_KEY_ELEMENT_NAME = new QName(SecurityNamespaceHandler.SECURITY_NAMESPACE,
-            "PrivateKey");
-
-    /** <Certificate>. */
-    public static final QName CERTIFICATE_ELEMENT_NAME = new QName(SecurityNamespaceHandler.SECURITY_NAMESPACE,
-            "Certificate");
-
-    /** <CRL>. */
-    public static final QName CRL_ELEMENT_NAME = new QName(SecurityNamespaceHandler.SECURITY_NAMESPACE, "CRL");
-
-    /** log. */
-    private Logger log = LoggerFactory.getLogger(AbstractX509CredentialParser.class);
-
-    /** {@inheritDoc} */
-    @Override protected void doParse(final Element element, final BeanDefinitionBuilder builder) {
-        super.doParse(element, builder);
-        parsePrivateKey(ElementSupport.getChildElements(element, PRIVATE_KEY_ELEMENT_NAME), builder);
-        parseCertificates(ElementSupport.getChildElements(element, CERTIFICATE_ELEMENT_NAME), builder);
-        parseCRLs(ElementSupport.getChildElements(element, CRL_ELEMENT_NAME), builder);
-    }
-
-    /**
-     * Parse the <PrivateKey> element.
-     * 
-     * @param childElements the elements containing the private key, may be null or empty.
-     * @param builder the builder
-     */
-    private void parsePrivateKey(@Nullable final List<Element> childElements,
-            @Nonnull final BeanDefinitionBuilder builder) {
-        if (null == childElements || childElements.isEmpty()) {
-            return;
-        }
-        if (childElements.size() > 1) {
-            throw new BeanCreationException("More than one <PrivateKey> Elements present.");
-        }
-        final Element key = childElements.get(0);
-        final String value = StringSupport.trimOrNull(key.getTextContent());
-        if (null == value) {
-            throw new BeanCreationException("<PrivateKey> Must contain text.");
-        }
-        log.debug("Found a private key <Supressed>");
-        builder.addPropertyValue("privateKey", value);
-        builder.addPropertyValue("privateKeyPassword", key.getAttributeNS(null, "password"));
-    }
-
-    /**
-     * Parse the <Certificate> elements.
-     * 
-     * @param childElements the elements containing the certificates, Must have at least one element.
-     * @param builder the builder
-     */
-    private void parseCertificates(@Nullable final List<Element> childElements,
-            @Nonnull final BeanDefinitionBuilder builder) {
-        if (null == childElements || childElements.isEmpty()) {
-            throw new BeanCreationException("At least one <Certificate> should be present.");
-        }
-
-        final List<String> certs = new ManagedList<>(childElements.size());
-
-        for (final Element elem : childElements) {
-            final String cert = StringSupport.trimOrNull(elem.getTextContent());
-            if (null == cert) {
-                throw new BeanCreationException("All <Certificate> elements must contain text.");
-            }
-            if (elem.hasAttributeNS(null, "entityCertificate")
-                    && AttributeSupport.getAttributeValueAsBoolean(elem.getAttributeNodeNS(null,
-                            "entityCertificate"))) {
-                // Note the loss of property replacement for this undocumented extension
-                log.debug("Found a certficate marked as an entityCertificate {}", cert);
-                builder.addPropertyValue("entity", cert);
-            } else {
-                log.debug("Found a certficate {}", cert);
-            }
-            certs.add(cert);
-        }
-        builder.addPropertyValue("certificates", certs);
-    }
-
-    /**
-     * Parse the <CRL> elements.
-     * 
-     * @param childElements the elements containing the CRLs, Must have at least one element.
-     * @param builder the builder
-     */
-    private void parseCRLs(@Nullable final List<Element> childElements, @Nonnull final BeanDefinitionBuilder builder) {
-        if (null == childElements || childElements.isEmpty()) {
-            return;
-        }
-
-        builder.addPropertyValue("CRLs", SpringSupport.getElementTextContentAsManagedList(childElements));
-    }
-}
diff --git a/opensaml-spring/src/main/java/org/opensaml/spring/credential/BasicInlineCredentialParser.java b/opensaml-spring/src/main/java/org/opensaml/spring/credential/BasicInlineCredentialParser.java
deleted file mode 100644
index 20d61f76f..000000000
--- a/opensaml-spring/src/main/java/org/opensaml/spring/credential/BasicInlineCredentialParser.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.spring.credential;
-
-import javax.xml.namespace.QName;
-
-import org.opensaml.spring.SecurityNamespaceHandler;
-import org.w3c.dom.Element;
-
-/**
- * Parser for BasicInline Credentials.
- */
-public class BasicInlineCredentialParser extends AbstractBasicCredentialParser {
-
-    /** Element Name.*/
-    public static final QName TYPE_NAME = new QName(SecurityNamespaceHandler.SECURITY_NAMESPACE, "BasicInline");
-
-    /** {@inheritDoc} */
-    @Override protected Class<?> getBeanClass(final Element element) {
-        return BasicInlineCredentialFactoryBean.class;
-    }
-}
diff --git a/opensaml-spring/src/main/java/org/opensaml/spring/credential/BasicResourceCredentialParser.java b/opensaml-spring/src/main/java/org/opensaml/spring/credential/BasicResourceCredentialParser.java
deleted file mode 100644
index f60d1ec8d..000000000
--- a/opensaml-spring/src/main/java/org/opensaml/spring/credential/BasicResourceCredentialParser.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.spring.credential;
-
-import javax.xml.namespace.QName;
-
-import org.opensaml.spring.SecurityNamespaceHandler;
-import org.w3c.dom.Element;
-
-/**
- * Parser for BasicFilesystem and BasicResourceBacked Credentials.
- */
-public class BasicResourceCredentialParser extends AbstractBasicCredentialParser {
-
-    /** Type for Resource. */
-    public static final QName TYPE_NAME_RESOURCE = new QName(SecurityNamespaceHandler.SECURITY_NAMESPACE,
-            "BasicResourceBacked");
-
-    /** {@inheritDoc} */
-    @Override protected Class<?> getBeanClass(final Element element) {
-        return BasicResourceCredentialFactoryBean.class;
-    }
-}
diff --git a/opensaml-spring/src/main/java/org/opensaml/spring/credential/X509InlineCredentialParser.java b/opensaml-spring/src/main/java/org/opensaml/spring/credential/X509InlineCredentialParser.java
deleted file mode 100644
index 59450f9b2..000000000
--- a/opensaml-spring/src/main/java/org/opensaml/spring/credential/X509InlineCredentialParser.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.spring.credential;
-
-import javax.xml.namespace.QName;
-
-import org.opensaml.spring.SecurityNamespaceHandler;
-import org.w3c.dom.Element;
-
-/**
- * Parser for X509Inline credentials.
- */
-public class X509InlineCredentialParser extends AbstractX509CredentialParser {
-
-    /** Element Name.*/
-    public static final QName TYPE_NAME = new QName(SecurityNamespaceHandler.SECURITY_NAMESPACE, "X509Inline");
-
-    @Override protected Class<?> getBeanClass(final Element element) {
-        return X509InlineCredentialFactoryBean.class;
-    }
-}
diff --git a/opensaml-spring/src/main/java/org/opensaml/spring/credential/X509ResourceCredentialParser.java b/opensaml-spring/src/main/java/org/opensaml/spring/credential/X509ResourceCredentialParser.java
deleted file mode 100644
index 886e836bc..000000000
--- a/opensaml-spring/src/main/java/org/opensaml/spring/credential/X509ResourceCredentialParser.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.spring.credential;
-
-import javax.xml.namespace.QName;
-
-import org.opensaml.spring.SecurityNamespaceHandler;
-import org.w3c.dom.Element;
-
-/**
- * Parser for X509Filesystem credentials.
- */
-public class X509ResourceCredentialParser extends AbstractX509CredentialParser {
-
-    /** Type for X509 credentials. */
-    public static final QName TYPE_NAME_RESOURCE = new QName(SecurityNamespaceHandler.SECURITY_NAMESPACE,
-            "X509ResourceBacked");
-
-    @Override protected Class<?> getBeanClass(final Element element) {
-        return BasicX509CredentialFactoryBean.class;
-    }
-
-
-}
diff --git a/opensaml-spring/src/main/java/org/opensaml/spring/package-info.java b/opensaml-spring/src/main/java/org/opensaml/spring/package-info.java
deleted file mode 100644
index de8c5e25e..000000000
--- a/opensaml-spring/src/main/java/org/opensaml/spring/package-info.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Supporting classes for Spring support.
- */
-
-package org.opensaml.spring;
\ No newline at end of file
diff --git a/opensaml-spring/src/main/java/org/opensaml/spring/trust/AbstractChainingParser.java b/opensaml-spring/src/main/java/org/opensaml/spring/trust/AbstractChainingParser.java
deleted file mode 100644
index a45782572..000000000
--- a/opensaml-spring/src/main/java/org/opensaml/spring/trust/AbstractChainingParser.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.spring.trust;
-
-import java.util.List;
-
-import net.shibboleth.ext.spring.util.SpringSupport;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
-import net.shibboleth.utilities.java.support.xml.ElementSupport;
-
-import org.opensaml.spring.SecurityNamespaceHandler;
-import org.springframework.beans.BeanMetadataElement;
-import org.springframework.beans.factory.config.RuntimeBeanReference;
-import org.springframework.beans.factory.support.BeanDefinitionBuilder;
-import org.springframework.beans.factory.support.ManagedList;
-import org.springframework.beans.factory.xml.ParserContext;
-import org.w3c.dom.Element;
-
-/**
- * Base Parser for trust engines of type SignatureChaining and Chaining.
- */
-public abstract class AbstractChainingParser extends AbstractTrustEngineParser {
-    
-    /** {@inheritDoc} */
-    @Override protected void doParse(final Element element, final ParserContext parserContext,
-            final BeanDefinitionBuilder builder) {
-        super.doParse(element, parserContext, builder);
-
-        final List<Element> childEngines =
-                ElementSupport.getChildElements(element, SecurityNamespaceHandler.TRUST_ENGINE_ELEMENT_NAME);
-        final List<Element> childEngineRefs =
-                ElementSupport.getChildElements(element, SecurityNamespaceHandler.TRUST_ENGINE_REF);
-        
-        final List<BeanMetadataElement> allChildren = new ManagedList<>(childEngines.size()+ childEngineRefs.size());
-        
-        allChildren.addAll(SpringSupport.parseCustomElements(childEngines, parserContext, builder));
-        
-        for (final Element ref:childEngineRefs) {
-            final String reference = StringSupport.trimOrNull(ref.getAttributeNS(null, "ref"));
-            if (null != reference) {
-                allChildren.add(new RuntimeBeanReference(StringSupport.trim(reference)));
-            }
-        }
-        builder.addConstructorArgValue(allChildren);
-    }
-}
diff --git a/opensaml-spring/src/main/java/org/opensaml/spring/trust/AbstractPKIXValidationInfoParser.java b/opensaml-spring/src/main/java/org/opensaml/spring/trust/AbstractPKIXValidationInfoParser.java
deleted file mode 100644
index 4f0757e02..000000000
--- a/opensaml-spring/src/main/java/org/opensaml/spring/trust/AbstractPKIXValidationInfoParser.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.spring.trust;
-
-import java.util.List;
-
-import javax.xml.namespace.QName;
-
-import org.opensaml.spring.SecurityNamespaceHandler;
-import org.springframework.beans.factory.support.BeanDefinitionBuilder;
-import org.springframework.beans.factory.support.ManagedList;
-import org.springframework.beans.factory.xml.ParserContext;
-import org.w3c.dom.Element;
-
-import net.shibboleth.ext.spring.util.AbstractCustomBeanDefinitionParser;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
-import net.shibboleth.utilities.java.support.xml.ElementSupport;
-
-/**
- * Base parser for all <ValidationInfo> types. This does all the heavy lifting of creating lists of strings from
- * the sub-elements. The derived classes specify which factory bean to create and that in turn converts from string to
- * CRL or Certificate (either inline or from a file).
- */
-public abstract class AbstractPKIXValidationInfoParser extends AbstractCustomBeanDefinitionParser {
-
-    /** The element <Certificate>. */
-    private static final QName CERTIFICATE =
-            new QName(SecurityNamespaceHandler.SECURITY_NAMESPACE, "Certificate");
-
-    /** The element <CRL>. */
-    private static final QName CRL = new QName(SecurityNamespaceHandler.SECURITY_NAMESPACE, "CRL");
-
-    /** {@inheritDoc} */
-    @Override protected void doParse(final Element element, final ParserContext parserContext,
-            final BeanDefinitionBuilder builder) {
-        super.doParse(element, parserContext, builder);
-
-        builder.addPropertyValue("configDescription", parserContext.getReaderContext().getResource().getDescription());
-
-        if (element.hasAttributeNS(null, "verifyDepth")) {
-            builder.addPropertyValue("verifyDepth",
-                    StringSupport.trimOrNull(element.getAttributeNS(null, "verifyDepth")));
-        }
-
-        final List<Element> certificates = ElementSupport.getChildElements(element, CERTIFICATE);
-        final List<String> certStrings = new ManagedList<>(certificates.size());
-
-        for (final Element cert : certificates) {
-            certStrings.add(cert.getTextContent());
-        }
-
-        builder.addPropertyValue("certificates", certStrings);
-
-        final List<Element> crls = ElementSupport.getChildElements(element, CRL);
-        final List<String> crlStrings = new ManagedList<>(certificates.size());
-
-        for (final Element crl : crls) {
-            crlStrings.add(crl.getTextContent());
-        }
-
-        builder.addPropertyValue("CRLs", crlStrings);
-    }
-}
diff --git a/opensaml-spring/src/main/java/org/opensaml/spring/trust/AbstractStaticPKIXParser.java b/opensaml-spring/src/main/java/org/opensaml/spring/trust/AbstractStaticPKIXParser.java
deleted file mode 100644
index e8e70bb9f..000000000
--- a/opensaml-spring/src/main/java/org/opensaml/spring/trust/AbstractStaticPKIXParser.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.spring.trust;
-
-import java.util.List;
-
-import javax.annotation.Nonnull;
-import javax.xml.namespace.QName;
-
-import net.shibboleth.ext.spring.util.SpringSupport;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
-import net.shibboleth.utilities.java.support.xml.ElementSupport;
-
-import org.opensaml.security.x509.impl.BasicX509CredentialNameEvaluator;
-import org.opensaml.security.x509.impl.CertPathPKIXTrustEvaluator;
-import org.opensaml.security.x509.impl.StaticPKIXValidationInformationResolver;
-import org.opensaml.security.x509.impl.X509CredentialNameEvaluator;
-import org.opensaml.spring.SecurityNamespaceHandler;
-import org.springframework.beans.factory.config.AbstractFactoryBean;
-import org.springframework.beans.factory.config.BeanDefinition;
-import org.springframework.beans.factory.support.BeanDefinitionBuilder;
-import org.springframework.beans.factory.xml.ParserContext;
-import org.w3c.dom.Element;
-
-/**
- * Base Parser for trust engines of type StaticPKIXKeySignature and StaticPKIXX509Credential.
- */
-public abstract class AbstractStaticPKIXParser extends AbstractTrustEngineParser {
-
-    /** Validation Information. */
-    public static final QName VALIDATION_INFO = new QName(SecurityNamespaceHandler.SECURITY_NAMESPACE,
-            "ValidationInfo");
-
-    /** Trusted Names Information. */
-    public static final QName TRUSTED_NAMES = new QName(SecurityNamespaceHandler.SECURITY_NAMESPACE,
-            "TrustedName");
-
-    /**
-     * Get the definition for the {@link org.opensaml.security.x509.PKIXValidationInformationResolver}. This is
-     * constructed from the Trusted names and the Validation Info.
-     * 
-     * @param element what to parse
-     * @param parserContext the context to parse inside
-     * @return the definition
-     */
-    protected BeanDefinition getPKIXValidationInformationResolver(@Nonnull final Element element,
-            @Nonnull final ParserContext parserContext) {
-
-        final List<Element> validationInfoElements = ElementSupport.getChildElements(element, VALIDATION_INFO);
-        final List<Element> trustedNameElements = ElementSupport.getChildElements(element, TRUSTED_NAMES);
-
-        final BeanDefinitionBuilder builder =
-                BeanDefinitionBuilder.genericBeanDefinition(StaticPKIXValidationInformationResolver.class);
-        builder.addConstructorArgValue(
-                SpringSupport.parseCustomElements(validationInfoElements, parserContext, builder));
-        builder.addConstructorArgValue(
-                SpringSupport.getElementTextContentAsManagedList(trustedNameElements));
-
-        return builder.getBeanDefinition();
-    }
-
-    /**
-     * Get the definition for the {@link org.opensaml.security.x509.PKIXTrustEvaluator}. This is purely a
-     * {@link CertPathPKIXTrustEvaluator} constructed with whatever ValidationOptions we provide.
-     * 
-     * @param element what to parse
-     * @param parserContext the context to parse inside
-     * @return the definition
-     */
-    protected BeanDefinition getPKIXTrustEvaluator(@Nonnull final Element element,
-            @Nonnull final ParserContext parserContext) {
-
-        final BeanDefinitionBuilder builder =
-                BeanDefinitionBuilder.genericBeanDefinition(CertPathPKIXTrustEvaluator.class);
-
-        final List<Element> validationOptionsElements =
-                ElementSupport.getChildElements(element, PKIXValidationOptionsParser.ELEMENT_NAME);
-
-        if (null != validationOptionsElements && !validationOptionsElements.isEmpty()) {
-            builder.addConstructorArgValue(
-                    SpringSupport.parseCustomElements(validationOptionsElements, parserContext, builder));
-        }
-        return builder.getBeanDefinition();
-    }
-
-    /**
-     * Get the effective X509CredentialNameEvaluator to use. Currently we return a literal value, but in the future a
-     * BeanDefinition could be returned if necessary if we support toggling the name evaluator settings, hence the
-     * Object return type.
-     * 
-     * @param element what to parse
-     * @param parserContext the context to parse inside
-     * @return an X509CredentialNameEvaluator instance or a BeanDefinition. May be null.
-     */
-    protected Object getX509CredentialNameEvaluator(@Nonnull final Element element,
-            @Nonnull final ParserContext parserContext) {
-
-        final BeanDefinitionBuilder builder =
-                BeanDefinitionBuilder.genericBeanDefinition(X509CredentialNameEvaluatorFactoryBean.class);
-        final String attrValue = StringSupport.trimOrNull(element.getAttributeNS(null, "trustedNameCheckEnabled"));
-        if (attrValue != null) {
-            builder.addPropertyValue("trustedNameCheckEnabled", attrValue);
-        }
-        return builder.getBeanDefinition();
-    }
-
-    /**
-     * FactoryBean to do a deferred decision on whether to create a {@link X509CredentialNameEvaluator}. This is in a
-     * factory bean to allow for property replacement. The default (no value setting) is true.
-     */
-    protected static class X509CredentialNameEvaluatorFactoryBean extends
-            AbstractFactoryBean<X509CredentialNameEvaluator> {
-
-        /** Do we emit a {@link X509CredentialNameEvaluator} or not. */
-        private boolean trustedNameCheckEnabled = true;
-
-        /**
-         * Set whether to perform the trusted name check.
-         * 
-         * @param enabled whether we emit a {@link X509CredentialNameEvaluator} .
-         */
-        public void setTrustedNameCheckEnabled(final boolean enabled) {
-            trustedNameCheckEnabled = enabled;
-        }
-
-        /** {@inheritDoc} */
-        @Override public Class<?> getObjectType() {
-            return BasicX509CredentialNameEvaluator.class;
-        }
-
-        /** {@inheritDoc} */
-        @Override protected BasicX509CredentialNameEvaluator createInstance() throws Exception {
-            if (trustedNameCheckEnabled) {
-                return new BasicX509CredentialNameEvaluator();
-            }
-            return null;
-        }
-    }
-}
diff --git a/opensaml-spring/src/main/java/org/opensaml/spring/trust/AbstractTrustEngineParser.java b/opensaml-spring/src/main/java/org/opensaml/spring/trust/AbstractTrustEngineParser.java
deleted file mode 100644
index 62401ab70..000000000
--- a/opensaml-spring/src/main/java/org/opensaml/spring/trust/AbstractTrustEngineParser.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.spring.trust;
-
-import org.springframework.beans.factory.support.AbstractBeanDefinition;
-import org.springframework.beans.factory.support.BeanDefinitionBuilder;
-import org.springframework.beans.factory.xml.ParserContext;
-import org.w3c.dom.Element;
-
-import net.shibboleth.ext.spring.util.AbstractCustomBeanDefinitionParser;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
-
-/**
- * Basis of all parsers for <security:TrustEngine>.
- */
-public abstract class AbstractTrustEngineParser extends AbstractCustomBeanDefinitionParser {
-
-    /** {@inheritDoc} */
-    @Override protected String resolveId(final Element element, final AbstractBeanDefinition definition,
-            final ParserContext parserContext) {
-        return StringSupport.trimOrNull(element.getAttributeNS(null, "id"));
-    }
-
-    @Override protected void doParse(final Element element, final ParserContext parserContext,
-            final BeanDefinitionBuilder builder) {
-        super.doParse(element, parserContext, builder);
-        builder.setLazyInit(true);
-    }
-}
diff --git a/opensaml-spring/src/main/java/org/opensaml/spring/trust/CertPathPKIXValidationOptionsParser.java b/opensaml-spring/src/main/java/org/opensaml/spring/trust/CertPathPKIXValidationOptionsParser.java
deleted file mode 100644
index 1afb52949..000000000
--- a/opensaml-spring/src/main/java/org/opensaml/spring/trust/CertPathPKIXValidationOptionsParser.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.spring.trust;
-
-import java.util.List;
-
-import javax.xml.namespace.QName;
-
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
-import net.shibboleth.utilities.java.support.xml.ElementSupport;
-
-import org.opensaml.security.x509.impl.CertPathPKIXValidationOptions;
-import org.opensaml.spring.SecurityNamespaceHandler;
-import org.springframework.beans.factory.support.BeanDefinitionBuilder;
-import org.springframework.beans.factory.support.ManagedList;
-import org.springframework.beans.factory.xml.ParserContext;
-import org.w3c.dom.Element;
-
-/**
- * Spring bean definition parser for {urn:mace:shibboleth:2.0:security}ValidationOptions elements which have a type
- * specialization of {urn:mace:shibboleth:2.0:security}CertPathValidationOptionsType.
- */
-public class CertPathPKIXValidationOptionsParser extends PKIXValidationOptionsParser {
-    /** Schema type. */
-    public static final QName SCHEMA_TYPE = new QName(SecurityNamespaceHandler.SECURITY_NAMESPACE,
-            "CertPathValidationOptionsType");
-
-    /** PolicyOid Element type. */
-    public static final QName POLICY_OID_ELEMENT = new QName(SecurityNamespaceHandler.SECURITY_NAMESPACE,
-            "PolicyOID");
-
-    /** {@inheritDoc} */
-    @Override protected Class<?> getBeanClass(final Element element) {
-        return CertPathPKIXValidationOptions.class;
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void doParse(final Element element, final ParserContext parserContext,
-            final BeanDefinitionBuilder builder) {
-        super.doParse(element, parserContext, builder);
-
-        if (element.hasAttributeNS(null, "forceRevocationEnabled")) {
-            builder.addPropertyValue("forceRevocationEnabled",
-                    StringSupport.trimOrNull(element.getAttributeNS(null, "forceRevocationEnabled")));
-        }
-
-        if (element.hasAttributeNS(null, "revocationEnabled")) {
-            builder.addPropertyValue("revocationEnabled",
-                    StringSupport.trimOrNull(element.getAttributeNS(null, "revocationEnabled")));
-        }
-
-        if (element.hasAttributeNS(null, "policyMappingInhibit")) {
-            builder.addPropertyValue("policyMappingInhibit",
-                    StringSupport.trimOrNull(element.getAttributeNS(null, "policyMappingInhibit")));
-        }
-
-        if (element.hasAttributeNS(null, "anyPolicyInhibit")) {
-            builder.addPropertyValue("anyPolicyInhibit",
-                    StringSupport.trimOrNull(element.getAttributeNS(null, "anyPolicyInhibit")));
-        }
-
-        final List<Element> childElems = ElementSupport.getChildElements(element, POLICY_OID_ELEMENT);
-        if (null != childElems && !childElems.isEmpty()) {
-            final List<String> initialPolicies = new ManagedList<>(childElems.size());
-            for (final Element nameElem : childElems) {
-                final String value = StringSupport.trimOrNull(nameElem.getTextContent());
-                if (null != value) {
-                    initialPolicies.add(value);
-                }
-            }
-            builder.addPropertyValue("initialPolicies", initialPolicies);
-        }
-    }
-}
diff --git a/opensaml-spring/src/main/java/org/opensaml/spring/trust/ChainingParser.java b/opensaml-spring/src/main/java/org/opensaml/spring/trust/ChainingParser.java
deleted file mode 100644
index eb8095519..000000000
--- a/opensaml-spring/src/main/java/org/opensaml/spring/trust/ChainingParser.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.spring.trust;
-
-import javax.xml.namespace.QName;
-
-import org.opensaml.spring.SecurityNamespaceHandler;
-import org.w3c.dom.Element;
-
-/**
- * Parser for trust engines of type SignatureChaining.
- */
-public class ChainingParser extends AbstractChainingParser {
-    
-    /** Schema type. */
-    public static final QName TYPE_NAME = new QName(SecurityNamespaceHandler.SECURITY_NAMESPACE, "Chaining");
-
-    /** {@inheritDoc} */
-    @Override protected Class<?> getBeanClass(final Element element) {
-        return ChainingTrustEngineFactory.class;
-    }
-}
diff --git a/opensaml-spring/src/main/java/org/opensaml/spring/trust/ChainingSignatureTrustEngineFactory.java b/opensaml-spring/src/main/java/org/opensaml/spring/trust/ChainingSignatureTrustEngineFactoryBean.java
similarity index 94%
rename from opensaml-spring/src/main/java/org/opensaml/spring/trust/ChainingSignatureTrustEngineFactory.java
rename to opensaml-spring/src/main/java/org/opensaml/spring/trust/ChainingSignatureTrustEngineFactoryBean.java
index 60fc228d1..befba7c0d 100644
--- a/opensaml-spring/src/main/java/org/opensaml/spring/trust/ChainingSignatureTrustEngineFactory.java
+++ b/opensaml-spring/src/main/java/org/opensaml/spring/trust/ChainingSignatureTrustEngineFactoryBean.java
@@ -33,7 +33,7 @@ import org.opensaml.xmlsec.signature.support.impl.ChainingSignatureTrustEngine;
  * and return a bean of type object and these cannot be injected into the trust engine. This factory just filters the
  * unsupported engines out. A warning has been issued at point of parse so no further logging is required.
  */
-public class ChainingSignatureTrustEngineFactory extends
+public class ChainingSignatureTrustEngineFactoryBean extends
         AbstractComponentAwareFactoryBean<ChainingSignatureTrustEngine> {
 
     /** The unfiltered list of putative trust engines. */
@@ -44,7 +44,7 @@ public class ChainingSignatureTrustEngineFactory extends
      * 
      * @param list the putative trust engines.
      */
-    public ChainingSignatureTrustEngineFactory(@Nonnull final List<Object> list) {
+    public ChainingSignatureTrustEngineFactoryBean(@Nonnull final List<Object> list) {
         engines = Constraint.isNotNull(list, "Engine list must be non null");
     }
 
diff --git a/opensaml-spring/src/main/java/org/opensaml/spring/trust/ChainingTrustEngineFactory.java b/opensaml-spring/src/main/java/org/opensaml/spring/trust/ChainingTrustEngineFactoryBean.java
similarity index 94%
rename from opensaml-spring/src/main/java/org/opensaml/spring/trust/ChainingTrustEngineFactory.java
rename to opensaml-spring/src/main/java/org/opensaml/spring/trust/ChainingTrustEngineFactoryBean.java
index 6f388c08b..fd1085d9b 100644
--- a/opensaml-spring/src/main/java/org/opensaml/spring/trust/ChainingTrustEngineFactory.java
+++ b/opensaml-spring/src/main/java/org/opensaml/spring/trust/ChainingTrustEngineFactoryBean.java
@@ -33,7 +33,7 @@ import org.opensaml.security.trust.impl.ChainingTrustEngine;
  * and return a bean of type object and these cannot be injected into the trust engine. This factory just filters the
  * unsupported engines out. A warning has been issued at point of parse so no further logging is required.
  */
-public class ChainingTrustEngineFactory extends
+public class ChainingTrustEngineFactoryBean extends
         AbstractComponentAwareFactoryBean<ChainingTrustEngine<?>> {
 
     /** The unfiltered list of putative trust engines. */
@@ -44,7 +44,7 @@ public class ChainingTrustEngineFactory extends
      * 
      * @param list the putative trust engines.
      */
-    public ChainingTrustEngineFactory(@Nonnull final List<Object> list) {
+    public ChainingTrustEngineFactoryBean(@Nonnull final List<Object> list) {
         engines = Constraint.isNotNull(list, "Engine list must be non null");
     }
 
diff --git a/opensaml-spring/src/main/java/org/opensaml/spring/trust/PKIXInlineValidationInfoParser.java b/opensaml-spring/src/main/java/org/opensaml/spring/trust/PKIXInlineValidationInfoParser.java
deleted file mode 100644
index b723ef00e..000000000
--- a/opensaml-spring/src/main/java/org/opensaml/spring/trust/PKIXInlineValidationInfoParser.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.spring.trust;
-
-import javax.xml.namespace.QName;
-
-import org.opensaml.spring.SecurityNamespaceHandler;
-import org.w3c.dom.Element;
-
-/**
- * Parser for <ValidationInfo type="PKIXInline">.
- * 
- * <p>
- * All of the heavy lifting is done in the super class and the associated factory bean (which gets the parameters of
- * the type is wants by virtue of Springs type coercion).
- * </p>
- */
-public class PKIXInlineValidationInfoParser extends AbstractPKIXValidationInfoParser {
-    
-    /** Element Name.*/
-    public static final QName SCHEMA_TYPE = new QName(SecurityNamespaceHandler.SECURITY_NAMESPACE, "PKIXInline");
-    
-    /** {@inheritDoc} */
-    @Override protected Class<?> getBeanClass(final Element element) {
-        return PKIXInlineValidationInfoFactoryBean.class;
-    }
-}
diff --git a/opensaml-spring/src/main/java/org/opensaml/spring/trust/PKIXResourceValidationInfoParser.java b/opensaml-spring/src/main/java/org/opensaml/spring/trust/PKIXResourceValidationInfoParser.java
deleted file mode 100644
index e0bac86ea..000000000
--- a/opensaml-spring/src/main/java/org/opensaml/spring/trust/PKIXResourceValidationInfoParser.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.spring.trust;
-
-import javax.xml.namespace.QName;
-
-import org.opensaml.spring.SecurityNamespaceHandler;
-import org.w3c.dom.Element;
-
-/**
- * Parser for <ValidationInfo type="PKIXFilesystem"> and <ValidationInfo type="PKIXResourceBacked">.
- * 
- * <p>
- * All of the heavy lifting is done in the super class and the associated factory bean (which gets the parameters of the
- * type is wants by virtue of Springs type coercion).
- * </p>
- */
-public class PKIXResourceValidationInfoParser extends AbstractPKIXValidationInfoParser {
-
-    /** Schema type for PKIXResourceBackedValidationInformation. */
-    public static final QName TYPE_NAME_RESOURCE = new QName(SecurityNamespaceHandler.SECURITY_NAMESPACE,
-            "PKIXResourceBacked");
-
-    /** {@inheritDoc} */
-    @Override protected Class<?> getBeanClass(final Element element) {
-        return PKIXResourceValidationInfoFactoryBean.class;
-    }
-}
diff --git a/opensaml-spring/src/main/java/org/opensaml/spring/trust/PKIXValidationOptionsParser.java b/opensaml-spring/src/main/java/org/opensaml/spring/trust/PKIXValidationOptionsParser.java
deleted file mode 100644
index fe32c7348..000000000
--- a/opensaml-spring/src/main/java/org/opensaml/spring/trust/PKIXValidationOptionsParser.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.spring.trust;
-
-import javax.xml.namespace.QName;
-
-import org.opensaml.security.x509.PKIXValidationOptions;
-import org.opensaml.spring.SecurityNamespaceHandler;
-import org.springframework.beans.factory.support.BeanDefinitionBuilder;
-import org.springframework.beans.factory.xml.ParserContext;
-import org.w3c.dom.Element;
-
-import net.shibboleth.ext.spring.util.AbstractCustomBeanDefinitionParser;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
-
-/**
- * A Parser for the < ValidationOptions > within a StaticPKIXSignature.
- */
-public class PKIXValidationOptionsParser extends AbstractCustomBeanDefinitionParser {
-
-    /** Validation Options. */
-    public static final QName ELEMENT_NAME = new QName(SecurityNamespaceHandler.SECURITY_NAMESPACE,
-            "ValidationOptions");
-
-    /** {@inheritDoc} */
-    @Override protected Class<?> getBeanClass(final Element element) {
-        return PKIXValidationOptions.class;
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void doParse(final Element element, final ParserContext parserContext,
-            final BeanDefinitionBuilder builder) {
-        super.doParse(element, parserContext, builder);
-
-        if (element.hasAttributeNS(null, "processEmptyCRLs")) {
-            builder.addPropertyValue("processEmptyCRLs",
-                    StringSupport.trimOrNull(element.getAttributeNS(null, "processEmptyCRLs")));
-        }
-
-        if (element.hasAttributeNS(null, "processExpiredCRLs")) {
-            builder.addPropertyValue("processExpiredCRLs",
-                    StringSupport.trimOrNull(element.getAttributeNS(null, "processExpiredCRLs")));
-        }
-
-        if (element.hasAttributeNS(null, "processCredentialCRLs")) {
-            builder.addPropertyValue("processCredentialCRLs",
-                    StringSupport.trimOrNull(element.getAttributeNS(null, "processCredentialCRLs")));
-        }
-
-        if (element.hasAttributeNS(null, "defaultVerificationDepth")) {
-            builder.addPropertyValue("defaultVerificationDepth",
-                    StringSupport.trimOrNull(element.getAttributeNS(null, "defaultVerificationDepth")));
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override protected boolean shouldGenerateId() {
-        return true;
-    }
-
-}
diff --git a/opensaml-spring/src/main/java/org/opensaml/spring/trust/SignatureChainingParser.java b/opensaml-spring/src/main/java/org/opensaml/spring/trust/SignatureChainingParser.java
deleted file mode 100644
index dbfc6f9e5..000000000
--- a/opensaml-spring/src/main/java/org/opensaml/spring/trust/SignatureChainingParser.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.spring.trust;
-
-import javax.xml.namespace.QName;
-
-import org.opensaml.spring.SecurityNamespaceHandler;
-import org.w3c.dom.Element;
-
-/**
- * Parser for trust engines of type SignatureChaining.
- */
-public class SignatureChainingParser extends AbstractChainingParser {
-
-    /** Schema type. */
-    public static final QName TYPE_NAME = new QName(SecurityNamespaceHandler.SECURITY_NAMESPACE,
-            "SignatureChaining");
-
-    /** {@inheritDoc} */
-    @Override protected Class<?> getBeanClass(final Element element) {
-        return ChainingSignatureTrustEngineFactory.class;
-    }
-}
diff --git a/opensaml-spring/src/main/java/org/opensaml/spring/trust/StaticExplicitKeyParser.java b/opensaml-spring/src/main/java/org/opensaml/spring/trust/StaticExplicitKeyParser.java
deleted file mode 100644
index 52ddda134..000000000
--- a/opensaml-spring/src/main/java/org/opensaml/spring/trust/StaticExplicitKeyParser.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.spring.trust;
-
-import java.util.List;
-
-import javax.xml.namespace.QName;
-
-import net.shibboleth.ext.spring.util.SpringSupport;
-import net.shibboleth.utilities.java.support.xml.ElementSupport;
-
-import org.opensaml.security.credential.impl.StaticCredentialResolver;
-import org.opensaml.security.trust.impl.ExplicitKeyTrustEngine;
-import org.opensaml.spring.SecurityNamespaceHandler;
-import org.springframework.beans.factory.support.BeanDefinitionBuilder;
-import org.springframework.beans.factory.xml.ParserContext;
-import org.w3c.dom.Element;
-
-/**
- * Parser for trust engines of type StaticExplicitKey TrustEngine.
- */
-public class StaticExplicitKeyParser extends AbstractTrustEngineParser {
-
-    /** Schema type. */
-    public static final QName TYPE_NAME =
-            new QName(SecurityNamespaceHandler.SECURITY_NAMESPACE, "StaticExplicitKey");
-
-    /** {@inheritDoc} */
-    @Override protected Class<?> getBeanClass(final Element element) {
-        return ExplicitKeyTrustEngine.class;
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void doParse(final Element element, final ParserContext parserContext,
-            final BeanDefinitionBuilder builder) {
-        super.doParse(element, parserContext, builder);
-
-        final List<Element> credentials =
-                ElementSupport.getChildElements(element, SecurityNamespaceHandler.CREDENTIAL_ELEMENT_NAME);
-
-        final BeanDefinitionBuilder resolver =
-                BeanDefinitionBuilder.genericBeanDefinition(StaticCredentialResolver.class);
-        resolver.addConstructorArgValue(SpringSupport.parseCustomElements(credentials, parserContext, resolver));
-
-        builder.addConstructorArgValue(resolver.getBeanDefinition());
-    }
-}
diff --git a/opensaml-spring/src/main/java/org/opensaml/spring/trust/StaticExplicitKeySignatureParser.java b/opensaml-spring/src/main/java/org/opensaml/spring/trust/StaticExplicitKeySignatureParser.java
deleted file mode 100644
index ab5fd8676..000000000
--- a/opensaml-spring/src/main/java/org/opensaml/spring/trust/StaticExplicitKeySignatureParser.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.spring.trust;
-
-import java.util.List;
-
-import javax.xml.namespace.QName;
-
-import net.shibboleth.ext.spring.util.SpringSupport;
-import net.shibboleth.utilities.java.support.xml.ElementSupport;
-
-import org.opensaml.security.credential.impl.StaticCredentialResolver;
-import org.opensaml.spring.SecurityNamespaceHandler;
-import org.opensaml.xmlsec.config.impl.DefaultSecurityConfigurationBootstrap;
-import org.opensaml.xmlsec.signature.support.impl.ExplicitKeySignatureTrustEngine;
-import org.springframework.beans.factory.support.BeanDefinitionBuilder;
-import org.springframework.beans.factory.xml.ParserContext;
-import org.w3c.dom.Element;
-
-/**
- * Parser for trust engines of type StaticExplicitKeySignature.
- */
-public class StaticExplicitKeySignatureParser extends AbstractTrustEngineParser {
-
-    /** Schema type. */
-    public static final QName TYPE_NAME =
-            new QName(SecurityNamespaceHandler.SECURITY_NAMESPACE, "StaticExplicitKeySignature");
-
-    /** {@inheritDoc} */
-    @Override protected Class<?> getBeanClass(final Element element) {
-        return ExplicitKeySignatureTrustEngine.class;
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void doParse(final Element element, final ParserContext parserContext,
-            final BeanDefinitionBuilder builder) {
-        super.doParse(element, parserContext, builder);
-
-        final List<Element> credentials =
-                ElementSupport.getChildElements(element, SecurityNamespaceHandler.CREDENTIAL_ELEMENT_NAME);
-
-        final BeanDefinitionBuilder resolver =
-                BeanDefinitionBuilder.genericBeanDefinition(StaticCredentialResolver.class);
-        resolver.addConstructorArgValue(SpringSupport.parseCustomElements(credentials, parserContext, resolver));
-
-        builder.addConstructorArgValue(resolver.getBeanDefinition());
-
-        builder.addConstructorArgValue(DefaultSecurityConfigurationBootstrap
-                .buildBasicInlineKeyInfoCredentialResolver());
-    }
-}
diff --git a/opensaml-spring/src/main/java/org/opensaml/spring/trust/StaticPKIXSignatureParser.java b/opensaml-spring/src/main/java/org/opensaml/spring/trust/StaticPKIXSignatureParser.java
deleted file mode 100644
index 21f527f61..000000000
--- a/opensaml-spring/src/main/java/org/opensaml/spring/trust/StaticPKIXSignatureParser.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.spring.trust;
-
-import javax.xml.namespace.QName;
-
-import org.opensaml.spring.SecurityNamespaceHandler;
-import org.opensaml.xmlsec.config.impl.DefaultSecurityConfigurationBootstrap;
-import org.opensaml.xmlsec.signature.support.impl.PKIXSignatureTrustEngine;
-import org.springframework.beans.factory.support.BeanDefinitionBuilder;
-import org.springframework.beans.factory.xml.ParserContext;
-import org.w3c.dom.Element;
-
-/**
- * Parser for trust engines of type StaticPKIXKeySignature.
- */
-public class StaticPKIXSignatureParser extends AbstractStaticPKIXParser {
-
-    /** Schema type. */
-    public static final QName TYPE_NAME = new QName(SecurityNamespaceHandler.SECURITY_NAMESPACE,
-            "StaticPKIXSignature");
-
-    /** {@inheritDoc} */
-    @Override protected Class<?> getBeanClass(final Element element) {
-        return PKIXSignatureTrustEngine.class;
-    }
-
-    /**
-     * {@inheritDoc}
-     * 
-     * <p>We call into
-     * {@link 
-     * PKIXSignatureTrustEngine#PKIXSignatureTrustEngine(
-     * org.opensaml.security.x509.PKIXValidationInformationResolver, 
-     * org.opensaml.xmlsec.keyinfo.KeyInfoCredentialResolver, 
-     * org.opensaml.security.x509.PKIXTrustEvaluator, 
-     * org.opensaml.security.x509.impl.X509CredentialNameEvaluator)}.
-     * </p>
-     */
-    @Override protected void doParse(final Element element, final ParserContext parserContext,
-            final BeanDefinitionBuilder builder) {
-        super.doParse(element, parserContext, builder);
-
-        builder.addConstructorArgValue(getPKIXValidationInformationResolver(element, parserContext));
-        builder.addConstructorArgValue(DefaultSecurityConfigurationBootstrap
-                .buildBasicInlineKeyInfoCredentialResolver());
-        builder.addConstructorArgValue(getPKIXTrustEvaluator(element, parserContext));
-        builder.addConstructorArgValue(getX509CredentialNameEvaluator(element, parserContext));
-    }
-
-}
diff --git a/opensaml-spring/src/main/java/org/opensaml/spring/trust/StaticPKIXX509CredentialParser.java b/opensaml-spring/src/main/java/org/opensaml/spring/trust/StaticPKIXX509CredentialParser.java
deleted file mode 100644
index afd63585e..000000000
--- a/opensaml-spring/src/main/java/org/opensaml/spring/trust/StaticPKIXX509CredentialParser.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.spring.trust;
-
-import javax.xml.namespace.QName;
-
-import org.opensaml.security.x509.impl.PKIXX509CredentialTrustEngine;
-import org.opensaml.spring.SecurityNamespaceHandler;
-import org.springframework.beans.factory.support.BeanDefinitionBuilder;
-import org.springframework.beans.factory.xml.ParserContext;
-import org.w3c.dom.Element;
-
-/**
- * Parser for trust engines of type StaticPKIXX509Credential.
- */
-public class StaticPKIXX509CredentialParser extends AbstractStaticPKIXParser {
-
-    /** Schema type. */
-    public static final QName TYPE_NAME = new QName(SecurityNamespaceHandler.SECURITY_NAMESPACE,
-            "StaticPKIXX509Credential");
-
-    /** {@inheritDoc} */
-    @Override protected Class<?> getBeanClass(final Element element) {
-        return PKIXX509CredentialTrustEngine.class;
-    }
-
-    /**
-     * {@inheritDoc}
-     * 
-     * <p>
-     * We call into
-     * {@link PKIXX509CredentialTrustEngine#PKIXX509CredentialTrustEngine(
-     *   org.opensaml.security.x509.PKIXValidationInformationResolver,
-     *   org.opensaml.security.x509.PKIXTrustEvaluator,
-     *   org.opensaml.security.x509.impl.X509CredentialNameEvaluator)}.
-     * </p>
-     */
-    @Override protected void doParse(final Element element, final ParserContext parserContext,
-            final BeanDefinitionBuilder builder) {
-        super.doParse(element, parserContext, builder);
-
-        builder.addConstructorArgValue(getPKIXValidationInformationResolver(element, parserContext));
-        builder.addConstructorArgValue(getPKIXTrustEvaluator(element, parserContext));
-        builder.addConstructorArgValue(getX509CredentialNameEvaluator(element, parserContext));
-    }
-
-}
diff --git a/opensaml-spring/src/main/resources/META-INF/spring.handlers b/opensaml-spring/src/main/resources/META-INF/spring.handlers
deleted file mode 100644
index 2f46adcc7..000000000
--- a/opensaml-spring/src/main/resources/META-INF/spring.handlers
+++ /dev/null
@@ -1 +0,0 @@
-urn\:mace\:shibboleth\:2.0\:security            = org.opensaml.spring.SecurityNamespaceHandler
diff --git a/opensaml-spring/src/main/resources/META-INF/spring.schemas b/opensaml-spring/src/main/resources/META-INF/spring.schemas
deleted file mode 100644
index c71f89d10..000000000
--- a/opensaml-spring/src/main/resources/META-INF/spring.schemas
+++ /dev/null
@@ -1,5 +0,0 @@
-# Modern variant
-http\://shibboleth.net/schema/idp/shibboleth-security.xsd = schema/shibboleth-security.xsd
-
-# Legacy variant
-classpath\:/schema/shibboleth-2.0-security.xsd = schema/shibboleth-security.xsd
diff --git a/opensaml-spring/src/main/resources/schema/shibboleth-security.xsd b/opensaml-spring/src/main/resources/schema/shibboleth-security.xsd
deleted file mode 100644
index 95ad23fb0..000000000
--- a/opensaml-spring/src/main/resources/schema/shibboleth-security.xsd
+++ /dev/null
@@ -1,612 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:sec="urn:mace:shibboleth:2.0:security" targetNamespace="urn:mace:shibboleth:2.0:security" elementFormDefault="qualified">
-        
-    <!-- CREDENTIAL RELATED OBJECTS -->
-    <element name="Credential" type="sec:CredentialType"/>
-
-    <complexType name="X509Inline">
-        <annotation>
-            <documentation>
-                Allows credentials to be components to be specified as content within the child elements. Keys,
-                Certificates, and CRLs may be PKCS#12, DER, or PEM encoded and may be encrypted or not.
-            </documentation>
-        </annotation>
-        <complexContent>
-            <extension base="sec:X509Credential"/>
-        </complexContent>
-    </complexType>
-
-    <complexType name="X509ResourceBacked">
-        <annotation>
-            <documentation>
-                Allows credential components to be loaded from a Spring Resource. Keys, Certificates, and CRLs may be
-                PKCS#12, DER, or PEM encoded and may be encrypted or not.
-            </documentation>
-        </annotation>
-        <complexContent>
-            <extension base="sec:X509Credential"/>
-        </complexContent>
-    </complexType>
-
-    <complexType name="X509Credential" abstract="true">
-        <annotation>
-            <documentation>
-                Defines the components of an X.509 credential.
-            </documentation>
-        </annotation>
-        <complexContent>
-            <extension base="sec:CredentialType">
-                <sequence>
-                    <element name="PrivateKey" minOccurs="0">
-                        <annotation>
-                            <documentation>Credential's RSA/DSA private key.</documentation>
-                        </annotation>
-                    </element>
-                    <element name="Certificate" minOccurs="1" maxOccurs="unbounded">
-                        <annotation>
-                            <documentation>
-                                Certificate associated with the credential. More than one certificate
-                                may be present within a single element, if the encoding form used allows
-                                it, or multiple certificate elements may be used, or both.
-                            </documentation>
-                        </annotation>
-                    </element>
-                    <element name="CRL" minOccurs="0" maxOccurs="unbounded">
-                        <annotation>
-                            <documentation>
-                                Certificate revocation list associated with the Credential. More than
-                                one CRL may be present within a single element, if the encoding form
-                                used allows it, or multiple CRL elements may be used, or both.
-                            </documentation>
-                        </annotation>
-                    </element>
-                </sequence>
-            </extension>
-        </complexContent>
-    </complexType>
-    
-    <complexType name="BasicInline">
-        <annotation>
-            <documentation>
-                Allows credentials to be components to be specified as content within the child elements.
-                Keys may be PKCS#12, DER, or PEM encoded and may be encrypted or not.
-            </documentation>
-        </annotation>
-        <complexContent>
-            <extension base="sec:BasicCredential"/>
-        </complexContent>
-    </complexType>
-    
-    <complexType name="BasicResourceBacked">
-        <annotation>
-            <documentation>
-                Allows credential components to be specified by Spring Resource specification.
-                Keys may be PKCS#12, DER, or PEM encoded and may be encrypted or not.
-            </documentation>
-        </annotation>
-        <complexContent>
-            <extension base="sec:BasicCredential"/>
-        </complexContent>
-    </complexType>
-    
-    <complexType name="BasicCredential" abstract="true">
-        <annotation>
-            <documentation>
-                Defines the components of a basic credential containing either a 
-                public key and optional private key, or a symmetric (secret) key.
-            </documentation>
-        </annotation>
-        <complexContent>
-            <extension base="sec:CredentialType">
-                <sequence>
-                    <choice>
-                        <element name="SecretKey">
-                            <annotation>
-                                <documentation>Credential's symmetric key.</documentation>
-                            </annotation>
-                            <complexType>
-                                <simpleContent>
-                                    <extension base="string">
-                                        <attribute name="algorithm" type="sec:string" use="required">
-                                            <annotation>
-                                                <documentation>
-                                                    The JCA key algorithm identifier.
-                                                </documentation>
-                                            </annotation>
-                                        </attribute>
-                                        <attribute name="encoding" use="required">
-                                            <annotation>
-                                                <documentation>
-                                                    The encoded format of the key data. Defaults to: base64.
-                                                </documentation>
-                                            </annotation>
-                                            <simpleType>
-                                                <restriction base="string">
-                                                    <enumeration value="binary" />
-                                                    <enumeration value="hex" />
-                                                    <enumeration value="base64" />
-                                                </restriction>
-                                            </simpleType>
-                                        </attribute>
-                                    </extension>
-                                </simpleContent>
-                            </complexType>
-                        </element>
-                        <sequence>
-                            <element name="PrivateKey" minOccurs="0">
-                                <annotation>
-                                    <documentation>Credential's RSA/DSA private key.</documentation>
-                                </annotation>
-                            </element>
-                            <element name="PublicKey">
-                                <annotation>
-                                    <documentation>Credential's RSA/DSA public key.</documentation>
-                                </annotation>
-                            </element>
-                        </sequence>
-                    </choice>
-                </sequence>
-            </extension>
-        </complexContent>
-    </complexType>
-
-    <complexType name="CredentialType" abstract="true">
-        <annotation>
-            <documentation>Base type for credential information.</documentation>
-        </annotation>
-        <sequence>
-            <element name="KeyName" type="sec:string" minOccurs="0" maxOccurs="unbounded">
-                <annotation>
-                    <documentation>Name(s) of the key this credential represents.</documentation>
-                </annotation>
-            </element>
-        </sequence>
-        <attribute name="id" type="sec:string">
-            <annotation>
-                <documentation>Unique id for this credential.</documentation>
-            </annotation>
-        </attribute>
-        <attribute name="entityID" type="sec:string">
-            <annotation>
-                <documentation>Identifier for the entity which owns this credential.</documentation>
-            </annotation>
-        </attribute>
-        <attribute name="usage" type="sec:CredentialUsageType">
-            <annotation>
-                <documentation>
-                    Usage type for this credential. Acceptable values are "Encryption" or "Signing". If no usage type is
-                    given components may choose to use the credential for either encryption or signing operations.
-                </documentation>
-            </annotation>
-        </attribute>
-    </complexType>
-
-    <simpleType name="CredentialUsageType">
-        <restriction base="string">
-            <enumeration value="Encryption"/>
-            <enumeration value="Signing"/>
-        </restriction>
-    </simpleType>
-
-    <complexType name="PasswordBearingString">
-        <simpleContent>
-            <extension base="string">
-                <attribute name="password" type="string">
-                    <annotation>
-                        <documentation>
-                            Password associated with the resource identified by elements of this type.
-                        </documentation>
-                    </annotation>
-                </attribute>
-            </extension>
-        </simpleContent>
-    </complexType>
-    
-    <!-- VALIDATION RELATED OBJECTS, FOR EXAMPLE PKIX INFO -->
-    <element name="ValidationInfo" type="sec:ValidationInfoType"/>
-    
-    <element name="ValidationOptions" type="sec:ValidationOptionsType"/>
-    
-    <complexType name="PKIXInline">
-        <annotation>
-            <documentation>
-                Allows PKIX validation info components to be specified as content within the child elements.
-                Certificates and CRLs may be PKCS#12, DER, or PEM encoded and may be encrypted or not.
-            </documentation>
-        </annotation>
-        <complexContent>
-            <extension base="sec:PKIXValidationInfoType"/>
-        </complexContent>
-    </complexType>
-    
-    <complexType name="PKIXResourceBacked">
-        <annotation>
-            <documentation>
-                Allows PKIX validation info components to be specified by a Spring Resource specification.
-                Certificates, and CRLs may be PKCS#12, DER, or PEM encoded and may be encrypted or not.
-            </documentation>
-        </annotation>
-        <complexContent>
-            <extension base="sec:PKIXValidationInfoType"/>
-        </complexContent>
-    </complexType>
-    
-    <complexType name="PKIXValidationInfoType" abstract="true">
-        <annotation>
-            <documentation>
-                Defines the components of a set of PKIX validation information.
-            </documentation>
-        </annotation>
-        <complexContent>
-            <extension base="sec:ValidationInfoType">
-                <sequence>
-                    <element name="Certificate" minOccurs="0" maxOccurs="unbounded">
-                        <annotation>
-                            <documentation>
-                                Trusted certificates, typically of root and intermediate CA's , which are used
-                                as input to the PKIX validation process.
-                            </documentation>
-                        </annotation>
-                    </element>
-                    <element name="CRL" minOccurs="0" maxOccurs="unbounded">
-                        <annotation>
-                            <documentation>
-                                Certificate revocation lists which are used as input to the PKIX validation process.
-                            </documentation>
-                        </annotation>
-                    </element>
-                </sequence>
-                <attribute name="verifyDepth" type="sec:string">
-                    <annotation>
-                        <documentation>
-                            The maximum path verification depth to consider when constructing a PKIX cert path.
-                        </documentation>
-                    </annotation>
-                </attribute>
-            </extension>
-        </complexContent>
-    </complexType>
-    
-    <complexType name="ValidationInfoType" abstract="true">
-        <annotation>
-            <documentation>Base type for validation information.</documentation>
-        </annotation>
-        <attribute name="id" type="sec:string" use="required">
-            <annotation>
-                <documentation>Unique id for this validation info set.</documentation>
-            </annotation>
-        </attribute>
-    </complexType>
-    
-    <complexType name="ValidationOptionsType">
-        <annotation>
-            <documentation>Type for basic PKIX validation options set for PKIX trust engines.</documentation>
-        </annotation>
-        <attribute name="processEmptyCRLs" type="sec:string">
-            <annotation>
-                <documentation>Flag as to whether empty CRL's will be processed. Defaults to true.</documentation>
-            </annotation>
-        </attribute>
-        <attribute name="processExpiredCRLs" type="sec:string">
-            <annotation>
-                <documentation>Flag as to whether expired CRL's will be processed. Defaults to true.</documentation>
-            </annotation>
-        </attribute>
-        <attribute name="processCredentialCRLs" type="sec:string">
-            <annotation>
-                <documentation>
-                    Flag as to whether CRL's supplied in the untrusted credential 
-                    being evaluated will be processed. Defaults to true.
-                </documentation>
-            </annotation>
-        </attribute>
-        <attribute name="defaultVerificationDepth" type="sec:string">
-            <annotation>
-                <documentation>Default PKIX path verification depth. Defaults to 1.</documentation>
-            </annotation>
-        </attribute>
-    </complexType>
-    
-    <complexType name="CertPathValidationOptionsType">
-        <annotation>
-            <documentation>
-                Type specialization for PKIX validation options set for PKIX trust engines 
-                using the Java CertPath API.
-            </documentation>
-        </annotation>
-        <complexContent>
-            <extension base="sec:ValidationOptionsType">
-                <sequence>
-                    <element name="PolicyOID" type="sec:string" minOccurs="0" maxOccurs="unbounded">
-                        <annotation>
-                            <documentation>
-                                Sets the initial policy identifiers (OID strings) for the underlying CertPath Provider,
-                                i.e. those policies that are acceptable to the certificate user.
-                                See also RFC 5280, section 6.1.1 (c).
-                                If no policy identifier is specified, any policy is considered acceptable.
-                            </documentation>
-                        </annotation>
-                    </element>
-                </sequence>
-                <attribute name="forceRevocationEnabled" type="sec:string">
-                    <annotation>
-                        <documentation>
-                            If true, the revocation behavior of the underlying CertPath provider will be forced to the
-                            value supplied by the revocationEnabled attribute. If false, the revocation behavior
-                            of the underlying provider will be determined by the PKIXTrustEvaluator implementation.
-                            Defaults to false.
-                        </documentation>
-                    </annotation>
-                </attribute>
-                <attribute name="revocationEnabled" type="sec:string">
-                    <annotation>
-                        <documentation>
-                            If the attribute forceRevocationEnabled is true, the revocation behavior of the underlying CertPath
-                            Provider will be forced to this value. If the former is false, the revocation behavior
-                            of the underlying provider will be determined by the PKIXTrustEvaluator implementation.
-                            Defaults to true.
-                        </documentation>
-                    </annotation>
-                </attribute>
-                <attribute name="policyMappingInhibit" type="sec:string">
-                    <annotation>
-                        <documentation>
-                            Sets the policy mapping inhibited flag for the underlying CertPath Provider.
-                            See also RFC 5280, section 6.1.1 (e).
-                            Defaults to false.
-                        </documentation>
-                    </annotation>
-                </attribute>
-                <attribute name="anyPolicyInhibit" type="sec:string">
-                    <annotation>
-                        <documentation>
-                            Sets the any policy inhibited flag for the underlying CertPath Provider.
-                            See also RFC 5280, section 6.1.1 (g).
-                            Defaults to false.
-                        </documentation>
-                    </annotation>
-                </attribute>
-            </extension>
-            </complexContent>
-    </complexType>
-    
-    <!-- TRUST ENGINE RELATED OBJECTS -->
-    <element name="TrustEngine" type="sec:TrustEngineType"/>
-    
-    <complexType name="Chaining">
-        <annotation>
-            <documentation>
-                Trust engine which chains together other trust engine instances, evaluating a token
-                against each engine in chain order.
-                
-                If the token to be evaluated can be established as trusted by one member of the chain,
-                then the token is trusted.  Otherwise it is evaluated as untrusted.
-                
-                Trust chain members must all evaluate tokens of a compatible type,
-                for example a Credential or Signature.
-            </documentation>
-        </annotation>
-        <complexContent>
-            <extension base="sec:TrustEngineType">
-                <choice minOccurs="1" maxOccurs="unbounded">
-                    <element ref="sec:TrustEngine"/>
-                    <element name="TrustEngineRef">
-                        <annotation>
-                            <documentation>Reference to a trust engine.</documentation>
-                        </annotation>
-                        <complexType>
-                            <attribute name="ref">
-                                <annotation>
-                                    <documentation>Bean reference id for a trust engine declared elsewhere.</documentation>
-                                </annotation>
-                            </attribute>
-                        </complexType>
-                    </element>
-                </choice>
-            </extension>
-        </complexContent>
-    </complexType>
-    
-    <complexType name="SignatureChaining">
-        <annotation>
-            <documentation>
-                Trust engine which chains together other signature trust engine instances, evaluating the signature
-                against each engine in chain order.
-                
-                If the signature to be evaluated can be established as trusted by one member of the chain,
-                then the signature is trusted.  Otherwise it is evaluated as untrusted.
-                
-                Trust chain members must all evaluate signatures.
-            </documentation>
-        </annotation>
-        <complexContent>
-            <extension base="sec:TrustEngineType">
-                <choice minOccurs="1" maxOccurs="unbounded">
-                    <element ref="sec:TrustEngine"/>
-                    <element name="TrustEngineRef">
-                        <annotation>
-                            <documentation>Reference to a trust engine.</documentation>
-                        </annotation>
-                        <complexType>
-                            <attribute name="ref">
-                                <annotation>
-                                    <documentation>Bean reference id for a trust engine declared elsewhere.</documentation>
-                                </annotation>
-                            </attribute>
-                        </complexType>
-                    </element>
-                </choice>
-            </extension>
-        </complexContent>
-    </complexType>
-    
-    <!-- Trust engines which use resolvers configured via static information -->
-    <complexType name="StaticExplicitKey">
-        <annotation>
-            <documentation>
-                Trust engine used to validate a key against statically-configured trusted keys.
-            </documentation>
-        </annotation>
-        <complexContent>
-            <extension base="sec:TrustEngineType">
-                <sequence>
-                    <element ref="sec:Credential" minOccurs="1" maxOccurs="unbounded">
-                        <annotation>
-                            <documentation>
-                                A trusted credential to be included in the static trusted credential set.
-                            </documentation>
-                        </annotation>
-                    </element>
-                </sequence>
-            </extension>
-        </complexContent>
-    </complexType>
-    
-    <complexType name="StaticPKIXX509Credential">
-        <annotation>
-            <documentation>
-                Trust engine used to validate an X509 credential against statically-configured PKIX information.
-            </documentation>
-        </annotation>
-        <complexContent>
-            <extension base="sec:TrustEngineType">
-                <sequence>
-                    <element name="TrustedName" type="sec:string" minOccurs="0" maxOccurs="unbounded">
-                        <annotation>
-                            <documentation>
-                                Specifies a trusted name against which the target entity 
-                                certificate's public key must be bound for trust processing to be successful.
-                                
-                                Supported trusted name formats are:
-                                1) Subject DN in RFC 2253 or RFC 1779 format
-                                2) CN component of subject DN
-                                3) Subject alt names (DNS and URI types)
-                                
-                                If multiple instances of this element are present, trust processing
-                                is successful if the target entity certificate matches at least one of them.
-                                
-                                Trusted names are ignored and therefore optional if trustedNameCheckEnabled = false.
-                            </documentation>
-                        </annotation>
-                    </element>
-                    <element ref="sec:ValidationInfo" minOccurs="1" maxOccurs="unbounded">
-                        <annotation>
-                            <documentation>
-                                PKIX validation info against which to validate an X509 credential.
-                            </documentation>
-                        </annotation>
-                    </element>
-                    <element ref="sec:ValidationOptions" minOccurs="0" maxOccurs="1">
-                        <annotation>
-                            <documentation>
-                                Set of options to influence PKIX trust validation processing.
-                            </documentation>
-                        </annotation>
-                    </element>
-                </sequence>
-                <attribute name="trustedNameCheckEnabled" type="sec:string">
-                    <annotation>
-                        <documentation>
-                            If true, the candidate X509Crednetial's certificate must match one of the 
-                            names indicated via the TrustedName child elements.
-                            Defaults to true.
-                        </documentation>
-                    </annotation>
-                </attribute>
-            </extension>
-        </complexContent>
-    </complexType>
-    
-    <complexType name="StaticExplicitKeySignature">
-        <annotation>
-            <documentation>
-                Trust engine used to validate a signature against statically-configured trusted keys.
-            </documentation>
-        </annotation>
-        <complexContent>
-            <extension base="sec:TrustEngineType">
-                <sequence>
-                    <element ref="sec:Credential" minOccurs="1" maxOccurs="unbounded">
-                        <annotation>
-                            <documentation>
-                                A trusted credential to be included in the static trusted credential set.
-                            </documentation>
-                        </annotation>
-                    </element>
-                </sequence>
-            </extension>
-        </complexContent>
-    </complexType>
-    
-    <complexType name="StaticPKIXSignature">
-        <annotation>
-            <documentation>
-                Trust engine used to validate signatures against statically-configured PKIX information.
-            </documentation>
-        </annotation>
-        <complexContent>
-            <extension base="sec:TrustEngineType">
-                <sequence>
-                    <element name="TrustedName" type="sec:string" minOccurs="0" maxOccurs="unbounded">
-                        <annotation>
-                            <documentation>
-                                Specifies a trusted name against which the target entity 
-                                certificate's public key must be bound for trust processing to be successful.
-                                
-                                Supported trusted name formats are:
-                                1) Subject DN in RFC 2253 or RFC 1779 format
-                                2) CN component of subject DN
-                                3) Subject alt names (DNS and URI types)
-                                
-                                If multiple instances of this element are present, trust processing
-                                is successful if the target entity certificate matches at least one of them.
-                                
-                                Trusted names are ignored and therefore optional if trustedNameCheckEnabled=false.
-                            </documentation>
-                        </annotation>
-                    </element>
-                    <element ref="sec:ValidationInfo" minOccurs="1" maxOccurs="unbounded">
-                        <annotation>
-                            <documentation>
-                                PKIX validation info against which to validate a signature.
-                            </documentation>
-                        </annotation>
-                    </element>
-                    <element ref="sec:ValidationOptions" minOccurs="0" maxOccurs="1">
-                        <annotation>
-                            <documentation>
-                                Set of options to influence PKIX trust validation processing.
-                            </documentation>
-                        </annotation>
-                    </element>
-                </sequence>
-                <attribute name="trustedNameCheckEnabled" type="sec:string">
-                    <annotation>
-                        <documentation>
-                            If true, the candidate X509Crednetial's certificate must match one of the 
-                            names indicated via the TrustedName child elements.
-                            Defaults to true.
-                        </documentation>
-                    </annotation>
-                </attribute>
-            </extension>
-        </complexContent>
-    </complexType>
-    
-    <complexType name="TrustEngineType" abstract="true">
-        <attribute name="id" type="sec:string" use="required">
-            <annotation>
-                <documentation>
-                    Unique ID of the trust engine.
-                </documentation>
-            </annotation>
-        </attribute>
-    </complexType>
-
-    <simpleType name="string">
-        <restriction base="string">
-            <minLength value="1"/>
-        </restriction>
-    </simpleType>
-    
-</schema>
diff --git a/opensaml-spring/src/test/java/org/opensaml/spring/credential/BasicInlineParserTest.java b/opensaml-spring/src/test/java/org/opensaml/spring/credential/BasicInlineParserTest.java
deleted file mode 100644
index d4c93abda..000000000
--- a/opensaml-spring/src/test/java/org/opensaml/spring/credential/BasicInlineParserTest.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.spring.credential;
-
-import java.io.IOException;
-
-import javax.crypto.SecretKey;
-
-import org.opensaml.security.credential.BasicCredential;
-import org.opensaml.security.credential.Credential;
-import org.opensaml.spring.AbstractSecurityParserTest;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-/**
- * test parsing Basic Inline Credentials
- */
- at SuppressWarnings("javadoc")
-public class BasicInlineParserTest extends AbstractSecurityParserTest {
-
-    @Test public void publicOnly() throws IOException {
-        final BasicCredential credential =
-                (BasicCredential) getBean(Credential.class, "credential/inlinePublicOnly.xml");
-
-        Assert.assertNull(credential.getPrivateKey());
-    }
-/*    
-    @Test(expectedExceptions={BeanCreationException.class,}) public void wrongCert() throws IOException {
-        getBean(Credential.class, true, "credential/inlineWrongCert.xml");
-    }
-  */  
-    @Test public void publicPrivate() throws IOException {
-        final BasicCredential credential =
-                (BasicCredential) getBean(Credential.class, "credential/inlinePublicPrivate.xml");
-        Assert.assertNotNull(credential.getPrivateKey());
-
-    }
-    
-    @Test public void secretBase64() throws IOException {
-        final BasicCredential credential =
-                (BasicCredential) getBean(Credential.class, "credential/secretKeyAESBase64.xml");
-        Assert.assertNotNull(credential.getSecretKey());
-        SecretKey key = credential.getSecretKey();
-        Assert.assertEquals(key.getAlgorithm(), "AES");
-    }
-    
-    @Test public void secretHex() throws IOException {
-        final BasicCredential credential =
-                (BasicCredential) getBean(Credential.class, "credential/secretKeyAESHex.xml");
-        Assert.assertNotNull(credential.getSecretKey());
-        SecretKey key = credential.getSecretKey();
-        Assert.assertEquals(key.getAlgorithm(), "AES");
-    }
-    
-}
\ No newline at end of file
diff --git a/opensaml-spring/src/test/java/org/opensaml/spring/credential/BasicResourceParserTest.java b/opensaml-spring/src/test/java/org/opensaml/spring/credential/BasicResourceParserTest.java
deleted file mode 100644
index 62d09d75e..000000000
--- a/opensaml-spring/src/test/java/org/opensaml/spring/credential/BasicResourceParserTest.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.spring.credential;
-
-import java.io.IOException;
-
-import javax.crypto.SecretKey;
-
-import org.opensaml.spring.AbstractSecurityParserTest;
-
-import org.opensaml.security.credential.BasicCredential;
-import org.opensaml.security.credential.Credential;
-import org.springframework.beans.factory.BeanCreationException;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-/**
- * test parsing Basic File System and Resource Credentials
- */
- at SuppressWarnings("javadoc")
-public class BasicResourceParserTest extends AbstractSecurityParserTest {
-
-    @Test public void publicOnly() throws IOException {
-        final BasicCredential credential =
-                (BasicCredential) getBean(Credential.class, "credential/resourcePublicOnly.xml");
-
-        Assert.assertNull(credential.getPrivateKey());
-    }
-
-    @Test(expectedExceptions={BeanCreationException.class,}) public void wrongCert() throws IOException {
-        getBean(Credential.class, "credential/resourceWrongPublic.xml");
-    }
-
-    @Test public void publicPrivate() throws IOException {
-        final BasicCredential credential =
-                (BasicCredential) getBean(Credential.class, "credential/resourcePublicPrivate.xml");
-        Assert.assertNotNull(credential.getPrivateKey());
-
-    }
-    
-    @Test public void secretBase64() throws IOException {
-        final BasicCredential credential =
-                (BasicCredential) getBean(Credential.class, "credential/resourceSecretAESBase64.xml");
-        Assert.assertNotNull(credential.getSecretKey());
-        SecretKey key = credential.getSecretKey();
-        Assert.assertEquals(key.getAlgorithm(), "AES");
-    }
-    
-    @Test public void secretHex() throws IOException {
-        final BasicCredential credential =
-                (BasicCredential) getBean(Credential.class, "credential/resourceSecretAESHex.xml");
-        Assert.assertNotNull(credential.getSecretKey());
-        SecretKey key = credential.getSecretKey();
-        Assert.assertEquals(key.getAlgorithm(), "AES");
-    }
-    
-    @Test public void secretBinary() throws IOException {
-        final BasicCredential credential =
-                (BasicCredential) getBean(Credential.class, "credential/resourceSecretAESBinary.xml");
-        Assert.assertNotNull(credential.getSecretKey());
-        SecretKey key = credential.getSecretKey();
-        Assert.assertEquals(key.getAlgorithm(), "AES");
-    }
-    
-}
\ No newline at end of file
diff --git a/opensaml-spring/src/test/java/org/opensaml/spring/credential/X509FilesystemParserTest.java b/opensaml-spring/src/test/java/org/opensaml/spring/credential/X509FilesystemParserTest.java
deleted file mode 100644
index 51cfa8e04..000000000
--- a/opensaml-spring/src/test/java/org/opensaml/spring/credential/X509FilesystemParserTest.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.spring.credential;
-
-import java.io.IOException;
-import java.time.Instant;
-
-import org.opensaml.spring.AbstractSecurityParserTest;
-
-import org.opensaml.security.credential.Credential;
-import org.opensaml.security.credential.UsageType;
-import org.opensaml.security.x509.BasicX509Credential;
-import org.springframework.beans.factory.BeanCreationException;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-/**
- * test parsing X509 Filesystem Credentials
- */
- at SuppressWarnings("javadoc")
-public class X509FilesystemParserTest extends AbstractSecurityParserTest {
-
-    private BasicX509Credential lookup(String file) throws IOException {
-        return (BasicX509Credential) getBean(Credential.class,  "credential/" + file);
-    }
-
-    @Test public void certOnly() throws IOException {
-        final BasicX509Credential credential = lookup("resourceCertOnly.xml");
-
-        Assert.assertEquals(credential.getEntityCertificateChain().size(), 1);
-        Assert.assertTrue(credential.getEntityCertificateChain().contains(credential.getEntityCertificate()));
-
-        Assert.assertEquals(credential.getEntityCertificate().getNotAfter().getTime(),
-                Instant.parse("2024-04-08T13:39:18Z").toEpochMilli());
-    }
-
-    @Test(expectedExceptions = {BeanCreationException.class,}) public void twoCert() throws IOException {
-        lookup("resourceTwoCert.xml");
-    }
-
-    @Test(expectedExceptions = {BeanCreationException.class,}) public void wrongCert() throws IOException {
-        lookup("resourceWrongCert.xml");
-    }
-
-    @Test public void certKeyCrl() throws IOException {
-        final BasicX509Credential credential = lookup("resourceKeyCertCrl.xml");
-
-        Assert.assertEquals(credential.getEntityCertificate().getNotAfter().getTime(),
-                Instant.parse("2024-04-08T13:39:18Z").toEpochMilli());
-        Assert.assertEquals(credential.getEntityCertificateChain().size(), 3);
-        Assert.assertTrue(credential.getEntityCertificateChain().contains(credential.getEntityCertificate()));
-        Assert.assertEquals(credential.getCRLs().size(), 1);
-        Assert.assertEquals(credential.getCRLs().iterator().next().getNextUpdate().getTime(),
-                Instant.parse("2007-09-02T14:14:48Z").toEpochMilli());
-    }
-
-    @Test public void certElementsKeyNames() throws IOException {
-        final BasicX509Credential credential = lookup("resourceCertElementsKeyName.xml");
-
-        Assert.assertEquals(credential.getEntityCertificateChain().size(), 1);
-        Assert.assertTrue(credential.getEntityCertificateChain().contains(credential.getEntityCertificate()));
-
-        Assert.assertEquals(credential.getEntityCertificate().getNotAfter().getTime(),
-                Instant.parse("2024-04-08T13:39:18Z").toEpochMilli());
-
-        Assert.assertEquals(credential.getUsageType(), UsageType.SIGNING);
-        Assert.assertEquals(credential.getKeyNames().size(), 2);
-        Assert.assertTrue(credential.getKeyNames().contains("Name1"));
-        Assert.assertTrue(credential.getKeyNames().contains("Name2"));
-
-    }
-
-}
\ No newline at end of file
diff --git a/opensaml-spring/src/test/java/org/opensaml/spring/credential/X509InlineParserTest.java b/opensaml-spring/src/test/java/org/opensaml/spring/credential/X509InlineParserTest.java
deleted file mode 100644
index 1565caf4b..000000000
--- a/opensaml-spring/src/test/java/org/opensaml/spring/credential/X509InlineParserTest.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.spring.credential;
-
-import java.io.IOException;
-import java.time.Instant;
-
-import org.opensaml.spring.AbstractSecurityParserTest;
-
-import org.opensaml.security.credential.Credential;
-import org.opensaml.security.x509.BasicX509Credential;
-import org.springframework.beans.factory.BeanCreationException;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-/**
- * test parsing X509 Inline Credentials
- */
- at SuppressWarnings("javadoc")
-public class X509InlineParserTest extends AbstractSecurityParserTest {
-
-    @Test public void certOnly() throws IOException {
-        final BasicX509Credential credential =
-                (BasicX509Credential) getBean(Credential.class, "credential/inlineCertOnly.xml");
-
-        Assert.assertEquals(credential.getEntityCertificateChain().size(), 1);
-        Assert.assertTrue(credential.getEntityCertificateChain().contains(credential.getEntityCertificate()));
-
-        Assert.assertEquals(credential.getEntityCertificate().getNotAfter().getTime(), Instant.parse("2024-04-08T13:39:18Z").toEpochMilli());
-    }
-    
-    @Test(expectedExceptions={BeanCreationException.class,}) public void wrongCert() throws IOException {
-        getBean(Credential.class, "credential/inlineWrongCert.xml");
-    }
-    
-    @Test public void certKeyCrl() throws IOException {
-        final BasicX509Credential credential =
-                (BasicX509Credential) getBean(Credential.class, "credential/inlineKeyCertCrl.xml");
-
-        Assert.assertEquals(credential.getEntityCertificate().getNotAfter().getTime(), Instant.parse("2024-04-08T13:39:18Z").toEpochMilli());
-        Assert.assertEquals(credential.getEntityCertificateChain().size(), 3);
-        Assert.assertTrue(credential.getEntityCertificateChain().contains(credential.getEntityCertificate()));
-        Assert.assertEquals(credential.getCRLs().size(), 1);
-        Assert.assertEquals(credential.getCRLs().iterator().next().getNextUpdate().getTime(), Instant.parse("2007-09-02T14:14:48Z").toEpochMilli());
-    }
-    
-}
\ No newline at end of file
diff --git a/opensaml-spring/src/test/java/org/opensaml/spring/AbstractSecurityParserTest.java b/opensaml-spring/src/test/java/org/opensaml/spring/trust/AbstractSecurityTest.java
similarity index 96%
rename from opensaml-spring/src/test/java/org/opensaml/spring/AbstractSecurityParserTest.java
rename to opensaml-spring/src/test/java/org/opensaml/spring/trust/AbstractSecurityTest.java
index a8f4f3782..5cf006221 100644
--- a/opensaml-spring/src/test/java/org/opensaml/spring/AbstractSecurityParserTest.java
+++ b/opensaml-spring/src/test/java/org/opensaml/spring/trust/AbstractSecurityTest.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package org.opensaml.spring;
+package org.opensaml.spring.trust;
 
 import java.io.IOException;
 import java.util.Arrays;
@@ -32,10 +32,10 @@ import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeSuite;
 
 /**
- * Base mechanics for Security parser tests
+ * Base mechanics for Security tests using Spring.
  */
 @SuppressWarnings("javadoc")
-public class AbstractSecurityParserTest {
+public class AbstractSecurityTest {
 
     private static final String PATH = "/org/opensaml/spring/";
     
diff --git a/opensaml-spring/src/test/java/org/opensaml/spring/trust/ChainingTrustEngineTest.java b/opensaml-spring/src/test/java/org/opensaml/spring/trust/ChainingTrustEngineTest.java
deleted file mode 100644
index 22ecba529..000000000
--- a/opensaml-spring/src/test/java/org/opensaml/spring/trust/ChainingTrustEngineTest.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.spring.trust;
-
-import java.io.IOException;
-
-import org.opensaml.spring.AbstractSecurityParserTest;
-
-import org.opensaml.security.SecurityException;
-import org.opensaml.security.trust.impl.ChainingTrustEngine;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
- at SuppressWarnings("javadoc")
-public class ChainingTrustEngineTest extends AbstractSecurityParserTest {
-    
-    private ChainingTrustEngine<?> lookup(String file) throws IOException {
-        return getBean(ChainingTrustEngine.class, "trust/" + file);
-    }
-
-    
-    @Test public void one() throws IOException, SecurityException {
-        final ChainingTrustEngine<?> engine = lookup("chainingTrue.xml");
-        
-        Assert.assertEquals(engine.getChain().size(), 1);
-        Assert.assertTrue(engine.validate(null, null));
-    }
-
-    @Test public void two() throws IOException, SecurityException {
-        final ChainingTrustEngine<?> engine = lookup("chainingTrueFalse.xml");
-        
-        Assert.assertEquals(engine.getChain().size(), 2);
-        Assert.assertTrue(engine.validate(null, null));
-    }
-}
diff --git a/opensaml-spring/src/test/java/org/opensaml/spring/trust/PKIXFilesystemParserTest.java b/opensaml-spring/src/test/java/org/opensaml/spring/trust/PKIXFilesystemParserTest.java
deleted file mode 100644
index d65a14868..000000000
--- a/opensaml-spring/src/test/java/org/opensaml/spring/trust/PKIXFilesystemParserTest.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.spring.trust;
-
-import java.io.IOException;
-
-import org.opensaml.spring.AbstractSecurityParserTest;
-
-import org.opensaml.security.x509.PKIXValidationInformation;
-import org.opensaml.security.x509.impl.BasicPKIXValidationInformation;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-/**
- * test for parsing of filesystem backed ValidationInfo
- */
- at SuppressWarnings("javadoc")
-public class PKIXFilesystemParserTest extends AbstractSecurityParserTest {
-
-    private BasicPKIXValidationInformation lookup(String file) throws IOException {
-        return (BasicPKIXValidationInformation) getBean(PKIXValidationInformation.class, "trust/" + file);
-    }
-
-    @Test public void simple() throws IOException {
-        final BasicPKIXValidationInformation info = lookup("resourceValidationInfo.xml");
-        Assert.assertNull(info.getVerificationDepth());
-        Assert.assertTrue(info.getCertificates().isEmpty());
-        Assert.assertTrue(info.getCRLs().isEmpty());
-    }
-    
-    @Test public void complex() throws IOException {
-        final BasicPKIXValidationInformation info = lookup("resourceValidationInfoValues.xml");
-        Assert.assertEquals(info.getVerificationDepth().intValue(), 99);
-        Assert.assertEquals(info.getCertificates().size(), 2);
-        Assert.assertEquals(info.getCRLs().size(), 1);
-    }
-}
diff --git a/opensaml-spring/src/test/java/org/opensaml/spring/trust/PKIXInlineParserTest.java b/opensaml-spring/src/test/java/org/opensaml/spring/trust/PKIXInlineParserTest.java
deleted file mode 100644
index 3c87cea9d..000000000
--- a/opensaml-spring/src/test/java/org/opensaml/spring/trust/PKIXInlineParserTest.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.spring.trust;
-
-import java.io.IOException;
-
-import org.opensaml.spring.AbstractSecurityParserTest;
-
-import org.opensaml.security.x509.PKIXValidationInformation;
-import org.opensaml.security.x509.impl.BasicPKIXValidationInformation;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-/**
- * test for parsing of inline ValidationInfo
- */
- at SuppressWarnings("javadoc")
-public class PKIXInlineParserTest extends AbstractSecurityParserTest {
-
-    private BasicPKIXValidationInformation lookup(String file) throws IOException {
-        return (BasicPKIXValidationInformation) getBean(PKIXValidationInformation.class, "trust/" + file);
-    }
-
-    @Test public void simple() throws IOException {
-        final BasicPKIXValidationInformation info = lookup("inlineValidationInfo.xml");
-        Assert.assertNull(info.getVerificationDepth());
-        Assert.assertTrue(info.getCertificates().isEmpty());
-        Assert.assertTrue(info.getCRLs().isEmpty());
-    }
-
-    @Test(enabled=true) public void complex() throws IOException {
-        final BasicPKIXValidationInformation info = lookup("inlineValidationInfoValues.xml");
-        Assert.assertEquals(info.getVerificationDepth().intValue(), 98);
-        Assert.assertEquals(info.getCertificates().size(), 2);
-        Assert.assertEquals(info.getCRLs().size(), 1);
-    }
-
-}
diff --git a/opensaml-spring/src/test/java/org/opensaml/spring/trust/PKIXValidationOptionsParserTest.java b/opensaml-spring/src/test/java/org/opensaml/spring/trust/PKIXValidationOptionsParserTest.java
deleted file mode 100644
index c618746cf..000000000
--- a/opensaml-spring/src/test/java/org/opensaml/spring/trust/PKIXValidationOptionsParserTest.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.spring.trust;
-
-import java.io.IOException;
-
-import org.opensaml.spring.AbstractSecurityParserTest;
-
-import org.opensaml.security.x509.PKIXValidationOptions;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-/**
- * Test for {@link PKIXValidationOptionsParser}.
- */
- at SuppressWarnings("javadoc")
-public class PKIXValidationOptionsParserTest extends AbstractSecurityParserTest {
-    
-    
-    @Test public void simple() throws IOException {
-        PKIXValidationOptions what = getBean(PKIXValidationOptions.class, "trust/validationOptions.xml");
-
-        Assert.assertTrue(what.isProcessCredentialCRLs());
-        Assert.assertTrue(what.isProcessEmptyCRLs());
-        Assert.assertTrue(what.isProcessExpiredCRLs());
-        Assert.assertEquals(what.getDefaultVerificationDepth(), Integer.valueOf(1));
-    }
-    
-    @Test public void complex() throws IOException {
-        PKIXValidationOptions what = getBean(PKIXValidationOptions.class, "trust/validationOptionsValues.xml");
-
-        Assert.assertFalse(what.isProcessCredentialCRLs());
-        Assert.assertFalse(what.isProcessEmptyCRLs());
-        Assert.assertTrue(what.isProcessExpiredCRLs());
-        Assert.assertEquals(what.getDefaultVerificationDepth(), Integer.valueOf(2));
-    }
-
-}
diff --git a/opensaml-spring/src/test/java/org/opensaml/spring/trust/SignatureChainingParserTest.java b/opensaml-spring/src/test/java/org/opensaml/spring/trust/SignatureChainingParserTest.java
deleted file mode 100644
index 56841da83..000000000
--- a/opensaml-spring/src/test/java/org/opensaml/spring/trust/SignatureChainingParserTest.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.spring.trust;
-
-import java.io.IOException;
-import java.time.Instant;
-
-import org.opensaml.spring.AbstractSecurityParserTest;
-import net.shibboleth.utilities.java.support.resolver.ResolverException;
-
-import org.opensaml.security.credential.impl.StaticCredentialResolver;
-import org.opensaml.security.trust.TrustedCredentialTrustEngine;
-import org.opensaml.security.x509.BasicX509Credential;
-import org.opensaml.xmlsec.signature.support.impl.ChainingSignatureTrustEngine;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-/**
- * test for  xsi:type="security:StaticExplicitKeySignature".
- */
- at SuppressWarnings("javadoc")
-public class SignatureChainingParserTest extends AbstractSecurityParserTest {
- 
-    @Test public void simple() throws IOException, ResolverException {
-        final ChainingSignatureTrustEngine chain =  getBean(ChainingSignatureTrustEngine.class, "trust/chain.xml");
-        
-        Assert.assertEquals(chain.getChain().size(),2);
-        
-        final TrustedCredentialTrustEngine<?> engine = (TrustedCredentialTrustEngine<?>) chain.getChain().get(1);
-        
-        final StaticCredentialResolver resolver = (StaticCredentialResolver) engine.getCredentialResolver();
-        
-        BasicX509Credential credential  = (BasicX509Credential) resolver.resolveSingle(null);
-        
-        Assert.assertEquals(credential.getEntityCertificateChain().size(), 1);
-        Assert.assertTrue(credential.getEntityCertificateChain().contains(credential.getEntityCertificate()));
-
-        Assert.assertEquals(credential.getEntityCertificate().getNotAfter().getTime(), Instant.parse("2024-04-08T13:39:18Z").toEpochMilli());
-        
-    }
-}
diff --git a/opensaml-spring/src/test/java/org/opensaml/spring/trust/StaticExplicitKeyFactoryBeanTest.java b/opensaml-spring/src/test/java/org/opensaml/spring/trust/StaticExplicitKeyFactoryBeanTest.java
index ca4503135..47f1cb271 100644
--- a/opensaml-spring/src/test/java/org/opensaml/spring/trust/StaticExplicitKeyFactoryBeanTest.java
+++ b/opensaml-spring/src/test/java/org/opensaml/spring/trust/StaticExplicitKeyFactoryBeanTest.java
@@ -21,7 +21,6 @@ import java.io.IOException;
 import java.time.Instant;
 import java.util.Iterator;
 
-import org.opensaml.spring.AbstractSecurityParserTest;
 import net.shibboleth.utilities.java.support.resolver.ResolverException;
 
 import org.opensaml.security.credential.Credential;
@@ -36,7 +35,7 @@ import org.testng.annotations.Test;
  * Test for StaticExplicitKey factory bean.
  */
 @SuppressWarnings("javadoc")
-public class StaticExplicitKeyFactoryBeanTest extends AbstractSecurityParserTest {
+public class StaticExplicitKeyFactoryBeanTest extends AbstractSecurityTest {
  
     static private String TESTPATH = "trust/staticExplicitNative.xml";
     
diff --git a/opensaml-spring/src/test/java/org/opensaml/spring/trust/StaticExplicitKeyParserTest.java b/opensaml-spring/src/test/java/org/opensaml/spring/trust/StaticExplicitKeyParserTest.java
deleted file mode 100644
index f0e55e3ae..000000000
--- a/opensaml-spring/src/test/java/org/opensaml/spring/trust/StaticExplicitKeyParserTest.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.spring.trust;
-
-import java.io.IOException;
-import java.time.Instant;
-
-import org.opensaml.spring.AbstractSecurityParserTest;
-import net.shibboleth.utilities.java.support.resolver.ResolverException;
-
-import org.opensaml.security.credential.impl.StaticCredentialResolver;
-import org.opensaml.security.trust.TrustEngine;
-import org.opensaml.security.trust.impl.ExplicitKeyTrustEngine;
-import org.opensaml.security.x509.BasicX509Credential;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-/**
- * test for  xsi:type="security:StaticExplicitKeySignature".
- */
- at SuppressWarnings("javadoc")
-public class StaticExplicitKeyParserTest extends AbstractSecurityParserTest {
- 
-    @Test public void simple() throws IOException, ResolverException {
-        final ExplicitKeyTrustEngine engine = (ExplicitKeyTrustEngine) getBean(TrustEngine.class, "trust/staticExplicit.xml");
-        
-        final StaticCredentialResolver resolver = (StaticCredentialResolver) engine.getCredentialResolver();
-        
-        BasicX509Credential credential  = (BasicX509Credential) resolver.resolveSingle(null);
-        
-        Assert.assertEquals(credential.getEntityCertificateChain().size(), 1);
-        Assert.assertTrue(credential.getEntityCertificateChain().contains(credential.getEntityCertificate()));
-
-        Assert.assertEquals(credential.getEntityCertificate().getNotAfter().getTime(), Instant.parse("2024-04-08T13:39:18Z").toEpochMilli());
-        
-    }
-}
diff --git a/opensaml-spring/src/test/java/org/opensaml/spring/trust/StaticExplicitKeySignatureParserTest.java b/opensaml-spring/src/test/java/org/opensaml/spring/trust/StaticExplicitKeySignatureParserTest.java
deleted file mode 100644
index a15cb8d3d..000000000
--- a/opensaml-spring/src/test/java/org/opensaml/spring/trust/StaticExplicitKeySignatureParserTest.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.spring.trust;
-
-import java.io.IOException;
-import java.time.Instant;
-
-import org.opensaml.spring.AbstractSecurityParserTest;
-import net.shibboleth.utilities.java.support.resolver.ResolverException;
-
-import org.opensaml.security.credential.impl.StaticCredentialResolver;
-import org.opensaml.security.trust.TrustEngine;
-import org.opensaml.security.trust.TrustedCredentialTrustEngine;
-import org.opensaml.security.x509.BasicX509Credential;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-/**
- * test for  xsi:type="security:StaticExplicitKeySignature".
- */
- at SuppressWarnings("javadoc")
-public class StaticExplicitKeySignatureParserTest extends AbstractSecurityParserTest {
- 
-    @Test public void simple() throws IOException, ResolverException {
-        final TrustedCredentialTrustEngine<?> engine = (TrustedCredentialTrustEngine<?>) getBean(TrustEngine.class, "trust/staticExplicitSignature.xml");
-        
-        final StaticCredentialResolver resolver = (StaticCredentialResolver) engine.getCredentialResolver();
-        
-        BasicX509Credential credential  = (BasicX509Credential) resolver.resolveSingle(null);
-        
-        Assert.assertEquals(credential.getEntityCertificateChain().size(), 1);
-        Assert.assertTrue(credential.getEntityCertificateChain().contains(credential.getEntityCertificate()));
-
-        Assert.assertEquals(credential.getEntityCertificate().getNotAfter().getTime(), Instant.parse("2024-04-08T13:39:18Z").toEpochMilli());
-        
-    }
-}
diff --git a/opensaml-spring/src/test/java/org/opensaml/spring/trust/StaticPKIXSignatureParserTest.java b/opensaml-spring/src/test/java/org/opensaml/spring/trust/StaticPKIXSignatureParserTest.java
deleted file mode 100644
index 0a5549028..000000000
--- a/opensaml-spring/src/test/java/org/opensaml/spring/trust/StaticPKIXSignatureParserTest.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.spring.trust;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-
-import org.opensaml.spring.AbstractSecurityParserTest;
-import net.shibboleth.utilities.java.support.resolver.ResolverException;
-
-import org.opensaml.security.trust.TrustEngine;
-import org.opensaml.security.x509.PKIXValidationInformation;
-import org.opensaml.security.x509.PKIXValidationOptions;
-import org.opensaml.security.x509.impl.BasicPKIXValidationInformation;
-import org.opensaml.security.x509.impl.CertPathPKIXTrustEvaluator;
-import org.opensaml.security.x509.impl.CertPathPKIXValidationOptions;
-import org.opensaml.security.x509.impl.StaticPKIXValidationInformationResolver;
-import org.opensaml.xmlsec.signature.support.impl.PKIXSignatureTrustEngine;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-/**
- * test for xsi:type="security:StaticPKIXKeySignature".
- */
- at SuppressWarnings("javadoc")
-public class StaticPKIXSignatureParserTest extends AbstractSecurityParserTest {
-
-    @Test public void simple() throws IOException, ResolverException {
-        final PKIXSignatureTrustEngine engine =
-                (PKIXSignatureTrustEngine) getBean(TrustEngine.class, "trust/staticPKIX.xml");
-        
-        Assert.assertNotNull(engine.getX509CredentialNameEvaluator());
-
-        final StaticPKIXValidationInformationResolver resolver =
-                (StaticPKIXValidationInformationResolver) engine.getPKIXResolver();
-        Assert.assertTrue(resolver.resolveTrustedNames(null).isEmpty());
-
-        final List<PKIXValidationInformation> infos = new ArrayList<>();
-        for (final PKIXValidationInformation info : resolver.resolve(null)) {
-            infos.add(info);
-        }
-        Assert.assertEquals(infos.size(), 1);
-
-        final CertPathPKIXTrustEvaluator trustEvaluator = (CertPathPKIXTrustEvaluator) engine.getPKIXTrustEvaluator();
-        final PKIXValidationOptions options = trustEvaluator.getPKIXValidationOptions();
-        Assert.assertTrue(options.isProcessCredentialCRLs());
-        Assert.assertTrue(options.isProcessEmptyCRLs());
-        Assert.assertTrue(options.isProcessExpiredCRLs());
-        Assert.assertEquals(options.getDefaultVerificationDepth().intValue(), 1);
-    }
-    
-    @Test public void nameCheckDisabled() throws IOException, ResolverException {
-        final PKIXSignatureTrustEngine engine =
-                (PKIXSignatureTrustEngine) getBean(TrustEngine.class, "trust/staticPKIX-nameCheckDisabled.xml");
-        
-        Assert.assertNull(engine.getX509CredentialNameEvaluator());
-
-        final StaticPKIXValidationInformationResolver resolver =
-                (StaticPKIXValidationInformationResolver) engine.getPKIXResolver();
-        Assert.assertTrue(resolver.resolveTrustedNames(null).isEmpty());
-
-        final List<PKIXValidationInformation> infos = new ArrayList<>();
-        for (final PKIXValidationInformation info : resolver.resolve(null)) {
-            infos.add(info);
-        }
-        Assert.assertEquals(infos.size(), 1);
-
-        final CertPathPKIXTrustEvaluator trustEvaluator = (CertPathPKIXTrustEvaluator) engine.getPKIXTrustEvaluator();
-        final PKIXValidationOptions options = trustEvaluator.getPKIXValidationOptions();
-        Assert.assertTrue(options.isProcessCredentialCRLs());
-        Assert.assertTrue(options.isProcessEmptyCRLs());
-        Assert.assertTrue(options.isProcessExpiredCRLs());
-        Assert.assertEquals(options.getDefaultVerificationDepth().intValue(), 1);
-    }
-
-    @Test public void values() throws IOException, ResolverException {
-        final PKIXSignatureTrustEngine engine =
-                (PKIXSignatureTrustEngine) getBean(TrustEngine.class, "trust/staticPKIXValues.xml");
-        
-        Assert.assertNotNull(engine.getX509CredentialNameEvaluator());
-
-        final StaticPKIXValidationInformationResolver resolver =
-                (StaticPKIXValidationInformationResolver) engine.getPKIXResolver();
-        final Set<String> tns = resolver.resolveTrustedNames(null);
-        Assert.assertEquals(tns.size(), 3);
-        Assert.assertTrue(tns.contains("Name1"));
-        Assert.assertTrue(tns.contains("Name2"));
-        Assert.assertTrue(tns.contains("Name3"));
-
-        final List<PKIXValidationInformation> infos = new ArrayList<>();
-        for (final PKIXValidationInformation info : resolver.resolve(null)) {
-            infos.add(info);
-        }
-        Assert.assertEquals(infos.size(), 2);
-        final int firstVal = ((BasicPKIXValidationInformation) infos.get(0)).getVerificationDepth().intValue();
-        final int secondVal = ((BasicPKIXValidationInformation) infos.get(1)).getVerificationDepth().intValue();
-
-        Assert.assertTrue((98 == firstVal) || (99 == firstVal));
-        Assert.assertTrue((98 == secondVal) || (99 == secondVal));
-        Assert.assertNotEquals(firstVal, secondVal);
-
-        final CertPathPKIXTrustEvaluator trustEvaluator = (CertPathPKIXTrustEvaluator) engine.getPKIXTrustEvaluator();
-        final PKIXValidationOptions options = trustEvaluator.getPKIXValidationOptions();
-        Assert.assertFalse(options.isProcessCredentialCRLs());
-        Assert.assertFalse(options.isProcessEmptyCRLs());
-        Assert.assertFalse(options.isProcessExpiredCRLs());
-        Assert.assertEquals(options.getDefaultVerificationDepth().intValue(), 2);
-    }
-    
-    @Test public void certPath() throws IOException, ResolverException {
-        final PKIXSignatureTrustEngine engine =
-                (PKIXSignatureTrustEngine) getBean(TrustEngine.class, "trust/staticPKIXValuesCertPathOpts.xml");
-        
-        Assert.assertNotNull(engine.getX509CredentialNameEvaluator());
-
-        final StaticPKIXValidationInformationResolver resolver =
-                (StaticPKIXValidationInformationResolver) engine.getPKIXResolver();
-        final Set<String> tns = resolver.resolveTrustedNames(null);
-        Assert.assertEquals(tns.size(), 1);
-        Assert.assertTrue(tns.contains("Name1"));
-
-        final List<PKIXValidationInformation> infos = new ArrayList<>();
-        for (final PKIXValidationInformation info : resolver.resolve(null)) {
-            infos.add(info);
-        }
-        Assert.assertEquals(infos.size(), 1);
-        final int value = ((BasicPKIXValidationInformation) infos.get(0)).getVerificationDepth().intValue();
-
-        Assert.assertEquals(value, 99);
-
-        final CertPathPKIXTrustEvaluator trustEvaluator = (CertPathPKIXTrustEvaluator) engine.getPKIXTrustEvaluator();
-        final CertPathPKIXValidationOptions options = (CertPathPKIXValidationOptions) trustEvaluator.getPKIXValidationOptions();
-        Assert.assertFalse(options.isProcessCredentialCRLs());
-        Assert.assertFalse(options.isProcessEmptyCRLs());
-        Assert.assertFalse(options.isProcessExpiredCRLs());
-        Assert.assertEquals(options.getDefaultVerificationDepth().intValue(), 3);
-
-        Assert.assertFalse(options.isRevocationEnabled());
-        Assert.assertTrue(options.isAnyPolicyInhibited());
-        Assert.assertTrue(options.isPolicyMappingInhibited());
-        Assert.assertTrue(options.isForceRevocationEnabled());
-        Assert.assertEquals(options.getInitialPolicies().size(), 1);
-        Assert.assertTrue(options.getInitialPolicies().contains("1234"));
-    }
-    
-}
\ No newline at end of file
diff --git a/opensaml-spring/src/test/java/org/opensaml/spring/trust/StaticPKIXX509CredentialParserTest.java b/opensaml-spring/src/test/java/org/opensaml/spring/trust/StaticPKIXX509CredentialParserTest.java
deleted file mode 100644
index 529a7ddc4..000000000
--- a/opensaml-spring/src/test/java/org/opensaml/spring/trust/StaticPKIXX509CredentialParserTest.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.spring.trust;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-
-import org.opensaml.spring.AbstractSecurityParserTest;
-import net.shibboleth.utilities.java.support.resolver.ResolverException;
-
-import org.opensaml.security.trust.TrustEngine;
-import org.opensaml.security.x509.PKIXValidationInformation;
-import org.opensaml.security.x509.impl.BasicPKIXValidationInformation;
-import org.opensaml.security.x509.impl.CertPathPKIXTrustEvaluator;
-import org.opensaml.security.x509.impl.CertPathPKIXValidationOptions;
-import org.opensaml.security.x509.impl.PKIXX509CredentialTrustEngine;
-import org.opensaml.security.x509.impl.StaticPKIXValidationInformationResolver;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-/**
- * test for xsi:type="security:StaticPKIXX509CredentialParser".
- */
- at SuppressWarnings("javadoc")
-public class StaticPKIXX509CredentialParserTest extends AbstractSecurityParserTest {
-
-    @Test public void certPath() throws IOException, ResolverException {
-        final PKIXX509CredentialTrustEngine engine =
-                (PKIXX509CredentialTrustEngine) getBean(TrustEngine.class, "trust/staticPKIXCredentials.xml");
-        
-        Assert.assertNotNull(engine.getX509CredentialNameEvaluator());
-
-        final StaticPKIXValidationInformationResolver resolver =
-                (StaticPKIXValidationInformationResolver) engine.getPKIXResolver();
-        final Set<String> tns = resolver.resolveTrustedNames(null);
-        Assert.assertEquals(tns.size(), 1);
-        Assert.assertTrue(tns.contains("Name1"));
-
-        final List<PKIXValidationInformation> infos = new ArrayList<>();
-        for (final PKIXValidationInformation info : resolver.resolve(null)) {
-            infos.add(info);
-        }
-        Assert.assertEquals(infos.size(), 1);
-        final int value = ((BasicPKIXValidationInformation) infos.get(0)).getVerificationDepth().intValue();
-
-        Assert.assertEquals(value, 99);
-
-        final CertPathPKIXTrustEvaluator trustEvaluator = (CertPathPKIXTrustEvaluator) engine.getPKIXTrustEvaluator();
-        final CertPathPKIXValidationOptions options = (CertPathPKIXValidationOptions) trustEvaluator.getPKIXValidationOptions();
-        Assert.assertFalse(options.isProcessCredentialCRLs());
-        Assert.assertFalse(options.isProcessEmptyCRLs());
-        Assert.assertFalse(options.isProcessExpiredCRLs());
-        Assert.assertEquals(options.getDefaultVerificationDepth().intValue(), 3);
-
-        Assert.assertFalse(options.isRevocationEnabled());
-        Assert.assertTrue(options.isAnyPolicyInhibited());
-        Assert.assertTrue(options.isPolicyMappingInhibited());
-        Assert.assertTrue(options.isForceRevocationEnabled());
-        Assert.assertEquals(options.getInitialPolicies().size(), 1);
-        Assert.assertTrue(options.getInitialPolicies().contains("1234"));
-    }
-    
-    @Test public void nameCheckDisabled() throws IOException, ResolverException {
-        final PKIXX509CredentialTrustEngine engine =
-                (PKIXX509CredentialTrustEngine) getBean(TrustEngine.class, "trust/staticPKIXCredentials-nameCheckDisabled.xml");
-        
-        Assert.assertNull(engine.getX509CredentialNameEvaluator());
-
-        final StaticPKIXValidationInformationResolver resolver =
-                (StaticPKIXValidationInformationResolver) engine.getPKIXResolver();
-        final Set<String> tns = resolver.resolveTrustedNames(null);
-        Assert.assertEquals(tns.size(), 0);
-
-        final List<PKIXValidationInformation> infos = new ArrayList<>();
-        for (final PKIXValidationInformation info : resolver.resolve(null)) {
-            infos.add(info);
-        }
-        Assert.assertEquals(infos.size(), 1);
-        final int value = ((BasicPKIXValidationInformation) infos.get(0)).getVerificationDepth().intValue();
-
-        Assert.assertEquals(value, 99);
-
-        final CertPathPKIXTrustEvaluator trustEvaluator = (CertPathPKIXTrustEvaluator) engine.getPKIXTrustEvaluator();
-        final CertPathPKIXValidationOptions options = (CertPathPKIXValidationOptions) trustEvaluator.getPKIXValidationOptions();
-        Assert.assertFalse(options.isProcessCredentialCRLs());
-        Assert.assertFalse(options.isProcessEmptyCRLs());
-        Assert.assertFalse(options.isProcessExpiredCRLs());
-        Assert.assertEquals(options.getDefaultVerificationDepth().intValue(), 3);
-
-        Assert.assertFalse(options.isRevocationEnabled());
-        Assert.assertTrue(options.isAnyPolicyInhibited());
-        Assert.assertTrue(options.isPolicyMappingInhibited());
-        Assert.assertTrue(options.isForceRevocationEnabled());
-        Assert.assertEquals(options.getInitialPolicies().size(), 1);
-        Assert.assertTrue(options.getInitialPolicies().contains("1234"));
-    }
-    
-    
-}
\ No newline at end of file
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/aes-base64.txt b/opensaml-spring/src/test/resources/org/opensaml/spring/credential/aes-base64.txt
deleted file mode 100644
index fee2306c9..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/aes-base64.txt
+++ /dev/null
@@ -1 +0,0 @@
-3MvnCRvjjWgqazN4O2cHCw==
\ No newline at end of file
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/aes-binary.data b/opensaml-spring/src/test/resources/org/opensaml/spring/credential/aes-binary.data
deleted file mode 100644
index a1e00caa9..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/aes-binary.data
+++ /dev/null
@@ -1 +0,0 @@
-Z	T�|�T��e�
\ No newline at end of file
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/aes-hex.txt b/opensaml-spring/src/test/resources/org/opensaml/spring/credential/aes-hex.txt
deleted file mode 100644
index a3c8fef1d..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/aes-hex.txt
+++ /dev/null
@@ -1 +0,0 @@
-dccbe7091be38d682a6b33783b67070b
\ No newline at end of file
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/crl.pem b/opensaml-spring/src/test/resources/org/opensaml/spring/credential/crl.pem
deleted file mode 100644
index f8036cef1..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/crl.pem
+++ /dev/null
@@ -1,19 +0,0 @@
------BEGIN X509 CRL-----
-MIIDBjCCAe4CAQEwDQYJKoZIhvcNAQEEBQAwVjELMAkGA1UEBhMCVVMxHDAaBgNV
-BAoTE0luQ29tbW9uIEZlZGVyYXRpb24xKTAnBgNVBAMTIEluQ29tbW9uIENlcnRp
-ZmljYXRpb24gQXV0aG9yaXR5Fw0wNzA4MDMxNDE0NDhaFw0wNzA5MDIxNDE0NDha
-MIHdMBICAQIXDTA0MDMzMTE5NDk0NFowEgIBDhcNMDQwOTE3MTkzMTUxWjASAgEP
-Fw0wNDA5MTcxOTMyMTRaMBICARYXDTA1MDMyMjE3MTYyMFowEgIBHBcNMDUwMjAx
-MTkyOTUxWjASAgE+Fw0wNjA0MDcxNjM1MzFaMBICAUAXDTA2MDQwNzE2MzQ1NFow
-EgIBQRcNMDYwNDEwMTcyMjE1WjASAgFWFw0wNjA3MjAxNzIyMzVaMBICAW8XDTA2
-MTIxOTIwMTQxMVowEwICAIwXDTA3MDMyOTIxMjE0N1qggYMwgYAwfgYDVR0jBHcw
-dYAUky3IYRitY+ObZbOd3Y2TuufKY0WhWqRYMFYxCzAJBgNVBAYTAlVTMRwwGgYD
-VQQKExNJbkNvbW1vbiBGZWRlcmF0aW9uMSkwJwYDVQQDEyBJbkNvbW1vbiBDZXJ0
-aWZpY2F0aW9uIEF1dGhvcml0eYIBADANBgkqhkiG9w0BAQQFAAOCAQEAeCvRTq70
-RJxkxgbV+crqhN6oh3k974GGXhOxYDTTGjYbhK8JnCXkt1uJcnGfl1xyqrozoSrl
-oxoBUmStA8vVqYwtO/FfGpnCyfOG9H2/rAkzbqwr/EXO+MqSd8e1AIJho97i/QSs
-FWp40h7GeanmiZXL6bc4o9cKb0ROtc1n2nYHkLXptf9bFHte2Z/RhbUr8KaPU4b9
-T9PW9a2Z7Oc4BDHpEUcljZL0AlO6mGI2RtDB9RdrtRY6M9YQbBwUcV9r+/+ylfZY
-ugMRDTNUqL72hHKJgmbnfc0CmkcZKHOIGXdGCIX6ewNsLOQnlFAQEVyojQqbzT8w
-s6E8aj6AzPhKyw==
------END X509 CRL-----
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/inlineCertOnly.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/credential/inlineCertOnly.xml
deleted file mode 100644
index 559000881..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/inlineCertOnly.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<security:Credential xmlns:security="urn:mace:shibboleth:2.0:security"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"
-
-	id="IdPCredential" xsi:type="security:X509Inline">
-	<security:Certificate>
-		MIIDtTCCAp2gAwIBAgIJAPmsD+VGldyPMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV
-		BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX
-		aWRnaXRzIFB0eSBMdGQwHhcNMTQwNDExMTMzOTE4WhcNMjQwNDA4MTMzOTE4WjBF
-		MQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50
-		ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-		CgKCAQEAxg0TyQAP/tIvOH89EtaXuRRn8SYzTj7W1TbNY4VvBmobjkRmSkki4hH9
-		x4sQpi635wn6WtXTN/FNNmkTK3N/LspmBWxfZS+n+cc7I82E5yvCAPX67QsZgqgg
-		lp2W5dvK/FsMMCS6X6SVqzBLMP88NenXKxY+HMxMs0sT0UKYh1cAEqadrHRBO65a
-		DBcm5a0sBVYt9K6pgaOHrp/zSIbhnR5tFFLjBbtFktDpHL3AdGBH3OYidNGKBO3t
-		J3Ms7LeKXsM0+0Y4P+9fHZINL2X3E2N6GVnKs5PZTg9sP0FtIpAbYm/+zCx7Yj1E
-		T/Er8mDd6tNVGSQsn9s5xUBwGqn14wIDAQABo4GnMIGkMB0GA1UdDgQWBBSiQhSu
-		p9BYjD2ZuMkEiQK7w/Zq0TB1BgNVHSMEbjBsgBSiQhSup9BYjD2ZuMkEiQK7w/Zq
-		0aFJpEcwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNV
-		BAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZIIJAPmsD+VGldyPMAwGA1UdEwQF
-		MAMBAf8wDQYJKoZIhvcNAQELBQADggEBAHZmIo9GBTSsD5DJfKkCVUvBafwR089H
-		BkgVPOuVuEe803BRlKd4BVIsuxAUAy3oqdJYqf9ptPEx8Ef+ALbcDhRbWINhMgO7
-		0/S4x3pS9gOn7/Y9yZplOe4Jd2q3R8QBef+hKLcD/Uv0Sqy2nilM8BnMga5tqsL+
-		8oFt0blzXtQ2vcOVyNyG326uZBZv2Cf6FXFsYQX1L/tLeTBJegefgGkg2dqCTKIU
-		1Qy/Kd2P3/S01kQxjDeG7UfXc9qtelJ68kvzK2d3WOJ2qmsdMxjMNfTItP7FO54M
-		i8V7gp9HK+EimdSbgu7xktKlrqA2Rsn+dBoPSgOUs/LOGtCS9/biF0w=
-	</security:Certificate>
-</security:Credential>
-    
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/inlineKeyCertCrl.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/credential/inlineKeyCertCrl.xml
deleted file mode 100644
index a0d55070b..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/inlineKeyCertCrl.xml
+++ /dev/null
@@ -1,128 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<security:Credential xmlns:security="urn:mace:shibboleth:2.0:security"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"
-
-	id="IdPCredential" xsi:type="security:X509Inline">
-	<security:PrivateKey>
-		MIIEowIBAAKCAQEAxg0TyQAP/tIvOH89EtaXuRRn8SYzTj7W1TbNY4VvBmobjkRm
-		Skki4hH9x4sQpi635wn6WtXTN/FNNmkTK3N/LspmBWxfZS+n+cc7I82E5yvCAPX6
-		7QsZgqgglp2W5dvK/FsMMCS6X6SVqzBLMP88NenXKxY+HMxMs0sT0UKYh1cAEqad
-		rHRBO65aDBcm5a0sBVYt9K6pgaOHrp/zSIbhnR5tFFLjBbtFktDpHL3AdGBH3OYi
-		dNGKBO3tJ3Ms7LeKXsM0+0Y4P+9fHZINL2X3E2N6GVnKs5PZTg9sP0FtIpAbYm/+
-		zCx7Yj1ET/Er8mDd6tNVGSQsn9s5xUBwGqn14wIDAQABAoIBAHG6nLv13zmTdS5a
-		UrX4qNPNVgryxs+N4kw51iPqQeFLGVvPB3ZtHSz46+SkhQEJHu37mtqCo3IijRZL
-		rIhtIIG8FG3U18sBXNJgiCN9J26ggB2RI3DvyMxww5X6FOcWGjBkEFGtJaE6n//Y
-		EbWnO+oxyC+j7DMZVoo2+MBYH8LHPXpMPFPhYbf12LpHY+WeNgX/eemMTlSylBln
-		lfhySCtpLcgY7+juYlXaZ9Y1z37QZBcP6yYLTnXJVlhY1KcULh+/PUnmzVpHbkwU
-		v/yQiFGFsve1ROp0ztB6sFufLnvGcTa3T1Oeza9ZaX/zjbMbGp3qjSGoknS23U0Q
-		ZotRB+ECgYEA9EmvBYLWgEayOlZPcBwKZ3Qrwf9ip3xmtubrf9byIozEeQTKvHmA
-		UvK5dKN1pwK0gTaWk5aq+n64HtwJ0+pO4bV32TJJlV/la4xd7wHdH5+S5cdQjd/r
-		tuxyejp5FhqT+x2rKibskEeFKhfgIIolpkcNFIKc9xa3/VBOWPxV19kCgYEAz4vl
-		xJhD8Cf97bm5hemiJPt2eQMCTGCE39O4UaY6xi5lINoySoh8qd2e59nnneG4YaNp
-		tHU23oh00m68Jx8b7wMFliQ/J59lxAkfP262EkBqf/VOAVXQo/iaA8HSwq3Hfwt5
-		0F4HMQEfB6qf7/LGvFHTQ8+Wn1upZGaYP1YAghsCgYBe3FILmNAExe8luihkx26+
-		15y6W5qKoUMdmTQv0175TaJpwBOd9qx/CWQ8x9DDBsjjODhmnWZNmXGUAiwKz3zM
-		JvSgMefjCncDOWGskxOz2PppIenE/gQBZ3XYwuYMUEvQgqfZ2X2ZVTx/qP/Ogva1
-		x/drVIDxbjAKPOn/ohUPmQKBgQChW5qfZeIr7Gu3TxW1zxaIuhg5rOU0jDXB7tD2
-		ac54Fcn56KoA2GxThEHu77LrRHodLvcXnamzCVQJ5p3RrJYDFM5bFIMlQv/TkWQB
-		5QkY14v1P7oNv7IeSUE0epRpVsIrO7jRDsl4h+6f/z+pRY7NCrC9n77y1ki0Di9/
-		zlVG0QKBgFXQkO/bf0Qs3COPWUs5nHyQ/sR0ptx1jrFDSjCdGvBC7NrDlwNP3894
-		EHCUTrEHhjtAGVzyZakZ6PLAN9cf86N1QhvOdj/oasL5vddWyFK74x2/mtp59VOU
-		LaCxnnbG4JoSVX96BSzUFbtRrQbf2+t5ZON9K12IPIxstMkF2j8u
-	</security:PrivateKey>
-	<security:Certificate>
-		MIIDSTCCArKgAwIBAgIJAKg8tR5hjVM4MA0GCSqGSIb3DQEBBQUAMHcxCzAJBgNV
-		BAYTAlVTMR0wGwYDVQQIExREaXN0cmljdCBvZiBDb2x1bWJpYTETMBEGA1UEBxMK
-		V2FzaGluZ3RvbjEeMBwGA1UEChMVR2VvcmdldG93biBVbml2ZXJzaXR5MRQwEgYD
-		VQQDEwtleGFtcGxlLm9yZzAeFw0wNzA4MDUxMzA4MDJaFw0xNzA4MDIxMzA4MDJa
-		MHcxCzAJBgNVBAYTAlVTMR0wGwYDVQQIExREaXN0cmljdCBvZiBDb2x1bWJpYTET
-		MBEGA1UEBxMKV2FzaGluZ3RvbjEeMBwGA1UEChMVR2VvcmdldG93biBVbml2ZXJz
-		aXR5MRQwEgYDVQQDEwtleGFtcGxlLm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
-		gYkCgYEA5zKHuD5DGPEQH+yLDMIA5M46HwJk7HxlGQ7N9WmkhaI22zXPC0UO8sY4
-		AJW/8nlm0pc505iQmbgslg7/JyBemBj1sI7pOp6eCUPs7NR2mwaujXBturiRaJIe
-		AX1Gjr3sO+3aLvqxUEu0PWqci4m1uc8XHQCA+PlEQQQnB9UIJwcCAwEAAaOB3DCB
-		2TAdBgNVHQ4EFgQUzEhylzE4wmr4FK1lZ7zjR/KmA24wgakGA1UdIwSBoTCBnoAU
-		zEhylzE4wmr4FK1lZ7zjR/KmA26he6R5MHcxCzAJBgNVBAYTAlVTMR0wGwYDVQQI
-		ExREaXN0cmljdCBvZiBDb2x1bWJpYTETMBEGA1UEBxMKV2FzaGluZ3RvbjEeMBwG
-		A1UEChMVR2VvcmdldG93biBVbml2ZXJzaXR5MRQwEgYDVQQDEwtleGFtcGxlLm9y
-		Z4IJAKg8tR5hjVM4MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAGfkM
-		HUeWzHzsBkwTu+S2vX4gzlJPjiL3RzL40og/qyGz38P4KVg8IQvsGDjs1VFzzcAJ
-		I5ULnSocUOTk5sCTjDKT6VILhgAYJ1jnqIo7Z+VC1r3AS9cSDakzqWTc19EFKxEw
-		6jeBWaqyykdSiVhCAmG5AJsvk+K032zjkWWMo+0=
-	</security:Certificate>
-	<security:Certificate>
-		MIIFmjCCBIKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBWMQswCQYDVQQGEwJVUzEc
-		MBoGA1UEChMTSW5Db21tb24gRmVkZXJhdGlvbjEpMCcGA1UEAxMgSW5Db21tb24g
-		Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwMzMwMjAzNDAwWhcNMTQwMzI5
-		MjAzNDAwWjBWMQswCQYDVQQGEwJVUzEcMBoGA1UEChMTSW5Db21tb24gRmVkZXJh
-		dGlvbjEpMCcGA1UEAxMgSW5Db21tb24gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkw
-		ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDRGjKsUM2QAupLAaWx82/C
-		WPalKjKFY8UPmz0T3gf7tJPztTy1Zq8pD0WFRLcQeSBKZGCu8upe8X966b6TZ5yu
-		oUDA754If0DWismuHNoMgRR/l0UvZmPWDGRWd3NBTB8/soLA4EbqFf5Xq8MOJKhP
-		tzcDR33gtaAb3oilZ+ZTpnhTFFrn/qXrAKcSDBpuW2JRpi3xaF/hTPI097oUShOz
-		D1Zj21UYLA6iSFVN+1wlfwilf2KFNK/+zbkCge6wgipZyXxaOAam6ncqmkxy+hy/
-		OiJMmdB+6xkO0xXSBUUcqxJrOcUQhA1vntgb3q5zOJISXhC4RAReA0HyBp/wd0iD
-		AgMBAAGjggJxMIICbTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd
-		BgNVHQ4EFgQUky3IYRitY+ObZbOd3Y2TuufKY0UwfgYDVR0jBHcwdYAUky3IYRit
-		Y+ObZbOd3Y2TuufKY0WhWqRYMFYxCzAJBgNVBAYTAlVTMRwwGgYDVQQKExNJbkNv
-		bW1vbiBGZWRlcmF0aW9uMSkwJwYDVQQDEyBJbkNvbW1vbiBDZXJ0aWZpY2F0aW9u
-		IEF1dGhvcml0eYIBADCBugYIKwYBBQUHAQEEga0wgaowgacGCCsGAQUFBzAChoGa
-		aHR0cDovL2luY29tbW9uY2ExLmluY29tbW9uZmVkZXJhdGlvbi5vcmcvYnJpZGdl
-		L2NlcnRzL2NhLWNlcnRzLnA3YgoJCUNBIElzc3VlcnMgLSBVUkk6aHR0cDovL2lu
-		Y29tbW9uY2EyLmluY29tbW9uZmVkZXJhdGlvbi5vcmcvYnJpZGdlL2NlcnRzL2Nh
-		LWNlcnRzLnA3YjCBjQYDVR0fBIGFMIGCMD+gPaA7hjlodHRwOi8vaW5jb21tb25j
-		cmwxLmluY29tbW9uZmVkZXJhdGlvbi5vcmcvY3JsL2VlY3Jscy5jcmwwP6A9oDuG
-		OWh0dHA6Ly9pbmNvbW1vbmNybDIuaW5jb21tb25mZWRlcmF0aW9uLm9yZy9jcmwv
-		ZWVjcmxzLmNybDBeBgNVHSAEVzBVMFMGCysGAQQBriMBBAEBMEQwQgYIKwYBBQUH
-		AgEWNmh0dHA6Ly9pbmNvbW1vbmNhLmluY29tbW9uZmVkZXJhdGlvbi5vcmcvcHJh
-		Y3RpY2VzLnBkZjANBgkqhkiG9w0BAQUFAAOCAQEAZfgKUPA+Ky+Ou/vclMlFTMlU
-		GspfbNSdG/fmIq+E/Lv1d2c73Am1zGhOpxgdkM8SE+BPnXW2rl71/N8gaqwgBBxk
-		pwn410siumxlDTwV3HoVFvCGWylNy9o8OE1LyTCqfo8PRwrMzhwcagDgD813BIyj
-		uJg/JQz1LnHMocIW/JligloSIzF1O435/+ckfWXQsmBIhvV5TmA3ZrcycrI1cHGE
-		ZqrCXL0FMZLSr+Vady/tFbVojqI8pSubSMxNkZectePTBjVj1Qeb4hmG8jRv/fwy
-		1Iw6OFH8RKny8nQaO5mOe/fF/swEsMVU9TDpvLIgbhTwnP7Nhfotgaxf5wG8WA==
-	</security:Certificate>
-	<security:Certificate entityCertificate="true">
-		MIIDtTCCAp2gAwIBAgIJAPmsD+VGldyPMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV
-		BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX
-		aWRnaXRzIFB0eSBMdGQwHhcNMTQwNDExMTMzOTE4WhcNMjQwNDA4MTMzOTE4WjBF
-		MQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50
-		ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-		CgKCAQEAxg0TyQAP/tIvOH89EtaXuRRn8SYzTj7W1TbNY4VvBmobjkRmSkki4hH9
-		x4sQpi635wn6WtXTN/FNNmkTK3N/LspmBWxfZS+n+cc7I82E5yvCAPX67QsZgqgg
-		lp2W5dvK/FsMMCS6X6SVqzBLMP88NenXKxY+HMxMs0sT0UKYh1cAEqadrHRBO65a
-		DBcm5a0sBVYt9K6pgaOHrp/zSIbhnR5tFFLjBbtFktDpHL3AdGBH3OYidNGKBO3t
-		J3Ms7LeKXsM0+0Y4P+9fHZINL2X3E2N6GVnKs5PZTg9sP0FtIpAbYm/+zCx7Yj1E
-		T/Er8mDd6tNVGSQsn9s5xUBwGqn14wIDAQABo4GnMIGkMB0GA1UdDgQWBBSiQhSu
-		p9BYjD2ZuMkEiQK7w/Zq0TB1BgNVHSMEbjBsgBSiQhSup9BYjD2ZuMkEiQK7w/Zq
-		0aFJpEcwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNV
-		BAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZIIJAPmsD+VGldyPMAwGA1UdEwQF
-		MAMBAf8wDQYJKoZIhvcNAQELBQADggEBAHZmIo9GBTSsD5DJfKkCVUvBafwR089H
-		BkgVPOuVuEe803BRlKd4BVIsuxAUAy3oqdJYqf9ptPEx8Ef+ALbcDhRbWINhMgO7
-		0/S4x3pS9gOn7/Y9yZplOe4Jd2q3R8QBef+hKLcD/Uv0Sqy2nilM8BnMga5tqsL+
-		8oFt0blzXtQ2vcOVyNyG326uZBZv2Cf6FXFsYQX1L/tLeTBJegefgGkg2dqCTKIU
-		1Qy/Kd2P3/S01kQxjDeG7UfXc9qtelJ68kvzK2d3WOJ2qmsdMxjMNfTItP7FO54M
-		i8V7gp9HK+EimdSbgu7xktKlrqA2Rsn+dBoPSgOUs/LOGtCS9/biF0w=
-	</security:Certificate>
-	<security:CRL>
-		MIIDBjCCAe4CAQEwDQYJKoZIhvcNAQEEBQAwVjELMAkGA1UEBhMCVVMxHDAaBgNV
-		BAoTE0luQ29tbW9uIEZlZGVyYXRpb24xKTAnBgNVBAMTIEluQ29tbW9uIENlcnRp
-		ZmljYXRpb24gQXV0aG9yaXR5Fw0wNzA4MDMxNDE0NDhaFw0wNzA5MDIxNDE0NDha
-		MIHdMBICAQIXDTA0MDMzMTE5NDk0NFowEgIBDhcNMDQwOTE3MTkzMTUxWjASAgEP
-		Fw0wNDA5MTcxOTMyMTRaMBICARYXDTA1MDMyMjE3MTYyMFowEgIBHBcNMDUwMjAx
-		MTkyOTUxWjASAgE+Fw0wNjA0MDcxNjM1MzFaMBICAUAXDTA2MDQwNzE2MzQ1NFow
-		EgIBQRcNMDYwNDEwMTcyMjE1WjASAgFWFw0wNjA3MjAxNzIyMzVaMBICAW8XDTA2
-		MTIxOTIwMTQxMVowEwICAIwXDTA3MDMyOTIxMjE0N1qggYMwgYAwfgYDVR0jBHcw
-		dYAUky3IYRitY+ObZbOd3Y2TuufKY0WhWqRYMFYxCzAJBgNVBAYTAlVTMRwwGgYD
-		VQQKExNJbkNvbW1vbiBGZWRlcmF0aW9uMSkwJwYDVQQDEyBJbkNvbW1vbiBDZXJ0
-		aWZpY2F0aW9uIEF1dGhvcml0eYIBADANBgkqhkiG9w0BAQQFAAOCAQEAeCvRTq70
-		RJxkxgbV+crqhN6oh3k974GGXhOxYDTTGjYbhK8JnCXkt1uJcnGfl1xyqrozoSrl
-		oxoBUmStA8vVqYwtO/FfGpnCyfOG9H2/rAkzbqwr/EXO+MqSd8e1AIJho97i/QSs
-		FWp40h7GeanmiZXL6bc4o9cKb0ROtc1n2nYHkLXptf9bFHte2Z/RhbUr8KaPU4b9
-		T9PW9a2Z7Oc4BDHpEUcljZL0AlO6mGI2RtDB9RdrtRY6M9YQbBwUcV9r+/+ylfZY
-		ugMRDTNUqL72hHKJgmbnfc0CmkcZKHOIGXdGCIX6ewNsLOQnlFAQEVyojQqbzT8w
-		s6E8aj6AzPhKyw==
-	</security:CRL>
-</security:Credential>
-    
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/inlinePublicOnly.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/credential/inlinePublicOnly.xml
deleted file mode 100644
index 4fc9f0e7c..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/inlinePublicOnly.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<security:Credential xmlns:security="urn:mace:shibboleth:2.0:security"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"
-
-	id="IdPCredential" xsi:type="security:BasicInline">
-	<security:PublicKey>
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxg0TyQAP/tIvOH89EtaX
-uRRn8SYzTj7W1TbNY4VvBmobjkRmSkki4hH9x4sQpi635wn6WtXTN/FNNmkTK3N/
-LspmBWxfZS+n+cc7I82E5yvCAPX67QsZgqgglp2W5dvK/FsMMCS6X6SVqzBLMP88
-NenXKxY+HMxMs0sT0UKYh1cAEqadrHRBO65aDBcm5a0sBVYt9K6pgaOHrp/zSIbh
-nR5tFFLjBbtFktDpHL3AdGBH3OYidNGKBO3tJ3Ms7LeKXsM0+0Y4P+9fHZINL2X3
-E2N6GVnKs5PZTg9sP0FtIpAbYm/+zCx7Yj1ET/Er8mDd6tNVGSQsn9s5xUBwGqn1
-4wIDAQAB
-</security:PublicKey>
-</security:Credential>
-    
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/inlinePublicPrivate.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/credential/inlinePublicPrivate.xml
deleted file mode 100644
index e270c0edb..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/inlinePublicPrivate.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<security:Credential xmlns:security="urn:mace:shibboleth:2.0:security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
-	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"
-
-	id="IdPCredential" xsi:type="security:BasicInline">
-	<security:PrivateKey >
-
-MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDGDRPJAA/+0i84
-fz0S1pe5FGfxJjNOPtbVNs1jhW8GahuORGZKSSLiEf3HixCmLrfnCfpa1dM38U02
-aRMrc38uymYFbF9lL6f5xzsjzYTnK8IA9frtCxmCqCCWnZbl28r8WwwwJLpfpJWr
-MEsw/zw16dcrFj4czEyzSxPRQpiHVwASpp2sdEE7rloMFyblrSwFVi30rqmBo4eu
-n/NIhuGdHm0UUuMFu0WS0OkcvcB0YEfc5iJ00YoE7e0ncyzst4pewzT7Rjg/718d
-kg0vZfcTY3oZWcqzk9lOD2w/QW0ikBtib/7MLHtiPURP8SvyYN3q01UZJCyf2znF
-QHAaqfXjAgMBAAECggEAcbqcu/XfOZN1LlpStfio081WCvLGz43iTDnWI+pB4UsZ
-W88Hdm0dLPjr5KSFAQke7fua2oKjciKNFkusiG0ggbwUbdTXywFc0mCII30nbqCA
-HZEjcO/IzHDDlfoU5xYaMGQQUa0loTqf/9gRtac76jHIL6PsMxlWijb4wFgfwsc9
-ekw8U+Fht/XYukdj5Z42Bf956YxOVLKUGWeV+HJIK2ktyBjv6O5iVdpn1jXPftBk
-Fw/rJgtOdclWWFjUpxQuH789SebNWkduTBS//JCIUYWy97VE6nTO0HqwW58ue8Zx
-NrdPU57Nr1lpf/ONsxsaneqNIaiSdLbdTRBmi1EH4QKBgQD0Sa8FgtaARrI6Vk9w
-HApndCvB/2KnfGa25ut/1vIijMR5BMq8eYBS8rl0o3WnArSBNpaTlqr6frge3AnT
-6k7htXfZMkmVX+VrjF3vAd0fn5Llx1CN3+u27HJ6OnkWGpP7HasqJuyQR4UqF+Ag
-iiWmRw0Ugpz3Frf9UE5Y/FXX2QKBgQDPi+XEmEPwJ/3tubmF6aIk+3Z5AwJMYITf
-07hRpjrGLmUg2jJKiHyp3Z7n2eed4bhho2m0dTbeiHTSbrwnHxvvAwWWJD8nn2XE
-CR8/brYSQGp/9U4BVdCj+JoDwdLCrcd/C3nQXgcxAR8Hqp/v8sa8UdNDz5afW6lk
-Zpg/VgCCGwKBgF7cUguY0ATF7yW6KGTHbr7XnLpbmoqhQx2ZNC/TXvlNomnAE532
-rH8JZDzH0MMGyOM4OGadZk2ZcZQCLArPfMwm9KAx5+MKdwM5YayTE7PY+mkh6cT+
-BAFnddjC5gxQS9CCp9nZfZlVPH+o/86C9rXH92tUgPFuMAo86f+iFQ+ZAoGBAKFb
-mp9l4ivsa7dPFbXPFoi6GDms5TSMNcHu0PZpzngVyfnoqgDYbFOEQe7vsutEeh0u
-9xedqbMJVAnmndGslgMUzlsUgyVC/9ORZAHlCRjXi/U/ug2/sh5JQTR6lGlWwis7
-uNEOyXiH7p//P6lFjs0KsL2fvvLWSLQOL3/OVUbRAoGAVdCQ79t/RCzcI49ZSzmc
-fJD+xHSm3HWOsUNKMJ0a8ELs2sOXA0/fz3gQcJROsQeGO0AZXPJlqRno8sA31x/z
-o3VCG852P+hqwvm911bIUrvjHb+a2nn1U5QtoLGedsbgmhJVf3oFLNQVu1GtBt/b
-63lk430rXYg8jGy0yQXaPy4=
-
-	</security:PrivateKey>
-    <security:PublicKey>
-
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxg0TyQAP/tIvOH89EtaX
-uRRn8SYzTj7W1TbNY4VvBmobjkRmSkki4hH9x4sQpi635wn6WtXTN/FNNmkTK3N/
-LspmBWxfZS+n+cc7I82E5yvCAPX67QsZgqgglp2W5dvK/FsMMCS6X6SVqzBLMP88
-NenXKxY+HMxMs0sT0UKYh1cAEqadrHRBO65aDBcm5a0sBVYt9K6pgaOHrp/zSIbh
-nR5tFFLjBbtFktDpHL3AdGBH3OYidNGKBO3tJ3Ms7LeKXsM0+0Y4P+9fHZINL2X3
-E2N6GVnKs5PZTg9sP0FtIpAbYm/+zCx7Yj1ET/Er8mDd6tNVGSQsn9s5xUBwGqn1
-4wIDAQAB
-
-    </security:PublicKey>
-</security:Credential>
-    
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/inlineWrongCert.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/credential/inlineWrongCert.xml
deleted file mode 100644
index ec0486538..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/inlineWrongCert.xml
+++ /dev/null
@@ -1,87 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<security:Credential xmlns:security="urn:mace:shibboleth:2.0:security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
-	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"
-
-	id="IdPCredential" xsi:type="security:X509Inline">
-	<security:PrivateKey>
-MIIEowIBAAKCAQEAxg0TyQAP/tIvOH89EtaXuRRn8SYzTj7W1TbNY4VvBmobjkRm
-Skki4hH9x4sQpi635wn6WtXTN/FNNmkTK3N/LspmBWxfZS+n+cc7I82E5yvCAPX6
-7QsZgqgglp2W5dvK/FsMMCS6X6SVqzBLMP88NenXKxY+HMxMs0sT0UKYh1cAEqad
-rHRBO65aDBcm5a0sBVYt9K6pgaOHrp/zSIbhnR5tFFLjBbtFktDpHL3AdGBH3OYi
-dNGKBO3tJ3Ms7LeKXsM0+0Y4P+9fHZINL2X3E2N6GVnKs5PZTg9sP0FtIpAbYm/+
-zCx7Yj1ET/Er8mDd6tNVGSQsn9s5xUBwGqn14wIDAQABAoIBAHG6nLv13zmTdS5a
-UrX4qNPNVgryxs+N4kw51iPqQeFLGVvPB3ZtHSz46+SkhQEJHu37mtqCo3IijRZL
-rIhtIIG8FG3U18sBXNJgiCN9J26ggB2RI3DvyMxww5X6FOcWGjBkEFGtJaE6n//Y
-EbWnO+oxyC+j7DMZVoo2+MBYH8LHPXpMPFPhYbf12LpHY+WeNgX/eemMTlSylBln
-lfhySCtpLcgY7+juYlXaZ9Y1z37QZBcP6yYLTnXJVlhY1KcULh+/PUnmzVpHbkwU
-v/yQiFGFsve1ROp0ztB6sFufLnvGcTa3T1Oeza9ZaX/zjbMbGp3qjSGoknS23U0Q
-ZotRB+ECgYEA9EmvBYLWgEayOlZPcBwKZ3Qrwf9ip3xmtubrf9byIozEeQTKvHmA
-UvK5dKN1pwK0gTaWk5aq+n64HtwJ0+pO4bV32TJJlV/la4xd7wHdH5+S5cdQjd/r
-tuxyejp5FhqT+x2rKibskEeFKhfgIIolpkcNFIKc9xa3/VBOWPxV19kCgYEAz4vl
-xJhD8Cf97bm5hemiJPt2eQMCTGCE39O4UaY6xi5lINoySoh8qd2e59nnneG4YaNp
-tHU23oh00m68Jx8b7wMFliQ/J59lxAkfP262EkBqf/VOAVXQo/iaA8HSwq3Hfwt5
-0F4HMQEfB6qf7/LGvFHTQ8+Wn1upZGaYP1YAghsCgYBe3FILmNAExe8luihkx26+
-15y6W5qKoUMdmTQv0175TaJpwBOd9qx/CWQ8x9DDBsjjODhmnWZNmXGUAiwKz3zM
-JvSgMefjCncDOWGskxOz2PppIenE/gQBZ3XYwuYMUEvQgqfZ2X2ZVTx/qP/Ogva1
-x/drVIDxbjAKPOn/ohUPmQKBgQChW5qfZeIr7Gu3TxW1zxaIuhg5rOU0jDXB7tD2
-ac54Fcn56KoA2GxThEHu77LrRHodLvcXnamzCVQJ5p3RrJYDFM5bFIMlQv/TkWQB
-5QkY14v1P7oNv7IeSUE0epRpVsIrO7jRDsl4h+6f/z+pRY7NCrC9n77y1ki0Di9/
-zlVG0QKBgFXQkO/bf0Qs3COPWUs5nHyQ/sR0ptx1jrFDSjCdGvBC7NrDlwNP3894
-EHCUTrEHhjtAGVzyZakZ6PLAN9cf86N1QhvOdj/oasL5vddWyFK74x2/mtp59VOU
-LaCxnnbG4JoSVX96BSzUFbtRrQbf2+t5ZON9K12IPIxstMkF2j8u
-
-</security:PrivateKey>
-    <security:Certificate>
-MIIDSTCCArKgAwIBAgIJAKg8tR5hjVM4MA0GCSqGSIb3DQEBBQUAMHcxCzAJBgNV
-BAYTAlVTMR0wGwYDVQQIExREaXN0cmljdCBvZiBDb2x1bWJpYTETMBEGA1UEBxMK
-V2FzaGluZ3RvbjEeMBwGA1UEChMVR2VvcmdldG93biBVbml2ZXJzaXR5MRQwEgYD
-VQQDEwtleGFtcGxlLm9yZzAeFw0wNzA4MDUxMzA4MDJaFw0xNzA4MDIxMzA4MDJa
-MHcxCzAJBgNVBAYTAlVTMR0wGwYDVQQIExREaXN0cmljdCBvZiBDb2x1bWJpYTET
-MBEGA1UEBxMKV2FzaGluZ3RvbjEeMBwGA1UEChMVR2VvcmdldG93biBVbml2ZXJz
-aXR5MRQwEgYDVQQDEwtleGFtcGxlLm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
-gYkCgYEA5zKHuD5DGPEQH+yLDMIA5M46HwJk7HxlGQ7N9WmkhaI22zXPC0UO8sY4
-AJW/8nlm0pc505iQmbgslg7/JyBemBj1sI7pOp6eCUPs7NR2mwaujXBturiRaJIe
-AX1Gjr3sO+3aLvqxUEu0PWqci4m1uc8XHQCA+PlEQQQnB9UIJwcCAwEAAaOB3DCB
-2TAdBgNVHQ4EFgQUzEhylzE4wmr4FK1lZ7zjR/KmA24wgakGA1UdIwSBoTCBnoAU
-zEhylzE4wmr4FK1lZ7zjR/KmA26he6R5MHcxCzAJBgNVBAYTAlVTMR0wGwYDVQQI
-ExREaXN0cmljdCBvZiBDb2x1bWJpYTETMBEGA1UEBxMKV2FzaGluZ3RvbjEeMBwG
-A1UEChMVR2VvcmdldG93biBVbml2ZXJzaXR5MRQwEgYDVQQDEwtleGFtcGxlLm9y
-Z4IJAKg8tR5hjVM4MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAGfkM
-HUeWzHzsBkwTu+S2vX4gzlJPjiL3RzL40og/qyGz38P4KVg8IQvsGDjs1VFzzcAJ
-I5ULnSocUOTk5sCTjDKT6VILhgAYJ1jnqIo7Z+VC1r3AS9cSDakzqWTc19EFKxEw
-6jeBWaqyykdSiVhCAmG5AJsvk+K032zjkWWMo+0=
-</security:Certificate>
-<security:Certificate>
-MIIFmjCCBIKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBWMQswCQYDVQQGEwJVUzEc
-MBoGA1UEChMTSW5Db21tb24gRmVkZXJhdGlvbjEpMCcGA1UEAxMgSW5Db21tb24g
-Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwMzMwMjAzNDAwWhcNMTQwMzI5
-MjAzNDAwWjBWMQswCQYDVQQGEwJVUzEcMBoGA1UEChMTSW5Db21tb24gRmVkZXJh
-dGlvbjEpMCcGA1UEAxMgSW5Db21tb24gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkw
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDRGjKsUM2QAupLAaWx82/C
-WPalKjKFY8UPmz0T3gf7tJPztTy1Zq8pD0WFRLcQeSBKZGCu8upe8X966b6TZ5yu
-oUDA754If0DWismuHNoMgRR/l0UvZmPWDGRWd3NBTB8/soLA4EbqFf5Xq8MOJKhP
-tzcDR33gtaAb3oilZ+ZTpnhTFFrn/qXrAKcSDBpuW2JRpi3xaF/hTPI097oUShOz
-D1Zj21UYLA6iSFVN+1wlfwilf2KFNK/+zbkCge6wgipZyXxaOAam6ncqmkxy+hy/
-OiJMmdB+6xkO0xXSBUUcqxJrOcUQhA1vntgb3q5zOJISXhC4RAReA0HyBp/wd0iD
-AgMBAAGjggJxMIICbTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd
-BgNVHQ4EFgQUky3IYRitY+ObZbOd3Y2TuufKY0UwfgYDVR0jBHcwdYAUky3IYRit
-Y+ObZbOd3Y2TuufKY0WhWqRYMFYxCzAJBgNVBAYTAlVTMRwwGgYDVQQKExNJbkNv
-bW1vbiBGZWRlcmF0aW9uMSkwJwYDVQQDEyBJbkNvbW1vbiBDZXJ0aWZpY2F0aW9u
-IEF1dGhvcml0eYIBADCBugYIKwYBBQUHAQEEga0wgaowgacGCCsGAQUFBzAChoGa
-aHR0cDovL2luY29tbW9uY2ExLmluY29tbW9uZmVkZXJhdGlvbi5vcmcvYnJpZGdl
-L2NlcnRzL2NhLWNlcnRzLnA3YgoJCUNBIElzc3VlcnMgLSBVUkk6aHR0cDovL2lu
-Y29tbW9uY2EyLmluY29tbW9uZmVkZXJhdGlvbi5vcmcvYnJpZGdlL2NlcnRzL2Nh
-LWNlcnRzLnA3YjCBjQYDVR0fBIGFMIGCMD+gPaA7hjlodHRwOi8vaW5jb21tb25j
-cmwxLmluY29tbW9uZmVkZXJhdGlvbi5vcmcvY3JsL2VlY3Jscy5jcmwwP6A9oDuG
-OWh0dHA6Ly9pbmNvbW1vbmNybDIuaW5jb21tb25mZWRlcmF0aW9uLm9yZy9jcmwv
-ZWVjcmxzLmNybDBeBgNVHSAEVzBVMFMGCysGAQQBriMBBAEBMEQwQgYIKwYBBQUH
-AgEWNmh0dHA6Ly9pbmNvbW1vbmNhLmluY29tbW9uZmVkZXJhdGlvbi5vcmcvcHJh
-Y3RpY2VzLnBkZjANBgkqhkiG9w0BAQUFAAOCAQEAZfgKUPA+Ky+Ou/vclMlFTMlU
-GspfbNSdG/fmIq+E/Lv1d2c73Am1zGhOpxgdkM8SE+BPnXW2rl71/N8gaqwgBBxk
-pwn410siumxlDTwV3HoVFvCGWylNy9o8OE1LyTCqfo8PRwrMzhwcagDgD813BIyj
-uJg/JQz1LnHMocIW/JligloSIzF1O435/+ckfWXQsmBIhvV5TmA3ZrcycrI1cHGE
-ZqrCXL0FMZLSr+Vady/tFbVojqI8pSubSMxNkZectePTBjVj1Qeb4hmG8jRv/fwy
-1Iw6OFH8RKny8nQaO5mOe/fF/swEsMVU9TDpvLIgbhTwnP7Nhfotgaxf5wG8WA==
-</security:Certificate>
-</security:Credential>
-    
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/key.pem b/opensaml-spring/src/test/resources/org/opensaml/spring/credential/key.pem
deleted file mode 100644
index 951462f0d..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/key.pem
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEowIBAAKCAQEAxg0TyQAP/tIvOH89EtaXuRRn8SYzTj7W1TbNY4VvBmobjkRm
-Skki4hH9x4sQpi635wn6WtXTN/FNNmkTK3N/LspmBWxfZS+n+cc7I82E5yvCAPX6
-7QsZgqgglp2W5dvK/FsMMCS6X6SVqzBLMP88NenXKxY+HMxMs0sT0UKYh1cAEqad
-rHRBO65aDBcm5a0sBVYt9K6pgaOHrp/zSIbhnR5tFFLjBbtFktDpHL3AdGBH3OYi
-dNGKBO3tJ3Ms7LeKXsM0+0Y4P+9fHZINL2X3E2N6GVnKs5PZTg9sP0FtIpAbYm/+
-zCx7Yj1ET/Er8mDd6tNVGSQsn9s5xUBwGqn14wIDAQABAoIBAHG6nLv13zmTdS5a
-UrX4qNPNVgryxs+N4kw51iPqQeFLGVvPB3ZtHSz46+SkhQEJHu37mtqCo3IijRZL
-rIhtIIG8FG3U18sBXNJgiCN9J26ggB2RI3DvyMxww5X6FOcWGjBkEFGtJaE6n//Y
-EbWnO+oxyC+j7DMZVoo2+MBYH8LHPXpMPFPhYbf12LpHY+WeNgX/eemMTlSylBln
-lfhySCtpLcgY7+juYlXaZ9Y1z37QZBcP6yYLTnXJVlhY1KcULh+/PUnmzVpHbkwU
-v/yQiFGFsve1ROp0ztB6sFufLnvGcTa3T1Oeza9ZaX/zjbMbGp3qjSGoknS23U0Q
-ZotRB+ECgYEA9EmvBYLWgEayOlZPcBwKZ3Qrwf9ip3xmtubrf9byIozEeQTKvHmA
-UvK5dKN1pwK0gTaWk5aq+n64HtwJ0+pO4bV32TJJlV/la4xd7wHdH5+S5cdQjd/r
-tuxyejp5FhqT+x2rKibskEeFKhfgIIolpkcNFIKc9xa3/VBOWPxV19kCgYEAz4vl
-xJhD8Cf97bm5hemiJPt2eQMCTGCE39O4UaY6xi5lINoySoh8qd2e59nnneG4YaNp
-tHU23oh00m68Jx8b7wMFliQ/J59lxAkfP262EkBqf/VOAVXQo/iaA8HSwq3Hfwt5
-0F4HMQEfB6qf7/LGvFHTQ8+Wn1upZGaYP1YAghsCgYBe3FILmNAExe8luihkx26+
-15y6W5qKoUMdmTQv0175TaJpwBOd9qx/CWQ8x9DDBsjjODhmnWZNmXGUAiwKz3zM
-JvSgMefjCncDOWGskxOz2PppIenE/gQBZ3XYwuYMUEvQgqfZ2X2ZVTx/qP/Ogva1
-x/drVIDxbjAKPOn/ohUPmQKBgQChW5qfZeIr7Gu3TxW1zxaIuhg5rOU0jDXB7tD2
-ac54Fcn56KoA2GxThEHu77LrRHodLvcXnamzCVQJ5p3RrJYDFM5bFIMlQv/TkWQB
-5QkY14v1P7oNv7IeSUE0epRpVsIrO7jRDsl4h+6f/z+pRY7NCrC9n77y1ki0Di9/
-zlVG0QKBgFXQkO/bf0Qs3COPWUs5nHyQ/sR0ptx1jrFDSjCdGvBC7NrDlwNP3894
-EHCUTrEHhjtAGVzyZakZ6PLAN9cf86N1QhvOdj/oasL5vddWyFK74x2/mtp59VOU
-LaCxnnbG4JoSVX96BSzUFbtRrQbf2+t5ZON9K12IPIxstMkF2j8u
------END RSA PRIVATE KEY-----
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourceBasic.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourceBasic.xml
deleted file mode 100644
index 92124520e..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourceBasic.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<security:Credential xmlns:security="urn:mace:shibboleth:2.0:security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
-	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"
-
-	id="IdPCredential" xsi:type="security:BasicResourceBacked">
-	<security:PublicKey>%{DIR}/credential/cert.pem</security:PublicKey>
-</security:Credential>
-    
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourceCertElementsKeyName.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourceCertElementsKeyName.xml
deleted file mode 100644
index 2e29412e9..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourceCertElementsKeyName.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<security:Credential xmlns:security="urn:mace:shibboleth:2.0:security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
-	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"
-
-	id="IdPCredential" xsi:type="security:X509ResourceBacked" entityID="https://sp.example.org/sp/shibboleth" usage="Signing" >
-	<security:KeyName>Name1</security:KeyName>
-    <security:KeyName>Name2</security:KeyName>
-	<security:Certificate>%{DIR}/credential/cert.pem</security:Certificate>
-</security:Credential>
-    
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourceCertOnly.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourceCertOnly.xml
deleted file mode 100644
index 7996375d4..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourceCertOnly.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<security:Credential xmlns:security="urn:mace:shibboleth:2.0:security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
-	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"
-
-	id="IdPCredential" xsi:type="security:X509ResourceBacked">
-	<security:Certificate>classpath:/org/opensaml/spring/credential/cert.pem</security:Certificate>
-</security:Credential>
-    
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourceKeyCertCrl.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourceKeyCertCrl.xml
deleted file mode 100644
index be79fa870..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourceKeyCertCrl.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<security:Credential xmlns:security="urn:mace:shibboleth:2.0:security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
-	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"
-
-	id="IdPCredential" xsi:type="security:X509ResourceBacked">
-	<security:PrivateKey>%{DIR}/credential/key.pem</security:PrivateKey>
-    <security:Certificate>%{DIR}/credential/certificate.pem</security:Certificate>
-    <security:Certificate entityCertificate="true">%{DIR}/credential/cert.pem</security:Certificate>
-    <security:CRL>%{DIR}/credential/crl.pem</security:CRL>
-</security:Credential>
-    
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourcePublicOnly.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourcePublicOnly.xml
deleted file mode 100644
index dbdf793fa..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourcePublicOnly.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<security:Credential xmlns:security="urn:mace:shibboleth:2.0:security"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"
-
-	id="IdPCredential" xsi:type="security:BasicResourceBacked">
-	<security:PublicKey>classpath:/org/opensaml/spring/credential/publicKey.pem</security:PublicKey>
-</security:Credential>
-    
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourcePublicPrivate.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourcePublicPrivate.xml
deleted file mode 100644
index 40c917f27..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourcePublicPrivate.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<security:Credential xmlns:security="urn:mace:shibboleth:2.0:security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
-	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"
-
-	id="IdPCredential" xsi:type="security:BasicResourceBacked">
-	<security:PrivateKey>%{DIR}/credential/key.pem</security:PrivateKey>
-    <security:PublicKey>%{DIR}/credential/publicKey.pem</security:PublicKey>
-</security:Credential>
-    
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourceSecretAESBase64.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourceSecretAESBase64.xml
deleted file mode 100644
index 693a9e367..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourceSecretAESBase64.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<security:Credential xmlns:security="urn:mace:shibboleth:2.0:security"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"
-
-	id="credential" xsi:type="security:BasicResourceBacked">
-	<security:SecretKey algorithm="AES" encoding="base64">classpath:/org/opensaml/spring/credential/aes-base64.txt</security:SecretKey>
-</security:Credential>
-    
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourceSecretAESBinary.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourceSecretAESBinary.xml
deleted file mode 100644
index ea2eed9a8..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourceSecretAESBinary.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<security:Credential xmlns:security="urn:mace:shibboleth:2.0:security"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"
-
-	id="credential" xsi:type="security:BasicResourceBacked">
-	<security:SecretKey algorithm="AES" encoding="binary">classpath:/org/opensaml/spring/credential/aes-binary.data</security:SecretKey>
-</security:Credential>
-    
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourceSecretAESHex.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourceSecretAESHex.xml
deleted file mode 100644
index 32ca72996..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourceSecretAESHex.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<security:Credential xmlns:security="urn:mace:shibboleth:2.0:security"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"
-
-	id="credential" xsi:type="security:BasicResourceBacked">
-	<security:SecretKey algorithm="AES" encoding="hex">classpath:/org/opensaml/spring/credential/aes-hex.txt</security:SecretKey>
-</security:Credential>
-    
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourceTwoCert.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourceTwoCert.xml
deleted file mode 100644
index 5c840bf59..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourceTwoCert.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<security:Credential xmlns:security="urn:mace:shibboleth:2.0:security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
-	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"
-
-	id="IdPCredential" xsi:type="security:X509ResourceBacked">
-	<security:Certificate entityCertificate="true">%{DIR}/credential/certificate.pem</security:Certificate>
-</security:Credential>
-    
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourceWrongCert.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourceWrongCert.xml
deleted file mode 100644
index 1d90f7fef..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourceWrongCert.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<security:Credential xmlns:security="urn:mace:shibboleth:2.0:security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
-	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"
-
-	id="IdPCredential" xsi:type="security:X509ResourceBacked">
-	<security:PrivateKey>%{DIR}/credential/key.pem</security:PrivateKey>
-    <security:Certificate>%{DIR}/credential/certificate.pem</security:Certificate>
-</security:Credential>
-    
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourceWrongPublic.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourceWrongPublic.xml
deleted file mode 100644
index fd37c2e98..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourceWrongPublic.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<security:Credential xmlns:security="urn:mace:shibboleth:2.0:security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
-	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"
-
-	id="IdPCredential" xsi:type="security:BasicResourceBacked">
-	<security:PrivateKey>%{DIR}/credential/key.pem</security:PrivateKey>
-    <security:PublicKey>%{DIR}/credential/wrongPublicKey.pem</security:PublicKey>
-</security:Credential>
-    
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourceX509.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourceX509.xml
deleted file mode 100644
index b087dd962..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/resourceX509.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<security:Credential xmlns:security="urn:mace:shibboleth:2.0:security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
-	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"
-
-	id="IdPCredential" xsi:type="security:X509ResourceBacked">
-	<security:Certificate>%{DIR}/credential/cert.pem</security:Certificate>
-</security:Credential>
-    
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/secretKeyAESBase64.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/credential/secretKeyAESBase64.xml
deleted file mode 100644
index 6eb1ad98f..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/secretKeyAESBase64.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<security:Credential xmlns:security="urn:mace:shibboleth:2.0:security"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"
-
-	id="credential" xsi:type="security:BasicInline">
-    <security:SecretKey algorithm="AES" encoding="base64">
-        3MvnCRvjjWgqazN4O2cHCw==
-    </security:SecretKey>
-</security:Credential>
-    
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/secretKeyAESHex.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/credential/secretKeyAESHex.xml
deleted file mode 100644
index 75925e63e..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/secretKeyAESHex.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<security:Credential xmlns:security="urn:mace:shibboleth:2.0:security"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"
-
-	id="credential" xsi:type="security:BasicInline">
-    <security:SecretKey algorithm="AES" encoding="hex">
-        dccbe7091be38d682a6b33783b67070b
-    </security:SecretKey>
-</security:Credential>
-    
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/wrongPublicKey.pem b/opensaml-spring/src/test/resources/org/opensaml/spring/credential/wrongPublicKey.pem
deleted file mode 100644
index 33164a38a..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/credential/wrongPublicKey.pem
+++ /dev/null
@@ -1,6 +0,0 @@
------BEGIN PUBLIC KEY-----
-MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDnMoe4PkMY8RAf7IsMwgDkzjof
-AmTsfGUZDs31aaSFojbbNc8LRQ7yxjgAlb/yeWbSlznTmJCZuCyWDv8nIF6YGPWw
-juk6np4JQ+zs1HabBq6NcG26uJFokh4BfUaOvew77dou+rFQS7Q9apyLibW5zxcd
-AID4+URBBCcH1QgnBwIDAQAB
------END PUBLIC KEY-----
\ No newline at end of file
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/cert.pem b/opensaml-spring/src/test/resources/org/opensaml/spring/trust/cert.pem
deleted file mode 100644
index c0df65bc9..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/cert.pem
+++ /dev/null
@@ -1,22 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDtTCCAp2gAwIBAgIJAPmsD+VGldyPMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV
-BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX
-aWRnaXRzIFB0eSBMdGQwHhcNMTQwNDExMTMzOTE4WhcNMjQwNDA4MTMzOTE4WjBF
-MQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50
-ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-CgKCAQEAxg0TyQAP/tIvOH89EtaXuRRn8SYzTj7W1TbNY4VvBmobjkRmSkki4hH9
-x4sQpi635wn6WtXTN/FNNmkTK3N/LspmBWxfZS+n+cc7I82E5yvCAPX67QsZgqgg
-lp2W5dvK/FsMMCS6X6SVqzBLMP88NenXKxY+HMxMs0sT0UKYh1cAEqadrHRBO65a
-DBcm5a0sBVYt9K6pgaOHrp/zSIbhnR5tFFLjBbtFktDpHL3AdGBH3OYidNGKBO3t
-J3Ms7LeKXsM0+0Y4P+9fHZINL2X3E2N6GVnKs5PZTg9sP0FtIpAbYm/+zCx7Yj1E
-T/Er8mDd6tNVGSQsn9s5xUBwGqn14wIDAQABo4GnMIGkMB0GA1UdDgQWBBSiQhSu
-p9BYjD2ZuMkEiQK7w/Zq0TB1BgNVHSMEbjBsgBSiQhSup9BYjD2ZuMkEiQK7w/Zq
-0aFJpEcwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNV
-BAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZIIJAPmsD+VGldyPMAwGA1UdEwQF
-MAMBAf8wDQYJKoZIhvcNAQELBQADggEBAHZmIo9GBTSsD5DJfKkCVUvBafwR089H
-BkgVPOuVuEe803BRlKd4BVIsuxAUAy3oqdJYqf9ptPEx8Ef+ALbcDhRbWINhMgO7
-0/S4x3pS9gOn7/Y9yZplOe4Jd2q3R8QBef+hKLcD/Uv0Sqy2nilM8BnMga5tqsL+
-8oFt0blzXtQ2vcOVyNyG326uZBZv2Cf6FXFsYQX1L/tLeTBJegefgGkg2dqCTKIU
-1Qy/Kd2P3/S01kQxjDeG7UfXc9qtelJ68kvzK2d3WOJ2qmsdMxjMNfTItP7FO54M
-i8V7gp9HK+EimdSbgu7xktKlrqA2Rsn+dBoPSgOUs/LOGtCS9/biF0w=
------END CERTIFICATE-----
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/chain.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/trust/chain.xml
deleted file mode 100644
index 30154f530..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/chain.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<security:TrustEngine 
-    xmlns:security="urn:mace:shibboleth:2.0:security"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"
-    xsi:type="security:SignatureChaining" id="Chain">
-       <security:TrustEngine id="testBean"
-	xsi:type="security:StaticPKIXSignature" xmlns:security="urn:mace:shibboleth:2.0:security"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd">
-	<security:ValidationInfo id="PKIXInline"
-		xsi:type="security:PKIXInline" />
-	</security:TrustEngine>
-		<security:TrustEngine id="testBean"
-			xsi:type="security:StaticExplicitKeySignature">
-			<security:Credential id="IdPCredential" xsi:type="security:X509Inline">
-				<security:Certificate>
-					MIIDtTCCAp2gAwIBAgIJAPmsD+VGldyPMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV
-					BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX
-					aWRnaXRzIFB0eSBMdGQwHhcNMTQwNDExMTMzOTE4WhcNMjQwNDA4MTMzOTE4WjBF
-					MQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50
-					ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-					CgKCAQEAxg0TyQAP/tIvOH89EtaXuRRn8SYzTj7W1TbNY4VvBmobjkRmSkki4hH9
-					x4sQpi635wn6WtXTN/FNNmkTK3N/LspmBWxfZS+n+cc7I82E5yvCAPX67QsZgqgg
-					lp2W5dvK/FsMMCS6X6SVqzBLMP88NenXKxY+HMxMs0sT0UKYh1cAEqadrHRBO65a
-					DBcm5a0sBVYt9K6pgaOHrp/zSIbhnR5tFFLjBbtFktDpHL3AdGBH3OYidNGKBO3t
-					J3Ms7LeKXsM0+0Y4P+9fHZINL2X3E2N6GVnKs5PZTg9sP0FtIpAbYm/+zCx7Yj1E
-					T/Er8mDd6tNVGSQsn9s5xUBwGqn14wIDAQABo4GnMIGkMB0GA1UdDgQWBBSiQhSu
-					p9BYjD2ZuMkEiQK7w/Zq0TB1BgNVHSMEbjBsgBSiQhSup9BYjD2ZuMkEiQK7w/Zq
-					0aFJpEcwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNV
-					BAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZIIJAPmsD+VGldyPMAwGA1UdEwQF
-					MAMBAf8wDQYJKoZIhvcNAQELBQADggEBAHZmIo9GBTSsD5DJfKkCVUvBafwR089H
-					BkgVPOuVuEe803BRlKd4BVIsuxAUAy3oqdJYqf9ptPEx8Ef+ALbcDhRbWINhMgO7
-					0/S4x3pS9gOn7/Y9yZplOe4Jd2q3R8QBef+hKLcD/Uv0Sqy2nilM8BnMga5tqsL+
-					8oFt0blzXtQ2vcOVyNyG326uZBZv2Cf6FXFsYQX1L/tLeTBJegefgGkg2dqCTKIU
-					1Qy/Kd2P3/S01kQxjDeG7UfXc9qtelJ68kvzK2d3WOJ2qmsdMxjMNfTItP7FO54M
-					i8V7gp9HK+EimdSbgu7xktKlrqA2Rsn+dBoPSgOUs/LOGtCS9/biF0w=
-				</security:Certificate>
-			</security:Credential>
-		</security:TrustEngine>
-</security:TrustEngine>
\ No newline at end of file
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/chainingTrue.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/trust/chainingTrue.xml
deleted file mode 100644
index 5622efcad..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/chainingTrue.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util"
-    xmlns:c="http://www.springframework.org/schema/c" xmlns:p="http://www.springframework.org/schema/p"
-    xmlns:security="urn:mace:shibboleth:2.0:security"
-    xmlns:context="http://www.springframework.org/schema/context"
-    xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd
-                        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
-                        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
-                        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"
-    default-init-method="initialize" default-destroy-method="destroy">
-
-    <security:TrustEngine id="testBean" xsi:type="security:Chaining">
-        <security:TrustEngineRef ref="OneTrue"/> 
-    </security:TrustEngine>
-    
-    <bean id="OneTrue" class="org.opensaml.spring.trust.MockTrustEngine" c:retVal="true"/>
- </beans>
\ No newline at end of file
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/chainingTrueFalse.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/trust/chainingTrueFalse.xml
deleted file mode 100644
index 7ab5626ed..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/chainingTrueFalse.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util"
-    xmlns:c="http://www.springframework.org/schema/c" xmlns:p="http://www.springframework.org/schema/p"
-    xmlns:security="urn:mace:shibboleth:2.0:security"
-    xmlns:context="http://www.springframework.org/schema/context"
-    xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd
-                        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
-                        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
-                        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"
-    default-init-method="initialize" default-destroy-method="destroy">
-
-    <security:TrustEngine id="testBean" xsi:type="security:Chaining">
-        <security:TrustEngineRef ref="OneFalse"/> 
-        <security:TrustEngineRef ref="OneTrue"/> 
-        <security:TrustEngineRef ref="Object"/> 
-    </security:TrustEngine>
-    
-    <bean id="OneFalse" class="org.opensaml.spring.trust.MockTrustEngine" c:retVal="false"/>
-    <bean id="OneTrue" class="org.opensaml.spring.trust.MockTrustEngine" c:retVal="true"/>
-    <bean id="Object" class="java.lang.Object"/>
- </beans>
\ No newline at end of file
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/crl.pem b/opensaml-spring/src/test/resources/org/opensaml/spring/trust/crl.pem
deleted file mode 100644
index f8036cef1..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/crl.pem
+++ /dev/null
@@ -1,19 +0,0 @@
------BEGIN X509 CRL-----
-MIIDBjCCAe4CAQEwDQYJKoZIhvcNAQEEBQAwVjELMAkGA1UEBhMCVVMxHDAaBgNV
-BAoTE0luQ29tbW9uIEZlZGVyYXRpb24xKTAnBgNVBAMTIEluQ29tbW9uIENlcnRp
-ZmljYXRpb24gQXV0aG9yaXR5Fw0wNzA4MDMxNDE0NDhaFw0wNzA5MDIxNDE0NDha
-MIHdMBICAQIXDTA0MDMzMTE5NDk0NFowEgIBDhcNMDQwOTE3MTkzMTUxWjASAgEP
-Fw0wNDA5MTcxOTMyMTRaMBICARYXDTA1MDMyMjE3MTYyMFowEgIBHBcNMDUwMjAx
-MTkyOTUxWjASAgE+Fw0wNjA0MDcxNjM1MzFaMBICAUAXDTA2MDQwNzE2MzQ1NFow
-EgIBQRcNMDYwNDEwMTcyMjE1WjASAgFWFw0wNjA3MjAxNzIyMzVaMBICAW8XDTA2
-MTIxOTIwMTQxMVowEwICAIwXDTA3MDMyOTIxMjE0N1qggYMwgYAwfgYDVR0jBHcw
-dYAUky3IYRitY+ObZbOd3Y2TuufKY0WhWqRYMFYxCzAJBgNVBAYTAlVTMRwwGgYD
-VQQKExNJbkNvbW1vbiBGZWRlcmF0aW9uMSkwJwYDVQQDEyBJbkNvbW1vbiBDZXJ0
-aWZpY2F0aW9uIEF1dGhvcml0eYIBADANBgkqhkiG9w0BAQQFAAOCAQEAeCvRTq70
-RJxkxgbV+crqhN6oh3k974GGXhOxYDTTGjYbhK8JnCXkt1uJcnGfl1xyqrozoSrl
-oxoBUmStA8vVqYwtO/FfGpnCyfOG9H2/rAkzbqwr/EXO+MqSd8e1AIJho97i/QSs
-FWp40h7GeanmiZXL6bc4o9cKb0ROtc1n2nYHkLXptf9bFHte2Z/RhbUr8KaPU4b9
-T9PW9a2Z7Oc4BDHpEUcljZL0AlO6mGI2RtDB9RdrtRY6M9YQbBwUcV9r+/+ylfZY
-ugMRDTNUqL72hHKJgmbnfc0CmkcZKHOIGXdGCIX6ewNsLOQnlFAQEVyojQqbzT8w
-s6E8aj6AzPhKyw==
------END X509 CRL-----
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/inlineValidationInfo.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/trust/inlineValidationInfo.xml
deleted file mode 100644
index 263193d70..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/inlineValidationInfo.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<security:ValidationInfo xmlns:security="urn:mace:shibboleth:2.0:security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
-    xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"
-
-    id="PKIXInline" xsi:type="security:PKIXInline"/>
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/inlineValidationInfoValues.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/trust/inlineValidationInfoValues.xml
deleted file mode 100644
index 025db6ed1..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/inlineValidationInfoValues.xml
+++ /dev/null
@@ -1,77 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<security:ValidationInfo xmlns:security="urn:mace:shibboleth:2.0:security"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"
-	id="PKIXInlineValues" xsi:type="security:PKIXInline" verifyDepth="98">
-    <security:Certificate>
-        MIIDSTCCArKgAwIBAgIJAKg8tR5hjVM4MA0GCSqGSIb3DQEBBQUAMHcxCzAJBgNV
-        BAYTAlVTMR0wGwYDVQQIExREaXN0cmljdCBvZiBDb2x1bWJpYTETMBEGA1UEBxMK
-        V2FzaGluZ3RvbjEeMBwGA1UEChMVR2VvcmdldG93biBVbml2ZXJzaXR5MRQwEgYD
-        VQQDEwtleGFtcGxlLm9yZzAeFw0wNzA4MDUxMzA4MDJaFw0xNzA4MDIxMzA4MDJa
-        MHcxCzAJBgNVBAYTAlVTMR0wGwYDVQQIExREaXN0cmljdCBvZiBDb2x1bWJpYTET
-        MBEGA1UEBxMKV2FzaGluZ3RvbjEeMBwGA1UEChMVR2VvcmdldG93biBVbml2ZXJz
-        aXR5MRQwEgYDVQQDEwtleGFtcGxlLm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
-        gYkCgYEA5zKHuD5DGPEQH+yLDMIA5M46HwJk7HxlGQ7N9WmkhaI22zXPC0UO8sY4
-        AJW/8nlm0pc505iQmbgslg7/JyBemBj1sI7pOp6eCUPs7NR2mwaujXBturiRaJIe
-        AX1Gjr3sO+3aLvqxUEu0PWqci4m1uc8XHQCA+PlEQQQnB9UIJwcCAwEAAaOB3DCB
-        2TAdBgNVHQ4EFgQUzEhylzE4wmr4FK1lZ7zjR/KmA24wgakGA1UdIwSBoTCBnoAU
-        zEhylzE4wmr4FK1lZ7zjR/KmA26he6R5MHcxCzAJBgNVBAYTAlVTMR0wGwYDVQQI
-        ExREaXN0cmljdCBvZiBDb2x1bWJpYTETMBEGA1UEBxMKV2FzaGluZ3RvbjEeMBwG
-        A1UEChMVR2VvcmdldG93biBVbml2ZXJzaXR5MRQwEgYDVQQDEwtleGFtcGxlLm9y
-        Z4IJAKg8tR5hjVM4MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAGfkM
-        HUeWzHzsBkwTu+S2vX4gzlJPjiL3RzL40og/qyGz38P4KVg8IQvsGDjs1VFzzcAJ
-        I5ULnSocUOTk5sCTjDKT6VILhgAYJ1jnqIo7Z+VC1r3AS9cSDakzqWTc19EFKxEw
-        6jeBWaqyykdSiVhCAmG5AJsvk+K032zjkWWMo+0=
-    </security:Certificate>
-    <security:Certificate>
-        MIIFmjCCBIKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBWMQswCQYDVQQGEwJVUzEc
-        MBoGA1UEChMTSW5Db21tb24gRmVkZXJhdGlvbjEpMCcGA1UEAxMgSW5Db21tb24g
-        Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwMzMwMjAzNDAwWhcNMTQwMzI5
-        MjAzNDAwWjBWMQswCQYDVQQGEwJVUzEcMBoGA1UEChMTSW5Db21tb24gRmVkZXJh
-        dGlvbjEpMCcGA1UEAxMgSW5Db21tb24gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkw
-        ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDRGjKsUM2QAupLAaWx82/C
-        WPalKjKFY8UPmz0T3gf7tJPztTy1Zq8pD0WFRLcQeSBKZGCu8upe8X966b6TZ5yu
-        oUDA754If0DWismuHNoMgRR/l0UvZmPWDGRWd3NBTB8/soLA4EbqFf5Xq8MOJKhP
-        tzcDR33gtaAb3oilZ+ZTpnhTFFrn/qXrAKcSDBpuW2JRpi3xaF/hTPI097oUShOz
-        D1Zj21UYLA6iSFVN+1wlfwilf2KFNK/+zbkCge6wgipZyXxaOAam6ncqmkxy+hy/
-        OiJMmdB+6xkO0xXSBUUcqxJrOcUQhA1vntgb3q5zOJISXhC4RAReA0HyBp/wd0iD
-        AgMBAAGjggJxMIICbTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd
-        BgNVHQ4EFgQUky3IYRitY+ObZbOd3Y2TuufKY0UwfgYDVR0jBHcwdYAUky3IYRit
-        Y+ObZbOd3Y2TuufKY0WhWqRYMFYxCzAJBgNVBAYTAlVTMRwwGgYDVQQKExNJbkNv
-        bW1vbiBGZWRlcmF0aW9uMSkwJwYDVQQDEyBJbkNvbW1vbiBDZXJ0aWZpY2F0aW9u
-        IEF1dGhvcml0eYIBADCBugYIKwYBBQUHAQEEga0wgaowgacGCCsGAQUFBzAChoGa
-        aHR0cDovL2luY29tbW9uY2ExLmluY29tbW9uZmVkZXJhdGlvbi5vcmcvYnJpZGdl
-        L2NlcnRzL2NhLWNlcnRzLnA3YgoJCUNBIElzc3VlcnMgLSBVUkk6aHR0cDovL2lu
-        Y29tbW9uY2EyLmluY29tbW9uZmVkZXJhdGlvbi5vcmcvYnJpZGdlL2NlcnRzL2Nh
-        LWNlcnRzLnA3YjCBjQYDVR0fBIGFMIGCMD+gPaA7hjlodHRwOi8vaW5jb21tb25j
-        cmwxLmluY29tbW9uZmVkZXJhdGlvbi5vcmcvY3JsL2VlY3Jscy5jcmwwP6A9oDuG
-        OWh0dHA6Ly9pbmNvbW1vbmNybDIuaW5jb21tb25mZWRlcmF0aW9uLm9yZy9jcmwv
-        ZWVjcmxzLmNybDBeBgNVHSAEVzBVMFMGCysGAQQBriMBBAEBMEQwQgYIKwYBBQUH
-        AgEWNmh0dHA6Ly9pbmNvbW1vbmNhLmluY29tbW9uZmVkZXJhdGlvbi5vcmcvcHJh
-        Y3RpY2VzLnBkZjANBgkqhkiG9w0BAQUFAAOCAQEAZfgKUPA+Ky+Ou/vclMlFTMlU
-        GspfbNSdG/fmIq+E/Lv1d2c73Am1zGhOpxgdkM8SE+BPnXW2rl71/N8gaqwgBBxk
-        pwn410siumxlDTwV3HoVFvCGWylNy9o8OE1LyTCqfo8PRwrMzhwcagDgD813BIyj
-        uJg/JQz1LnHMocIW/JligloSIzF1O435/+ckfWXQsmBIhvV5TmA3ZrcycrI1cHGE
-        ZqrCXL0FMZLSr+Vady/tFbVojqI8pSubSMxNkZectePTBjVj1Qeb4hmG8jRv/fwy
-        1Iw6OFH8RKny8nQaO5mOe/fF/swEsMVU9TDpvLIgbhTwnP7Nhfotgaxf5wG8WA==
-    </security:Certificate>
-    <security:CRL>
-        MIIDBjCCAe4CAQEwDQYJKoZIhvcNAQEEBQAwVjELMAkGA1UEBhMCVVMxHDAaBgNV
-        BAoTE0luQ29tbW9uIEZlZGVyYXRpb24xKTAnBgNVBAMTIEluQ29tbW9uIENlcnRp
-        ZmljYXRpb24gQXV0aG9yaXR5Fw0wNzA4MDMxNDE0NDhaFw0wNzA5MDIxNDE0NDha
-        MIHdMBICAQIXDTA0MDMzMTE5NDk0NFowEgIBDhcNMDQwOTE3MTkzMTUxWjASAgEP
-        Fw0wNDA5MTcxOTMyMTRaMBICARYXDTA1MDMyMjE3MTYyMFowEgIBHBcNMDUwMjAx
-        MTkyOTUxWjASAgE+Fw0wNjA0MDcxNjM1MzFaMBICAUAXDTA2MDQwNzE2MzQ1NFow
-        EgIBQRcNMDYwNDEwMTcyMjE1WjASAgFWFw0wNjA3MjAxNzIyMzVaMBICAW8XDTA2
-        MTIxOTIwMTQxMVowEwICAIwXDTA3MDMyOTIxMjE0N1qggYMwgYAwfgYDVR0jBHcw
-        dYAUky3IYRitY+ObZbOd3Y2TuufKY0WhWqRYMFYxCzAJBgNVBAYTAlVTMRwwGgYD
-        VQQKExNJbkNvbW1vbiBGZWRlcmF0aW9uMSkwJwYDVQQDEyBJbkNvbW1vbiBDZXJ0
-        aWZpY2F0aW9uIEF1dGhvcml0eYIBADANBgkqhkiG9w0BAQQFAAOCAQEAeCvRTq70
-        RJxkxgbV+crqhN6oh3k974GGXhOxYDTTGjYbhK8JnCXkt1uJcnGfl1xyqrozoSrl
-        oxoBUmStA8vVqYwtO/FfGpnCyfOG9H2/rAkzbqwr/EXO+MqSd8e1AIJho97i/QSs
-        FWp40h7GeanmiZXL6bc4o9cKb0ROtc1n2nYHkLXptf9bFHte2Z/RhbUr8KaPU4b9
-        T9PW9a2Z7Oc4BDHpEUcljZL0AlO6mGI2RtDB9RdrtRY6M9YQbBwUcV9r+/+ylfZY
-        ugMRDTNUqL72hHKJgmbnfc0CmkcZKHOIGXdGCIX6ewNsLOQnlFAQEVyojQqbzT8w
-        s6E8aj6AzPhKyw==
-    </security:CRL>
-</security:ValidationInfo>
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/resourceValidationInfo.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/trust/resourceValidationInfo.xml
deleted file mode 100644
index 3ee7a7dbd..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/resourceValidationInfo.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<security:ValidationInfo xmlns:security="urn:mace:shibboleth:2.0:security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
-    xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"
-
-    id="validInfoSimple" xsi:type="security:PKIXResourceBacked"/>
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/resourceValidationInfoValues.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/trust/resourceValidationInfoValues.xml
deleted file mode 100644
index cd6f56f91..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/resourceValidationInfoValues.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<security:ValidationInfo xmlns:security="urn:mace:shibboleth:2.0:security"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"
-	id="validInfoValues" xsi:type="security:PKIXResourceBacked" verifyDepth="99">
-	
-	<security:Certificate>%{DIR}/trust/cert.pem</security:Certificate>
-	<security:Certificate>classpath:/org/opensaml/spring/trust/cert.pem</security:Certificate>
-	<security:CRL>%{DIR}/trust/crl.pem</security:CRL>
-</security:ValidationInfo>
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/staticExplicit.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/trust/staticExplicit.xml
deleted file mode 100644
index ec84d9966..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/staticExplicit.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<security:TrustEngine id="testBean"
-	xsi:type="security:StaticExplicitKey" xmlns:security="urn:mace:shibboleth:2.0:security"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd">
-	<security:Credential id="InLineBean" xsi:type="security:X509Inline">
-		<security:Certificate>
-			MIIDtTCCAp2gAwIBAgIJAPmsD+VGldyPMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV
-			BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX
-			aWRnaXRzIFB0eSBMdGQwHhcNMTQwNDExMTMzOTE4WhcNMjQwNDA4MTMzOTE4WjBF
-			MQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50
-			ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-			CgKCAQEAxg0TyQAP/tIvOH89EtaXuRRn8SYzTj7W1TbNY4VvBmobjkRmSkki4hH9
-			x4sQpi635wn6WtXTN/FNNmkTK3N/LspmBWxfZS+n+cc7I82E5yvCAPX67QsZgqgg
-			lp2W5dvK/FsMMCS6X6SVqzBLMP88NenXKxY+HMxMs0sT0UKYh1cAEqadrHRBO65a
-			DBcm5a0sBVYt9K6pgaOHrp/zSIbhnR5tFFLjBbtFktDpHL3AdGBH3OYidNGKBO3t
-			J3Ms7LeKXsM0+0Y4P+9fHZINL2X3E2N6GVnKs5PZTg9sP0FtIpAbYm/+zCx7Yj1E
-			T/Er8mDd6tNVGSQsn9s5xUBwGqn14wIDAQABo4GnMIGkMB0GA1UdDgQWBBSiQhSu
-			p9BYjD2ZuMkEiQK7w/Zq0TB1BgNVHSMEbjBsgBSiQhSup9BYjD2ZuMkEiQK7w/Zq
-			0aFJpEcwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNV
-			BAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZIIJAPmsD+VGldyPMAwGA1UdEwQF
-			MAMBAf8wDQYJKoZIhvcNAQELBQADggEBAHZmIo9GBTSsD5DJfKkCVUvBafwR089H
-			BkgVPOuVuEe803BRlKd4BVIsuxAUAy3oqdJYqf9ptPEx8Ef+ALbcDhRbWINhMgO7
-			0/S4x3pS9gOn7/Y9yZplOe4Jd2q3R8QBef+hKLcD/Uv0Sqy2nilM8BnMga5tqsL+
-			8oFt0blzXtQ2vcOVyNyG326uZBZv2Cf6FXFsYQX1L/tLeTBJegefgGkg2dqCTKIU
-			1Qy/Kd2P3/S01kQxjDeG7UfXc9qtelJ68kvzK2d3WOJ2qmsdMxjMNfTItP7FO54M
-			i8V7gp9HK+EimdSbgu7xktKlrqA2Rsn+dBoPSgOUs/LOGtCS9/biF0w=
-		</security:Certificate>
-	</security:Credential>
-</security:TrustEngine>
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/staticExplicitSignature.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/trust/staticExplicitSignature.xml
deleted file mode 100644
index 2fbaec963..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/staticExplicitSignature.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<security:TrustEngine id="testBean"
-	xsi:type="security:StaticExplicitKeySignature" xmlns:security="urn:mace:shibboleth:2.0:security"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd">
-	<security:Credential id="InLineBean" xsi:type="security:X509Inline">
-		<security:Certificate>
-			MIIDtTCCAp2gAwIBAgIJAPmsD+VGldyPMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV
-			BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX
-			aWRnaXRzIFB0eSBMdGQwHhcNMTQwNDExMTMzOTE4WhcNMjQwNDA4MTMzOTE4WjBF
-			MQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50
-			ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-			CgKCAQEAxg0TyQAP/tIvOH89EtaXuRRn8SYzTj7W1TbNY4VvBmobjkRmSkki4hH9
-			x4sQpi635wn6WtXTN/FNNmkTK3N/LspmBWxfZS+n+cc7I82E5yvCAPX67QsZgqgg
-			lp2W5dvK/FsMMCS6X6SVqzBLMP88NenXKxY+HMxMs0sT0UKYh1cAEqadrHRBO65a
-			DBcm5a0sBVYt9K6pgaOHrp/zSIbhnR5tFFLjBbtFktDpHL3AdGBH3OYidNGKBO3t
-			J3Ms7LeKXsM0+0Y4P+9fHZINL2X3E2N6GVnKs5PZTg9sP0FtIpAbYm/+zCx7Yj1E
-			T/Er8mDd6tNVGSQsn9s5xUBwGqn14wIDAQABo4GnMIGkMB0GA1UdDgQWBBSiQhSu
-			p9BYjD2ZuMkEiQK7w/Zq0TB1BgNVHSMEbjBsgBSiQhSup9BYjD2ZuMkEiQK7w/Zq
-			0aFJpEcwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNV
-			BAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZIIJAPmsD+VGldyPMAwGA1UdEwQF
-			MAMBAf8wDQYJKoZIhvcNAQELBQADggEBAHZmIo9GBTSsD5DJfKkCVUvBafwR089H
-			BkgVPOuVuEe803BRlKd4BVIsuxAUAy3oqdJYqf9ptPEx8Ef+ALbcDhRbWINhMgO7
-			0/S4x3pS9gOn7/Y9yZplOe4Jd2q3R8QBef+hKLcD/Uv0Sqy2nilM8BnMga5tqsL+
-			8oFt0blzXtQ2vcOVyNyG326uZBZv2Cf6FXFsYQX1L/tLeTBJegefgGkg2dqCTKIU
-			1Qy/Kd2P3/S01kQxjDeG7UfXc9qtelJ68kvzK2d3WOJ2qmsdMxjMNfTItP7FO54M
-			i8V7gp9HK+EimdSbgu7xktKlrqA2Rsn+dBoPSgOUs/LOGtCS9/biF0w=
-		</security:Certificate>
-	</security:Credential>
-</security:TrustEngine>
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/staticPKIX-nameCheckDisabled.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/trust/staticPKIX-nameCheckDisabled.xml
deleted file mode 100644
index a67e5bdba..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/staticPKIX-nameCheckDisabled.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<security:TrustEngine id="testBean" trustedNameCheckEnabled="false"
-	xsi:type="security:StaticPKIXSignature" xmlns:security="urn:mace:shibboleth:2.0:security"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd">
-	<security:ValidationInfo id="PKIXInline"
-		xsi:type="security:PKIXInline" />
-</security:TrustEngine>
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/staticPKIX.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/trust/staticPKIX.xml
deleted file mode 100644
index c32778780..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/staticPKIX.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<security:TrustEngine id="testBean"
-	xsi:type="security:StaticPKIXSignature" xmlns:security="urn:mace:shibboleth:2.0:security"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd">
-	<security:ValidationInfo id="PKIXInline"
-		xsi:type="security:PKIXInline" />
-</security:TrustEngine>
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/staticPKIXCredentials-nameCheckDisabled.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/trust/staticPKIXCredentials-nameCheckDisabled.xml
deleted file mode 100644
index 10468c5d4..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/staticPKIXCredentials-nameCheckDisabled.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<security:TrustEngine id="testBean" trustedNameCheckEnabled="false"
-	xsi:type="security:StaticPKIXX509Credential" xmlns:security="urn:mace:shibboleth:2.0:security"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd">
-	<security:ValidationInfo id="PKIXFS"
-		xsi:type="security:PKIXResourceBacked" verifyDepth="99" />
-	<security:ValidationOptions xsi:type="security:CertPathValidationOptionsType"
-		processCredentialCRLs="false" processExpiredCRLs="false"
-		processEmptyCRLs="false" defaultVerificationDepth="3"
-		anyPolicyInhibit="true" policyMappingInhibit="true" forceRevocationEnabled="true" revocationEnabled="false"
-		 >
-		 <security:PolicyOID>1234
-		 </security:PolicyOID><security:PolicyOID>       
-		 
-		 </security:PolicyOID>
-		 </security:ValidationOptions>
-</security:TrustEngine>
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/staticPKIXCredentials.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/trust/staticPKIXCredentials.xml
deleted file mode 100644
index 552f3ac82..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/staticPKIXCredentials.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<security:TrustEngine id="testBean"
-	xsi:type="security:StaticPKIXX509Credential" xmlns:security="urn:mace:shibboleth:2.0:security"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd">
-	<security:TrustedName>Name1</security:TrustedName>
-	<security:ValidationInfo id="PKIXFS"
-		xsi:type="security:PKIXResourceBacked" verifyDepth="99" />
-	<security:ValidationOptions xsi:type="security:CertPathValidationOptionsType"
-		processCredentialCRLs="false" processExpiredCRLs="false"
-		processEmptyCRLs="false" defaultVerificationDepth="3"
-		anyPolicyInhibit="true" policyMappingInhibit="true" forceRevocationEnabled="true" revocationEnabled="false"
-		 >
-		 <security:PolicyOID>1234
-		 </security:PolicyOID><security:PolicyOID>       
-		 
-		 </security:PolicyOID>
-		 </security:ValidationOptions>
-</security:TrustEngine>
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/staticPKIXValues.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/trust/staticPKIXValues.xml
deleted file mode 100644
index 19dc58de5..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/staticPKIXValues.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<security:TrustEngine id="testBean"
-	xsi:type="security:StaticPKIXSignature" xmlns:security="urn:mace:shibboleth:2.0:security"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd">
-	<security:TrustedName>Name1</security:TrustedName>
-	<security:TrustedName>Name2</security:TrustedName>
-	<security:TrustedName>Name3</security:TrustedName>
-	<security:ValidationInfo id="PKIXFS"
-		xsi:type="security:PKIXResourceBacked" verifyDepth="99" />
-	<security:ValidationInfo id="PKIXIL"
-		xsi:type="security:PKIXInline" verifyDepth="98" />
-	<security:ValidationOptions
-		processCredentialCRLs="false" processExpiredCRLs="false"
-		processEmptyCRLs="false" defaultVerificationDepth="2" />
-</security:TrustEngine>
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/staticPKIXValuesCertPathOpts.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/trust/staticPKIXValuesCertPathOpts.xml
deleted file mode 100644
index deacbff09..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/staticPKIXValuesCertPathOpts.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<security:TrustEngine id="testBean"
-	xsi:type="security:StaticPKIXSignature" xmlns:security="urn:mace:shibboleth:2.0:security"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd">
-	<security:TrustedName>Name1</security:TrustedName>
-	<security:ValidationInfo id="PKIXFS"
-		xsi:type="security:PKIXResourceBacked" verifyDepth="99" />
-	<security:ValidationOptions xsi:type="security:CertPathValidationOptionsType"
-		processCredentialCRLs="false" processExpiredCRLs="false"
-		processEmptyCRLs="false" defaultVerificationDepth="3"
-		anyPolicyInhibit="true" policyMappingInhibit="true" forceRevocationEnabled="true" revocationEnabled="false"
-		 >
-		 <security:PolicyOID>1234
-		 </security:PolicyOID><security:PolicyOID>       
-		 
-		 </security:PolicyOID>
-		 </security:ValidationOptions>
-</security:TrustEngine>
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/validationOptions.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/trust/validationOptions.xml
deleted file mode 100644
index eb36a831b..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/validationOptions.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<security:ValidationOptions
-    xmlns:security="urn:mace:shibboleth:2.0:security"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"/>
\ No newline at end of file
diff --git a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/validationOptionsValues.xml b/opensaml-spring/src/test/resources/org/opensaml/spring/trust/validationOptionsValues.xml
deleted file mode 100644
index 7ec42ed68..000000000
--- a/opensaml-spring/src/test/resources/org/opensaml/spring/trust/validationOptionsValues.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<security:ValidationOptions
-    xmlns:security="urn:mace:shibboleth:2.0:security"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"
-    
-    processCredentialCRLs="false" processExpiredCRLs="true" processEmptyCRLs="false" defaultVerificationDepth="2"/>
\ No newline at end of file
diff --git a/opensaml-spring/test-output/Default suite/Default test.html b/opensaml-spring/test-output/Default suite/Default test.html
index d9e7f5982..c3f3e6452 100644
--- a/opensaml-spring/test-output/Default suite/Default test.html	
+++ b/opensaml-spring/test-output/Default suite/Default test.html	
@@ -55,11 +55,11 @@ function toggleAllBoxes() {
 <body>
 <h2 align='center'>Default test</h2><table border='1' align="center">
 <tr>
-<td>Tests passed/Failed/Skipped:</td><td>43/0/0</td>
+<td>Tests passed/Failed/Skipped:</td><td>8/0/0</td>
 </tr><tr>
-<td>Started on:</td><td>Wed Jun 08 10:36:14 EDT 2022</td>
+<td>Started on:</td><td>Fri Jul 01 14:26:55 EDT 2022</td>
 </tr>
-<tr><td>Total time:</td><td>2 seconds (2631 ms)</td>
+<tr><td>Total time:</td><td>1 seconds (1329 ms)</td>
 </tr><tr>
 <td>Included groups:</td><td></td>
 </tr><tr>
@@ -75,309 +75,35 @@ function toggleAllBoxes() {
 <td><b>Instance</b></td>
 </tr>
 <tr>
-<td title='org.opensaml.spring.trust.PKIXValidationOptionsParserTest.complex()'><b>complex</b><br>Test class: org.opensaml.spring.trust.PKIXValidationOptionsParserTest</td>
-<td></td>
-<td>0</td>
-<td>org.opensaml.spring.trust.PKIXValidationOptionsParserTest at 1eb5174b</td></tr>
-<tr>
-<td title='org.opensaml.spring.trust.PKIXInlineParserTest.complex()'><b>complex</b><br>Test class: org.opensaml.spring.trust.PKIXInlineParserTest</td>
-<td></td>
-<td>0</td>
-<td>org.opensaml.spring.trust.PKIXInlineParserTest at 41e1e210</td></tr>
-<tr>
-<td title='org.opensaml.spring.trust.StaticPKIXSignatureParserTest.simple()'><b>simple</b><br>Test class: org.opensaml.spring.trust.StaticPKIXSignatureParserTest</td>
-<td></td>
-<td>0</td>
-<td>org.opensaml.spring.trust.StaticPKIXSignatureParserTest at 4944252c</td></tr>
-<tr>
-<td title='org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest.mixed()'><b>mixed</b><br>Test class: org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest</td>
-<td></td>
-<td>0</td>
-<td>org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 11bd0f3b</td></tr>
-<tr>
-<td title='org.opensaml.spring.credential.X509FilesystemParserTest.twoCert()'><b>twoCert</b><br>Test class: org.opensaml.spring.credential.X509FilesystemParserTest</td>
-<td><div><pre>org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'IdPCredential': Invocation of init method failed; nested exception is org.springframework.beans.FatalBeanException: Configuration element indicated an entityCertificate, but multiple certificates were decoded
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1755)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:604)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:526)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326)
-	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:225)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1265)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1226)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveBean(DefaultListableBeanFactory.java:483)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:338)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:331)
-	at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1159)
-	at org.opensaml.spring.AbstractSecurityParserTest.getBean(AbstractSecurityParserTest.java:95)
-	at org.opensaml.spring.AbstractSecurityParserTest.getBean(AbstractSecurityParserTest.java:68)
-	at org.opensaml.spring.credential.X509FilesystemParserTest.lookup(X509FilesystemParserTest.java:39)
-	at org.opensaml.spring.credential.X509FilesystemParserTest.twoCert(X509FilesystemParserTest.java:53)
-	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
-	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
-	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:135)
-	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:673)
-	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:220)
-	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:50)
-	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:945)
-	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:193)
-	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
-	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
-	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
-	at org.testng.TestRunner.privateRun(TestRunner.java:808)
-	at org.testng.TestRunner.run(TestRunner.java:603)
-	at org.testng.SuiteRunner.runTest(SuiteRunner.java:429)
-	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:423)
-	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:383)
-	at org.testng.SuiteRunner.run(SuiteRunner.java:326)
-	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
-	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
-	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1249)
-	at org.testng.TestNG.runSuitesLocally(TestNG.java:1169)
-	at org.testng.TestNG.runSuites(TestNG.java:1092)
-	at org.testng.TestNG.run(TestNG.java:1060)
-	at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
-	at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
-	at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
-Caused by: org.springframework.beans.FatalBeanException: Configuration element indicated an entityCertificate, but multiple certificates were decoded
-	at org.opensaml.spring.credential.BasicX509CredentialFactoryBean.getEntityCertificate(BasicX509CredentialFactoryBean.java:161)
-	at org.opensaml.spring.credential.AbstractX509CredentialFactoryBean.doCreateInstance(AbstractX509CredentialFactoryBean.java:55)
-	at org.opensaml.spring.credential.AbstractX509CredentialFactoryBean.doCreateInstance(AbstractX509CredentialFactoryBean.java:1)
-	at net.shibboleth.ext.spring.factory.AbstractComponentAwareFactoryBean.createInstance(AbstractComponentAwareFactoryBean.java:49)
-	at org.springframework.beans.factory.config.AbstractFactoryBean.afterPropertiesSet(AbstractFactoryBean.java:142)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1802)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1751)
-	... 44 more
-</pre></div><a href='#' onClick='toggleBox("stack-trace1074844820", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
-<div class='stack-trace' id='stack-trace1074844820'><pre>org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'IdPCredential': Invocation of init method failed; nested exception is org.springframework.beans.FatalBeanException: Configuration element indicated an entityCertificate, but multiple certificates were decoded
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1755)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:604)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:526)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326)
-	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:225)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1265)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1226)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveBean(DefaultListableBeanFactory.java:483)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:338)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:331)
-	at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1159)
-	at org.opensaml.spring.AbstractSecurityParserTest.getBean(AbstractSecurityParserTest.java:95)
-	at org.opensaml.spring.AbstractSecurityParserTest.getBean(AbstractSecurityParserTest.java:68)
-	at org.opensaml.spring.credential.X509FilesystemParserTest.lookup(X509FilesystemParserTest.java:39)
-	at org.opensaml.spring.credential.X509FilesystemParserTest.twoCert(X509FilesystemParserTest.java:53)
-	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
-	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
-	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:135)
-	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:673)
-	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:220)
-	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:50)
-	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:945)
-	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:193)
-	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
-	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
-	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
-	at org.testng.TestRunner.privateRun(TestRunner.java:808)
-	at org.testng.TestRunner.run(TestRunner.java:603)
-	at org.testng.SuiteRunner.runTest(SuiteRunner.java:429)
-	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:423)
-	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:383)
-	at org.testng.SuiteRunner.run(SuiteRunner.java:326)
-	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
-	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
-	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1249)
-	at org.testng.TestNG.runSuitesLocally(TestNG.java:1169)
-	at org.testng.TestNG.runSuites(TestNG.java:1092)
-	at org.testng.TestNG.run(TestNG.java:1060)
-	at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
-	at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
-	at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
-Caused by: org.springframework.beans.FatalBeanException: Configuration element indicated an entityCertificate, but multiple certificates were decoded
-	at org.opensaml.spring.credential.BasicX509CredentialFactoryBean.getEntityCertificate(BasicX509CredentialFactoryBean.java:161)
-	at org.opensaml.spring.credential.AbstractX509CredentialFactoryBean.doCreateInstance(AbstractX509CredentialFactoryBean.java:55)
-	at org.opensaml.spring.credential.AbstractX509CredentialFactoryBean.doCreateInstance(AbstractX509CredentialFactoryBean.java:1)
-	at net.shibboleth.ext.spring.factory.AbstractComponentAwareFactoryBean.createInstance(AbstractComponentAwareFactoryBean.java:49)
-	at org.springframework.beans.factory.config.AbstractFactoryBean.afterPropertiesSet(AbstractFactoryBean.java:142)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1802)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1751)
-	... 44 more
-</pre></div></td>
-<td>0</td>
-<td>org.opensaml.spring.credential.X509FilesystemParserTest at 72cde7cc</td></tr>
-<tr>
-<td title='org.opensaml.spring.trust.PKIXFilesystemParserTest.complex()'><b>complex</b><br>Test class: org.opensaml.spring.trust.PKIXFilesystemParserTest</td>
-<td></td>
-<td>0</td>
-<td>org.opensaml.spring.trust.PKIXFilesystemParserTest at 67080771</td></tr>
-<tr>
-<td title='org.opensaml.spring.credential.BasicInlineParserTest.publicPrivate()'><b>publicPrivate</b><br>Test class: org.opensaml.spring.credential.BasicInlineParserTest</td>
-<td></td>
-<td>0</td>
-<td>org.opensaml.spring.credential.BasicInlineParserTest at 2f8dad04</td></tr>
-<tr>
-<td title='org.opensaml.spring.trust.StaticPKIXSignatureParserTest.values()'><b>values</b><br>Test class: org.opensaml.spring.trust.StaticPKIXSignatureParserTest</td>
+<td title='org.opensaml.spring.trust.StaticPKIXFactoryBeanTest.customPropertiesSuccess()'><b>customPropertiesSuccess</b><br>Test class: org.opensaml.spring.trust.StaticPKIXFactoryBeanTest</td>
 <td></td>
 <td>0</td>
-<td>org.opensaml.spring.trust.StaticPKIXSignatureParserTest at 4944252c</td></tr>
+<td>org.opensaml.spring.trust.StaticPKIXFactoryBeanTest at 3d6f0054</td></tr>
 <tr>
-<td title='org.opensaml.spring.trust.ChainingTrustEngineTest.one()'><b>one</b><br>Test class: org.opensaml.spring.trust.ChainingTrustEngineTest</td>
+<td title='org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest.singleCert()'><b>singleCert</b><br>Test class: org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest</td>
 <td></td>
 <td>0</td>
-<td>org.opensaml.spring.trust.ChainingTrustEngineTest at 696da30b</td></tr>
-<tr>
-<td title='org.opensaml.spring.credential.BasicResourceParserTest.wrongCert()'><b>wrongCert</b><br>Test class: org.opensaml.spring.credential.BasicResourceParserTest</td>
-<td><div><pre>org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'IdPCredential': Invocation of init method failed; nested exception is org.opensaml.security.SecurityException: Error during signature verification
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1755)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:604)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:526)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326)
-	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:225)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1265)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1226)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveBean(DefaultListableBeanFactory.java:483)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:338)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:331)
-	at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1159)
-	at org.opensaml.spring.AbstractSecurityParserTest.getBean(AbstractSecurityParserTest.java:95)
-	at org.opensaml.spring.AbstractSecurityParserTest.getBean(AbstractSecurityParserTest.java:68)
-	at org.opensaml.spring.credential.BasicResourceParserTest.wrongCert(BasicResourceParserTest.java:46)
-	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
-	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
-	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:135)
-	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:673)
-	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:220)
-	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:50)
-	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:945)
-	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:193)
-	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
-	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
-	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
-	at org.testng.TestRunner.privateRun(TestRunner.java:808)
-	at org.testng.TestRunner.run(TestRunner.java:603)
-	at org.testng.SuiteRunner.runTest(SuiteRunner.java:429)
-	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:423)
-	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:383)
-	at org.testng.SuiteRunner.run(SuiteRunner.java:326)
-	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
-	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
-	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1249)
-	at org.testng.TestNG.runSuitesLocally(TestNG.java:1169)
-	at org.testng.TestNG.runSuites(TestNG.java:1092)
-	at org.testng.TestNG.run(TestNG.java:1060)
-	at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
-	at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
-	at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
-Caused by: org.opensaml.security.SecurityException: Error during signature verification
-	at org.opensaml.security.crypto.SigningUtil.verify(SigningUtil.java:219)
-	at org.opensaml.security.crypto.KeySupport.matchKeyPair(KeySupport.java:613)
-	at org.opensaml.spring.credential.AbstractBasicCredentialFactoryBean.doCreateInstance(AbstractBasicCredentialFactoryBean.java:125)
-	at org.opensaml.spring.credential.AbstractBasicCredentialFactoryBean.doCreateInstance(AbstractBasicCredentialFactoryBean.java:1)
-	at net.shibboleth.ext.spring.factory.AbstractComponentAwareFactoryBean.createInstance(AbstractComponentAwareFactoryBean.java:49)
-	at org.springframework.beans.factory.config.AbstractFactoryBean.afterPropertiesSet(AbstractFactoryBean.java:142)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1802)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1751)
-	... 43 more
-Caused by: java.security.SignatureException: Signature length not correct: got 256 but was expecting 128
-	at java.base/sun.security.rsa.RSASignature.engineVerify(RSASignature.java:213)
-	at java.base/java.security.Signature$Delegate.engineVerify(Signature.java:1435)
-	at java.base/java.security.Signature.verify(Signature.java:789)
-	at org.opensaml.security.crypto.SigningUtil.verify(SigningUtil.java:216)
-	... 50 more
-</pre></div><a href='#' onClick='toggleBox("stack-trace1967617997", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
-<div class='stack-trace' id='stack-trace1967617997'><pre>org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'IdPCredential': Invocation of init method failed; nested exception is org.opensaml.security.SecurityException: Error during signature verification
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1755)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:604)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:526)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326)
-	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:225)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1265)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1226)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveBean(DefaultListableBeanFactory.java:483)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:338)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:331)
-	at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1159)
-	at org.opensaml.spring.AbstractSecurityParserTest.getBean(AbstractSecurityParserTest.java:95)
-	at org.opensaml.spring.AbstractSecurityParserTest.getBean(AbstractSecurityParserTest.java:68)
-	at org.opensaml.spring.credential.BasicResourceParserTest.wrongCert(BasicResourceParserTest.java:46)
-	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
-	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
-	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:135)
-	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:673)
-	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:220)
-	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:50)
-	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:945)
-	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:193)
-	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
-	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
-	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
-	at org.testng.TestRunner.privateRun(TestRunner.java:808)
-	at org.testng.TestRunner.run(TestRunner.java:603)
-	at org.testng.SuiteRunner.runTest(SuiteRunner.java:429)
-	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:423)
-	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:383)
-	at org.testng.SuiteRunner.run(SuiteRunner.java:326)
-	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
-	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
-	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1249)
-	at org.testng.TestNG.runSuitesLocally(TestNG.java:1169)
-	at org.testng.TestNG.runSuites(TestNG.java:1092)
-	at org.testng.TestNG.run(TestNG.java:1060)
-	at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
-	at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
-	at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
-Caused by: org.opensaml.security.SecurityException: Error during signature verification
-	at org.opensaml.security.crypto.SigningUtil.verify(SigningUtil.java:219)
-	at org.opensaml.security.crypto.KeySupport.matchKeyPair(KeySupport.java:613)
-	at org.opensaml.spring.credential.AbstractBasicCredentialFactoryBean.doCreateInstance(AbstractBasicCredentialFactoryBean.java:125)
-	at org.opensaml.spring.credential.AbstractBasicCredentialFactoryBean.doCreateInstance(AbstractBasicCredentialFactoryBean.java:1)
-	at net.shibboleth.ext.spring.factory.AbstractComponentAwareFactoryBean.createInstance(AbstractComponentAwareFactoryBean.java:49)
-	at org.springframework.beans.factory.config.AbstractFactoryBean.afterPropertiesSet(AbstractFactoryBean.java:142)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1802)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1751)
-	... 43 more
-Caused by: java.security.SignatureException: Signature length not correct: got 256 but was expecting 128
-	at java.base/sun.security.rsa.RSASignature.engineVerify(RSASignature.java:213)
-	at java.base/java.security.Signature$Delegate.engineVerify(Signature.java:1435)
-	at java.base/java.security.Signature.verify(Signature.java:789)
-	at org.opensaml.security.crypto.SigningUtil.verify(SigningUtil.java:216)
-	... 50 more
-</pre></div></td>
-<td>0</td>
-<td>org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4</td></tr>
+<td>org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 57d7f8ca</td></tr>
 <tr>
 <td title='org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest.singleKey()'><b>singleKey</b><br>Test class: org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest</td>
 <td></td>
 <td>0</td>
-<td>org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 11bd0f3b</td></tr>
+<td>org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 57d7f8ca</td></tr>
 <tr>
-<td title='org.opensaml.spring.credential.X509InlineParserTest.certKeyCrl()'><b>certKeyCrl</b><br>Test class: org.opensaml.spring.credential.X509InlineParserTest</td>
+<td title='org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest.mixed()'><b>mixed</b><br>Test class: org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest</td>
 <td></td>
 <td>0</td>
-<td>org.opensaml.spring.credential.X509InlineParserTest at 5fd4f8f5</td></tr>
+<td>org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 57d7f8ca</td></tr>
 <tr>
-<td title='org.opensaml.spring.trust.StaticExplicitKeyParserTest.simple()'><b>simple</b><br>Test class: org.opensaml.spring.trust.StaticExplicitKeyParserTest</td>
+<td title='org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest.multipleCert()'><b>multipleCert</b><br>Test class: org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest</td>
 <td></td>
 <td>0</td>
-<td>org.opensaml.spring.trust.StaticExplicitKeyParserTest at c333c60</td></tr>
+<td>org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 57d7f8ca</td></tr>
 <tr>
-<td title='org.opensaml.spring.credential.BasicResourceParserTest.secretHex()'><b>secretHex</b><br>Test class: org.opensaml.spring.credential.BasicResourceParserTest</td>
+<td title='org.opensaml.spring.trust.StaticPKIXFactoryBeanTest.defaults()'><b>defaults</b><br>Test class: org.opensaml.spring.trust.StaticPKIXFactoryBeanTest</td>
 <td></td>
 <td>0</td>
-<td>org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4</td></tr>
+<td>org.opensaml.spring.trust.StaticPKIXFactoryBeanTest at 3d6f0054</td></tr>
 <tr>
 <td title='org.opensaml.spring.trust.StaticPKIXFactoryBeanTest.customPropertiesFailsValidation()'><b>customPropertiesFailsValidation</b><br>Test class: org.opensaml.spring.trust.StaticPKIXFactoryBeanTest</td>
 <td><div><pre>org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'StaticPKIXX509CredentialTrustEngine' defined in class path resource [org/opensaml/spring/trust/static-pkix-factory-custom-failsValidation.xml]: Invocation of init method failed; nested exception is org.springframework.beans.FatalBeanException: Certificate revocation checking was force enabled, but no static CRLs were supplied and both CRLDP and OCSP processing is disabled
@@ -429,8 +155,8 @@ Caused by: org.springframework.beans.FatalBeanException: Certificate revocation
 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1802)
 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1751)
 	... 38 more
-</pre></div><a href='#' onClick='toggleBox("stack-trace1366212088", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
-<div class='stack-trace' id='stack-trace1366212088'><pre>org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'StaticPKIXX509CredentialTrustEngine' defined in class path resource [org/opensaml/spring/trust/static-pkix-factory-custom-failsValidation.xml]: Invocation of init method failed; nested exception is org.springframework.beans.FatalBeanException: Certificate revocation checking was force enabled, but no static CRLs were supplied and both  [...]
+</pre></div><a href='#' onClick='toggleBox("stack-trace559050604", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
+<div class='stack-trace' id='stack-trace559050604'><pre>org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'StaticPKIXX509CredentialTrustEngine' defined in class path resource [org/opensaml/spring/trust/static-pkix-factory-custom-failsValidation.xml]: Invocation of init method failed; nested exception is org.springframework.beans.FatalBeanException: Certificate revocation checking was force enabled, but no static CRLs were supplied and both C [...]
 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1755)
 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:604)
 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:526)
@@ -481,395 +207,12 @@ Caused by: org.springframework.beans.FatalBeanException: Certificate revocation
 	... 38 more
 </pre></div></td>
 <td>0</td>
-<td>org.opensaml.spring.trust.StaticPKIXFactoryBeanTest at 53976f5c</td></tr>
-<tr>
-<td title='org.opensaml.spring.credential.BasicResourceParserTest.secretBinary()'><b>secretBinary</b><br>Test class: org.opensaml.spring.credential.BasicResourceParserTest</td>
-<td></td>
-<td>0</td>
-<td>org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4</td></tr>
-<tr>
-<td title='org.opensaml.spring.trust.StaticPKIXX509CredentialParserTest.certPath()'><b>certPath</b><br>Test class: org.opensaml.spring.trust.StaticPKIXX509CredentialParserTest</td>
-<td></td>
-<td>0</td>
-<td>org.opensaml.spring.trust.StaticPKIXX509CredentialParserTest at 4e7912d8</td></tr>
-<tr>
-<td title='org.opensaml.spring.trust.StaticPKIXX509CredentialParserTest.nameCheckDisabled()'><b>nameCheckDisabled</b><br>Test class: org.opensaml.spring.trust.StaticPKIXX509CredentialParserTest</td>
-<td></td>
-<td>0</td>
-<td>org.opensaml.spring.trust.StaticPKIXX509CredentialParserTest at 4e7912d8</td></tr>
-<tr>
-<td title='org.opensaml.spring.credential.X509FilesystemParserTest.certKeyCrl()'><b>certKeyCrl</b><br>Test class: org.opensaml.spring.credential.X509FilesystemParserTest</td>
-<td></td>
-<td>0</td>
-<td>org.opensaml.spring.credential.X509FilesystemParserTest at 72cde7cc</td></tr>
-<tr>
-<td title='org.opensaml.spring.trust.StaticPKIXSignatureParserTest.certPath()'><b>certPath</b><br>Test class: org.opensaml.spring.trust.StaticPKIXSignatureParserTest</td>
-<td></td>
-<td>0</td>
-<td>org.opensaml.spring.trust.StaticPKIXSignatureParserTest at 4944252c</td></tr>
+<td>org.opensaml.spring.trust.StaticPKIXFactoryBeanTest at 3d6f0054</td></tr>
 <tr>
 <td title='org.opensaml.spring.credential.BasicX509CredentialFactoryBeanTest.bean()'><b>bean</b><br>Test class: org.opensaml.spring.credential.BasicX509CredentialFactoryBeanTest</td>
 <td></td>
 <td>0</td>
-<td>org.opensaml.spring.credential.BasicX509CredentialFactoryBeanTest at 29e495ff</td></tr>
-<tr>
-<td title='org.opensaml.spring.trust.PKIXValidationOptionsParserTest.simple()'><b>simple</b><br>Test class: org.opensaml.spring.trust.PKIXValidationOptionsParserTest</td>
-<td></td>
-<td>0</td>
-<td>org.opensaml.spring.trust.PKIXValidationOptionsParserTest at 1eb5174b</td></tr>
-<tr>
-<td title='org.opensaml.spring.trust.StaticPKIXSignatureParserTest.nameCheckDisabled()'><b>nameCheckDisabled</b><br>Test class: org.opensaml.spring.trust.StaticPKIXSignatureParserTest</td>
-<td></td>
-<td>0</td>
-<td>org.opensaml.spring.trust.StaticPKIXSignatureParserTest at 4944252c</td></tr>
-<tr>
-<td title='org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest.multipleCert()'><b>multipleCert</b><br>Test class: org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest</td>
-<td></td>
-<td>0</td>
-<td>org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 11bd0f3b</td></tr>
-<tr>
-<td title='org.opensaml.spring.credential.BasicInlineParserTest.secretHex()'><b>secretHex</b><br>Test class: org.opensaml.spring.credential.BasicInlineParserTest</td>
-<td></td>
-<td>0</td>
-<td>org.opensaml.spring.credential.BasicInlineParserTest at 2f8dad04</td></tr>
-<tr>
-<td title='org.opensaml.spring.credential.X509FilesystemParserTest.certOnly()'><b>certOnly</b><br>Test class: org.opensaml.spring.credential.X509FilesystemParserTest</td>
-<td></td>
-<td>0</td>
-<td>org.opensaml.spring.credential.X509FilesystemParserTest at 72cde7cc</td></tr>
-<tr>
-<td title='org.opensaml.spring.trust.PKIXInlineParserTest.simple()'><b>simple</b><br>Test class: org.opensaml.spring.trust.PKIXInlineParserTest</td>
-<td></td>
-<td>0</td>
-<td>org.opensaml.spring.trust.PKIXInlineParserTest at 41e1e210</td></tr>
-<tr>
-<td title='org.opensaml.spring.trust.StaticExplicitKeySignatureParserTest.simple()'><b>simple</b><br>Test class: org.opensaml.spring.trust.StaticExplicitKeySignatureParserTest</td>
-<td></td>
-<td>0</td>
-<td>org.opensaml.spring.trust.StaticExplicitKeySignatureParserTest at 79da8dc5</td></tr>
-<tr>
-<td title='org.opensaml.spring.credential.BasicResourceParserTest.publicOnly()'><b>publicOnly</b><br>Test class: org.opensaml.spring.credential.BasicResourceParserTest</td>
-<td></td>
-<td>0</td>
-<td>org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4</td></tr>
-<tr>
-<td title='org.opensaml.spring.trust.ChainingTrustEngineTest.two()'><b>two</b><br>Test class: org.opensaml.spring.trust.ChainingTrustEngineTest</td>
-<td></td>
-<td>0</td>
-<td>org.opensaml.spring.trust.ChainingTrustEngineTest at 696da30b</td></tr>
-<tr>
-<td title='org.opensaml.spring.credential.BasicResourceParserTest.secretBase64()'><b>secretBase64</b><br>Test class: org.opensaml.spring.credential.BasicResourceParserTest</td>
-<td></td>
-<td>0</td>
-<td>org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4</td></tr>
-<tr>
-<td title='org.opensaml.spring.credential.BasicResourceParserTest.publicPrivate()'><b>publicPrivate</b><br>Test class: org.opensaml.spring.credential.BasicResourceParserTest</td>
-<td></td>
-<td>0</td>
-<td>org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4</td></tr>
-<tr>
-<td title='org.opensaml.spring.credential.X509FilesystemParserTest.wrongCert()'><b>wrongCert</b><br>Test class: org.opensaml.spring.credential.X509FilesystemParserTest</td>
-<td><div><pre>org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'IdPCredential': Invocation of init method failed; nested exception is org.opensaml.security.SecurityException: Error during signature verification
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1755)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:604)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:526)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326)
-	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:225)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1265)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1226)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveBean(DefaultListableBeanFactory.java:483)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:338)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:331)
-	at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1159)
-	at org.opensaml.spring.AbstractSecurityParserTest.getBean(AbstractSecurityParserTest.java:95)
-	at org.opensaml.spring.AbstractSecurityParserTest.getBean(AbstractSecurityParserTest.java:68)
-	at org.opensaml.spring.credential.X509FilesystemParserTest.lookup(X509FilesystemParserTest.java:39)
-	at org.opensaml.spring.credential.X509FilesystemParserTest.wrongCert(X509FilesystemParserTest.java:57)
-	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
-	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
-	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:135)
-	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:673)
-	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:220)
-	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:50)
-	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:945)
-	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:193)
-	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
-	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
-	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
-	at org.testng.TestRunner.privateRun(TestRunner.java:808)
-	at org.testng.TestRunner.run(TestRunner.java:603)
-	at org.testng.SuiteRunner.runTest(SuiteRunner.java:429)
-	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:423)
-	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:383)
-	at org.testng.SuiteRunner.run(SuiteRunner.java:326)
-	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
-	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
-	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1249)
-	at org.testng.TestNG.runSuitesLocally(TestNG.java:1169)
-	at org.testng.TestNG.runSuites(TestNG.java:1092)
-	at org.testng.TestNG.run(TestNG.java:1060)
-	at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
-	at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
-	at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
-Caused by: org.opensaml.security.SecurityException: Error during signature verification
-	at org.opensaml.security.crypto.SigningUtil.verify(SigningUtil.java:219)
-	at org.opensaml.security.crypto.KeySupport.matchKeyPair(KeySupport.java:613)
-	at org.opensaml.spring.credential.AbstractX509CredentialFactoryBean.doCreateInstance(AbstractX509CredentialFactoryBean.java:68)
-	at org.opensaml.spring.credential.AbstractX509CredentialFactoryBean.doCreateInstance(AbstractX509CredentialFactoryBean.java:1)
-	at net.shibboleth.ext.spring.factory.AbstractComponentAwareFactoryBean.createInstance(AbstractComponentAwareFactoryBean.java:49)
-	at org.springframework.beans.factory.config.AbstractFactoryBean.afterPropertiesSet(AbstractFactoryBean.java:142)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1802)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1751)
-	... 44 more
-Caused by: java.security.SignatureException: Signature length not correct: got 256 but was expecting 128
-	at java.base/sun.security.rsa.RSASignature.engineVerify(RSASignature.java:213)
-	at java.base/java.security.Signature$Delegate.engineVerify(Signature.java:1435)
-	at java.base/java.security.Signature.verify(Signature.java:789)
-	at org.opensaml.security.crypto.SigningUtil.verify(SigningUtil.java:216)
-	... 51 more
-</pre></div><a href='#' onClick='toggleBox("stack-trace1671811074", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
-<div class='stack-trace' id='stack-trace1671811074'><pre>org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'IdPCredential': Invocation of init method failed; nested exception is org.opensaml.security.SecurityException: Error during signature verification
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1755)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:604)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:526)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326)
-	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:225)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1265)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1226)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveBean(DefaultListableBeanFactory.java:483)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:338)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:331)
-	at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1159)
-	at org.opensaml.spring.AbstractSecurityParserTest.getBean(AbstractSecurityParserTest.java:95)
-	at org.opensaml.spring.AbstractSecurityParserTest.getBean(AbstractSecurityParserTest.java:68)
-	at org.opensaml.spring.credential.X509FilesystemParserTest.lookup(X509FilesystemParserTest.java:39)
-	at org.opensaml.spring.credential.X509FilesystemParserTest.wrongCert(X509FilesystemParserTest.java:57)
-	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
-	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
-	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:135)
-	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:673)
-	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:220)
-	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:50)
-	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:945)
-	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:193)
-	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
-	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
-	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
-	at org.testng.TestRunner.privateRun(TestRunner.java:808)
-	at org.testng.TestRunner.run(TestRunner.java:603)
-	at org.testng.SuiteRunner.runTest(SuiteRunner.java:429)
-	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:423)
-	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:383)
-	at org.testng.SuiteRunner.run(SuiteRunner.java:326)
-	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
-	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
-	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1249)
-	at org.testng.TestNG.runSuitesLocally(TestNG.java:1169)
-	at org.testng.TestNG.runSuites(TestNG.java:1092)
-	at org.testng.TestNG.run(TestNG.java:1060)
-	at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
-	at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
-	at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
-Caused by: org.opensaml.security.SecurityException: Error during signature verification
-	at org.opensaml.security.crypto.SigningUtil.verify(SigningUtil.java:219)
-	at org.opensaml.security.crypto.KeySupport.matchKeyPair(KeySupport.java:613)
-	at org.opensaml.spring.credential.AbstractX509CredentialFactoryBean.doCreateInstance(AbstractX509CredentialFactoryBean.java:68)
-	at org.opensaml.spring.credential.AbstractX509CredentialFactoryBean.doCreateInstance(AbstractX509CredentialFactoryBean.java:1)
-	at net.shibboleth.ext.spring.factory.AbstractComponentAwareFactoryBean.createInstance(AbstractComponentAwareFactoryBean.java:49)
-	at org.springframework.beans.factory.config.AbstractFactoryBean.afterPropertiesSet(AbstractFactoryBean.java:142)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1802)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1751)
-	... 44 more
-Caused by: java.security.SignatureException: Signature length not correct: got 256 but was expecting 128
-	at java.base/sun.security.rsa.RSASignature.engineVerify(RSASignature.java:213)
-	at java.base/java.security.Signature$Delegate.engineVerify(Signature.java:1435)
-	at java.base/java.security.Signature.verify(Signature.java:789)
-	at org.opensaml.security.crypto.SigningUtil.verify(SigningUtil.java:216)
-	... 51 more
-</pre></div></td>
-<td>0</td>
-<td>org.opensaml.spring.credential.X509FilesystemParserTest at 72cde7cc</td></tr>
-<tr>
-<td title='org.opensaml.spring.credential.X509InlineParserTest.wrongCert()'><b>wrongCert</b><br>Test class: org.opensaml.spring.credential.X509InlineParserTest</td>
-<td><div><pre>org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'IdPCredential': Invocation of init method failed; nested exception is org.opensaml.security.SecurityException: Error during signature verification
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1755)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:604)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:526)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326)
-	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:225)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1265)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1226)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveBean(DefaultListableBeanFactory.java:483)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:338)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:331)
-	at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1159)
-	at org.opensaml.spring.AbstractSecurityParserTest.getBean(AbstractSecurityParserTest.java:95)
-	at org.opensaml.spring.AbstractSecurityParserTest.getBean(AbstractSecurityParserTest.java:68)
-	at org.opensaml.spring.credential.X509InlineParserTest.wrongCert(X509InlineParserTest.java:48)
-	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
-	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
-	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:135)
-	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:673)
-	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:220)
-	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:50)
-	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:945)
-	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:193)
-	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
-	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
-	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
-	at org.testng.TestRunner.privateRun(TestRunner.java:808)
-	at org.testng.TestRunner.run(TestRunner.java:603)
-	at org.testng.SuiteRunner.runTest(SuiteRunner.java:429)
-	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:423)
-	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:383)
-	at org.testng.SuiteRunner.run(SuiteRunner.java:326)
-	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
-	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
-	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1249)
-	at org.testng.TestNG.runSuitesLocally(TestNG.java:1169)
-	at org.testng.TestNG.runSuites(TestNG.java:1092)
-	at org.testng.TestNG.run(TestNG.java:1060)
-	at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
-	at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
-	at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
-Caused by: org.opensaml.security.SecurityException: Error during signature verification
-	at org.opensaml.security.crypto.SigningUtil.verify(SigningUtil.java:219)
-	at org.opensaml.security.crypto.KeySupport.matchKeyPair(KeySupport.java:613)
-	at org.opensaml.spring.credential.AbstractX509CredentialFactoryBean.doCreateInstance(AbstractX509CredentialFactoryBean.java:68)
-	at org.opensaml.spring.credential.AbstractX509CredentialFactoryBean.doCreateInstance(AbstractX509CredentialFactoryBean.java:1)
-	at net.shibboleth.ext.spring.factory.AbstractComponentAwareFactoryBean.createInstance(AbstractComponentAwareFactoryBean.java:49)
-	at org.springframework.beans.factory.config.AbstractFactoryBean.afterPropertiesSet(AbstractFactoryBean.java:142)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1802)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1751)
-	... 43 more
-Caused by: java.security.SignatureException: Signature length not correct: got 256 but was expecting 128
-	at java.base/sun.security.rsa.RSASignature.engineVerify(RSASignature.java:213)
-	at java.base/java.security.Signature$Delegate.engineVerify(Signature.java:1435)
-	at java.base/java.security.Signature.verify(Signature.java:789)
-	at org.opensaml.security.crypto.SigningUtil.verify(SigningUtil.java:216)
-	... 50 more
-</pre></div><a href='#' onClick='toggleBox("stack-trace1264701638", this, "Click to show all stack frames", "Click to hide stack frames")'>Click to show all stack frames</a>
-<div class='stack-trace' id='stack-trace1264701638'><pre>org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'IdPCredential': Invocation of init method failed; nested exception is org.opensaml.security.SecurityException: Error during signature verification
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1755)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:604)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:526)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326)
-	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:225)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1265)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1226)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveBean(DefaultListableBeanFactory.java:483)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:338)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:331)
-	at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1159)
-	at org.opensaml.spring.AbstractSecurityParserTest.getBean(AbstractSecurityParserTest.java:95)
-	at org.opensaml.spring.AbstractSecurityParserTest.getBean(AbstractSecurityParserTest.java:68)
-	at org.opensaml.spring.credential.X509InlineParserTest.wrongCert(X509InlineParserTest.java:48)
-	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
-	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
-	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:135)
-	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:673)
-	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:220)
-	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:50)
-	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:945)
-	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:193)
-	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
-	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
-	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
-	at org.testng.TestRunner.privateRun(TestRunner.java:808)
-	at org.testng.TestRunner.run(TestRunner.java:603)
-	at org.testng.SuiteRunner.runTest(SuiteRunner.java:429)
-	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:423)
-	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:383)
-	at org.testng.SuiteRunner.run(SuiteRunner.java:326)
-	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
-	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
-	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1249)
-	at org.testng.TestNG.runSuitesLocally(TestNG.java:1169)
-	at org.testng.TestNG.runSuites(TestNG.java:1092)
-	at org.testng.TestNG.run(TestNG.java:1060)
-	at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
-	at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
-	at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
-Caused by: org.opensaml.security.SecurityException: Error during signature verification
-	at org.opensaml.security.crypto.SigningUtil.verify(SigningUtil.java:219)
-	at org.opensaml.security.crypto.KeySupport.matchKeyPair(KeySupport.java:613)
-	at org.opensaml.spring.credential.AbstractX509CredentialFactoryBean.doCreateInstance(AbstractX509CredentialFactoryBean.java:68)
-	at org.opensaml.spring.credential.AbstractX509CredentialFactoryBean.doCreateInstance(AbstractX509CredentialFactoryBean.java:1)
-	at net.shibboleth.ext.spring.factory.AbstractComponentAwareFactoryBean.createInstance(AbstractComponentAwareFactoryBean.java:49)
-	at org.springframework.beans.factory.config.AbstractFactoryBean.afterPropertiesSet(AbstractFactoryBean.java:142)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1802)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1751)
-	... 43 more
-Caused by: java.security.SignatureException: Signature length not correct: got 256 but was expecting 128
-	at java.base/sun.security.rsa.RSASignature.engineVerify(RSASignature.java:213)
-	at java.base/java.security.Signature$Delegate.engineVerify(Signature.java:1435)
-	at java.base/java.security.Signature.verify(Signature.java:789)
-	at org.opensaml.security.crypto.SigningUtil.verify(SigningUtil.java:216)
-	... 50 more
-</pre></div></td>
-<td>0</td>
-<td>org.opensaml.spring.credential.X509InlineParserTest at 5fd4f8f5</td></tr>
-<tr>
-<td title='org.opensaml.spring.credential.BasicInlineParserTest.publicOnly()'><b>publicOnly</b><br>Test class: org.opensaml.spring.credential.BasicInlineParserTest</td>
-<td></td>
-<td>0</td>
-<td>org.opensaml.spring.credential.BasicInlineParserTest at 2f8dad04</td></tr>
-<tr>
-<td title='org.opensaml.spring.credential.X509FilesystemParserTest.certElementsKeyNames()'><b>certElementsKeyNames</b><br>Test class: org.opensaml.spring.credential.X509FilesystemParserTest</td>
-<td></td>
-<td>0</td>
-<td>org.opensaml.spring.credential.X509FilesystemParserTest at 72cde7cc</td></tr>
-<tr>
-<td title='org.opensaml.spring.trust.SignatureChainingParserTest.simple()'><b>simple</b><br>Test class: org.opensaml.spring.trust.SignatureChainingParserTest</td>
-<td></td>
-<td>0</td>
-<td>org.opensaml.spring.trust.SignatureChainingParserTest at 2bfc268b</td></tr>
-<tr>
-<td title='org.opensaml.spring.credential.BasicInlineParserTest.secretBase64()'><b>secretBase64</b><br>Test class: org.opensaml.spring.credential.BasicInlineParserTest</td>
-<td></td>
-<td>0</td>
-<td>org.opensaml.spring.credential.BasicInlineParserTest at 2f8dad04</td></tr>
-<tr>
-<td title='org.opensaml.spring.trust.StaticPKIXFactoryBeanTest.defaults()'><b>defaults</b><br>Test class: org.opensaml.spring.trust.StaticPKIXFactoryBeanTest</td>
-<td></td>
-<td>0</td>
-<td>org.opensaml.spring.trust.StaticPKIXFactoryBeanTest at 53976f5c</td></tr>
-<tr>
-<td title='org.opensaml.spring.credential.X509InlineParserTest.certOnly()'><b>certOnly</b><br>Test class: org.opensaml.spring.credential.X509InlineParserTest</td>
-<td></td>
-<td>0</td>
-<td>org.opensaml.spring.credential.X509InlineParserTest at 5fd4f8f5</td></tr>
-<tr>
-<td title='org.opensaml.spring.trust.PKIXFilesystemParserTest.simple()'><b>simple</b><br>Test class: org.opensaml.spring.trust.PKIXFilesystemParserTest</td>
-<td></td>
-<td>0</td>
-<td>org.opensaml.spring.trust.PKIXFilesystemParserTest at 67080771</td></tr>
-<tr>
-<td title='org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest.singleCert()'><b>singleCert</b><br>Test class: org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest</td>
-<td></td>
-<td>0</td>
-<td>org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 11bd0f3b</td></tr>
-<tr>
-<td title='org.opensaml.spring.trust.StaticPKIXFactoryBeanTest.customPropertiesSuccess()'><b>customPropertiesSuccess</b><br>Test class: org.opensaml.spring.trust.StaticPKIXFactoryBeanTest</td>
-<td></td>
-<td>0</td>
-<td>org.opensaml.spring.trust.StaticPKIXFactoryBeanTest at 53976f5c</td></tr>
+<td>org.opensaml.spring.credential.BasicX509CredentialFactoryBeanTest at 505fc5a4</td></tr>
 </table><p>
 </body>
 </html>
\ No newline at end of file
diff --git a/opensaml-spring/test-output/Default suite/Default test.xml b/opensaml-spring/test-output/Default suite/Default test.xml
index b1ec180e6..2c9dae520 100644
--- a/opensaml-spring/test-output/Default suite/Default test.xml	
+++ b/opensaml-spring/test-output/Default suite/Default test.xml	
@@ -1,89 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- Generated by org.testng.reporters.JUnitXMLReporter -->
-<testsuite ignored="14" hostname="Silver-Machine.local" failures="0" tests="43" name="Default test" time="2.631" errors="0" timestamp="2022-06-08T10:36:17 EDT">
-  <testcase classname="org.opensaml.spring.credential.BasicResourceParserTest" name="publicOnly" time="0.639"/>
-  <testcase classname="org.opensaml.spring.credential.BasicResourceParserTest" name="publicPrivate" time="0.113"/>
-  <testcase classname="org.opensaml.spring.credential.BasicResourceParserTest" name="secretBase64" time="0.048"/>
-  <testcase classname="org.opensaml.spring.credential.BasicResourceParserTest" name="secretBinary" time="0.057"/>
-  <testcase classname="org.opensaml.spring.credential.BasicResourceParserTest" name="secretHex" time="0.028"/>
-  <testcase classname="org.opensaml.spring.credential.BasicResourceParserTest" name="wrongCert" time="0.068"/>
-  <testcase classname="org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest" name="mixed" time="0.124"/>
-  <testcase classname="org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest" name="multipleCert" time="0.051"/>
-  <testcase classname="org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest" name="singleCert" time="0.062"/>
-  <testcase classname="org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest" name="singleKey" time="0.055"/>
-  <testcase classname="org.opensaml.spring.trust.StaticExplicitKeyParserTest" name="simple" time="0.065"/>
-  <testcase classname="org.opensaml.spring.trust.StaticExplicitKeySignatureParserTest" name="simple" time="0.044"/>
-  <testcase classname="org.opensaml.spring.trust.PKIXValidationOptionsParserTest" name="complex" time="0.029"/>
-  <testcase classname="org.opensaml.spring.trust.PKIXValidationOptionsParserTest" name="simple" time="0.019"/>
-  <testcase classname="org.opensaml.spring.trust.PKIXFilesystemParserTest" name="complex" time="0.048"/>
-  <testcase classname="org.opensaml.spring.trust.PKIXFilesystemParserTest" name="simple" time="0.022"/>
-  <testcase classname="org.opensaml.spring.credential.X509FilesystemParserTest" name="certElementsKeyNames" time="0.028"/>
-  <testcase classname="org.opensaml.spring.credential.X509FilesystemParserTest" name="certKeyCrl" time="0.045"/>
-  <testcase classname="org.opensaml.spring.credential.X509FilesystemParserTest" name="certOnly" time="0.013"/>
-  <testcase classname="org.opensaml.spring.credential.X509FilesystemParserTest" name="twoCert" time="0.063"/>
-  <testcase classname="org.opensaml.spring.credential.X509FilesystemParserTest" name="wrongCert" time="0.066"/>
-  <testcase classname="org.opensaml.spring.credential.X509InlineParserTest" name="certKeyCrl" time="0.049"/>
-  <testcase classname="org.opensaml.spring.credential.X509InlineParserTest" name="certOnly" time="0.027"/>
-  <testcase classname="org.opensaml.spring.credential.X509InlineParserTest" name="wrongCert" time="0.031"/>
-  <testcase classname="org.opensaml.spring.trust.ChainingTrustEngineTest" name="one" time="0.059"/>
-  <testcase classname="org.opensaml.spring.trust.ChainingTrustEngineTest" name="two" time="0.038"/>
-  <testcase classname="org.opensaml.spring.trust.StaticPKIXX509CredentialParserTest" name="certPath" time="0.067"/>
-  <testcase classname="org.opensaml.spring.trust.StaticPKIXX509CredentialParserTest" name="nameCheckDisabled" time="0.036"/>
-  <testcase classname="org.opensaml.spring.trust.StaticPKIXFactoryBeanTest" name="customPropertiesFailsValidation" time="0.051"/>
-  <testcase classname="org.opensaml.spring.trust.StaticPKIXFactoryBeanTest" name="customPropertiesSuccess" time="0.025"/>
-  <testcase classname="org.opensaml.spring.trust.StaticPKIXFactoryBeanTest" name="defaults" time="0.015"/>
-  <testcase classname="org.opensaml.spring.trust.SignatureChainingParserTest" name="simple" time="0.036"/>
-  <testcase classname="org.opensaml.spring.credential.BasicInlineParserTest" name="publicOnly" time="0.021"/>
-  <testcase classname="org.opensaml.spring.credential.BasicInlineParserTest" name="publicPrivate" time="0.035"/>
-  <testcase classname="org.opensaml.spring.credential.BasicInlineParserTest" name="secretBase64" time="0.017"/>
-  <testcase classname="org.opensaml.spring.credential.BasicInlineParserTest" name="secretHex" time="0.015"/>
-  <testcase classname="org.opensaml.spring.credential.BasicX509CredentialFactoryBeanTest" name="bean" time="0.073"/>
-  <testcase classname="org.opensaml.spring.trust.PKIXInlineParserTest" name="complex" time="0.021"/>
-  <testcase classname="org.opensaml.spring.trust.PKIXInlineParserTest" name="simple" time="0.021"/>
-  <testcase classname="org.opensaml.spring.trust.StaticPKIXSignatureParserTest" name="certPath" time="0.02"/>
-  <testcase classname="org.opensaml.spring.trust.StaticPKIXSignatureParserTest" name="nameCheckDisabled" time="0.022"/>
-  <testcase classname="org.opensaml.spring.trust.StaticPKIXSignatureParserTest" name="simple" time="0.02"/>
-  <testcase classname="org.opensaml.spring.trust.StaticPKIXSignatureParserTest" name="values" time="0.044"/>
-  <testcase classname="org.opensaml.spring.AbstractSecurityParserTest" name="@BeforeSuite setupDirs" time="0.0">
-    <ignored/>
-  </testcase> <!-- @BeforeSuite setupDirs -->
-  <testcase classname="org.opensaml.spring.AbstractSecurityParserTest" name="@BeforeSuite setupDirs" time="0.0">
-    <ignored/>
-  </testcase> <!-- @BeforeSuite setupDirs -->
-  <testcase classname="org.opensaml.spring.AbstractSecurityParserTest" name="@BeforeSuite setupDirs" time="0.0">
-    <ignored/>
-  </testcase> <!-- @BeforeSuite setupDirs -->
-  <testcase classname="org.opensaml.spring.AbstractSecurityParserTest" name="@BeforeSuite setupDirs" time="0.0">
-    <ignored/>
-  </testcase> <!-- @BeforeSuite setupDirs -->
-  <testcase classname="org.opensaml.spring.AbstractSecurityParserTest" name="@BeforeSuite setupDirs" time="0.0">
-    <ignored/>
-  </testcase> <!-- @BeforeSuite setupDirs -->
-  <testcase classname="org.opensaml.spring.AbstractSecurityParserTest" name="@BeforeSuite setupDirs" time="0.0">
-    <ignored/>
-  </testcase> <!-- @BeforeSuite setupDirs -->
-  <testcase classname="org.opensaml.spring.AbstractSecurityParserTest" name="@BeforeSuite setupDirs" time="0.0">
-    <ignored/>
-  </testcase> <!-- @BeforeSuite setupDirs -->
-  <testcase classname="org.opensaml.spring.AbstractSecurityParserTest" name="@BeforeSuite setupDirs" time="0.0">
-    <ignored/>
-  </testcase> <!-- @BeforeSuite setupDirs -->
-  <testcase classname="org.opensaml.spring.AbstractSecurityParserTest" name="@BeforeSuite setupDirs" time="0.0">
-    <ignored/>
-  </testcase> <!-- @BeforeSuite setupDirs -->
-  <testcase classname="org.opensaml.spring.AbstractSecurityParserTest" name="@BeforeSuite setupDirs" time="0.0">
-    <ignored/>
-  </testcase> <!-- @BeforeSuite setupDirs -->
-  <testcase classname="org.opensaml.spring.AbstractSecurityParserTest" name="@BeforeSuite setupDirs" time="0.0">
-    <ignored/>
-  </testcase> <!-- @BeforeSuite setupDirs -->
-  <testcase classname="org.opensaml.spring.AbstractSecurityParserTest" name="@BeforeSuite setupDirs" time="0.0">
-    <ignored/>
-  </testcase> <!-- @BeforeSuite setupDirs -->
-  <testcase classname="org.opensaml.spring.AbstractSecurityParserTest" name="@BeforeSuite setupDirs" time="0.0">
-    <ignored/>
-  </testcase> <!-- @BeforeSuite setupDirs -->
-  <testcase classname="org.opensaml.spring.AbstractSecurityParserTest" name="@BeforeSuite setupDirs" time="0.0">
+<testsuite ignored="1" hostname="Silver-Machine.attlocal.net" failures="0" tests="8" name="Default test" time="1.329" errors="0" timestamp="2022-07-01T14:26:56 EDT">
+  <testcase classname="org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest" name="mixed" time="0.702"/>
+  <testcase classname="org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest" name="multipleCert" time="0.091"/>
+  <testcase classname="org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest" name="singleCert" time="0.072"/>
+  <testcase classname="org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest" name="singleKey" time="0.059"/>
+  <testcase classname="org.opensaml.spring.trust.StaticPKIXFactoryBeanTest" name="customPropertiesFailsValidation" time="0.09"/>
+  <testcase classname="org.opensaml.spring.trust.StaticPKIXFactoryBeanTest" name="customPropertiesSuccess" time="0.05"/>
+  <testcase classname="org.opensaml.spring.trust.StaticPKIXFactoryBeanTest" name="defaults" time="0.036"/>
+  <testcase classname="org.opensaml.spring.credential.BasicX509CredentialFactoryBeanTest" name="bean" time="0.152"/>
+  <testcase classname="org.opensaml.spring.trust.AbstractSecurityTest" name="@BeforeSuite setupDirs" time="0.0">
     <ignored/>
   </testcase> <!-- @BeforeSuite setupDirs -->
 </testsuite> <!-- Default test -->
diff --git a/opensaml-spring/test-output/Default suite/testng-failed.xml b/opensaml-spring/test-output/Default suite/testng-failed.xml
index 071c33d5e..112bf7c5f 100644
--- a/opensaml-spring/test-output/Default suite/testng-failed.xml	
+++ b/opensaml-spring/test-output/Default suite/testng-failed.xml	
@@ -3,13 +3,16 @@
 <suite name="Failed suite [Default suite]" guice-stage="DEVELOPMENT">
   <test thread-count="5" name="Default test(failed)">
     <classes>
-      <class name="org.opensaml.spring.trust.PKIXFilesystemParserTest">
+      <class name="org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest">
         <methods>
+          <include name="multipleCert"/>
           <include name="setupDirs"/>
+          <include name="singleCert"/>
+          <include name="mixed"/>
+          <include name="singleKey"/>
           <include name="tearDownTestContext"/>
-          <include name="complex"/>
         </methods>
-      </class> <!-- org.opensaml.spring.trust.PKIXFilesystemParserTest -->
+      </class> <!-- org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest -->
     </classes>
   </test> <!-- Default test(failed) -->
 </suite> <!-- Failed suite [Default suite] -->
diff --git a/opensaml-spring/test-output/emailable-report.html b/opensaml-spring/test-output/emailable-report.html
index c2ab84eb2..8ee65049e 100644
--- a/opensaml-spring/test-output/emailable-report.html
+++ b/opensaml-spring/test-output/emailable-report.html
@@ -9,284 +9,16 @@
 <table>
 <tr><th>Test</th><th># Passed</th><th># Skipped</th><th># Retried</th><th># Failed</th><th>Time (ms)</th><th>Included Groups</th><th>Excluded Groups</th></tr>
 <tr><th colspan="8">Default suite</th></tr>
-<tr><td><a href="#t0">Default test</a></td><td class="num">43</td><td class="num">0</td><td class="num">0</td><td class="num">0</td><td class="num">2,631</td><td></td><td></td></tr>
+<tr><td><a href="#t0">Default test</a></td><td class="num">8</td><td class="num">0</td><td class="num">0</td><td class="num">0</td><td class="num">1,329</td><td></td><td></td></tr>
 </table>
-<table id='summary'><thead><tr><th>Class</th><th>Method</th><th>Start</th><th>Time (ms)</th></tr></thead><tbody><tr><th colspan="4">Default suite</th></tr></tbody><tbody id="t0"><tr><th colspan="4">Default test — passed</th></tr><tr class="passedeven"><td rowspan="4">org.opensaml.spring.credential.BasicInlineParserTest</td><td><a href="#m0">publicOnly</a></td><td rowspan="1">1654698976731</td><td rowspan="1">21</td></tr><tr class="passedeven"><td><a href="#m1">publicPrivate</a></td [...]
+<table id='summary'><thead><tr><th>Class</th><th>Method</th><th>Start</th><th>Time (ms)</th></tr></thead><tbody><tr><th colspan="4">Default suite</th></tr></tbody><tbody id="t0"><tr><th colspan="4">Default test — passed</th></tr><tr class="passedeven"><td rowspan="1">org.opensaml.spring.credential.BasicX509CredentialFactoryBeanTest</td><td><a href="#m0">bean</a></td><td rowspan="1">1656700016499</td><td rowspan="1">152</td></tr><tr class="passedodd"><td rowspan="4">org.opensaml.spr [...]
 </table>
-<h2>Default test</h2><h3 id="m0">org.opensaml.spring.credential.BasicInlineParserTest#publicOnly</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m1">org.opensaml.spring.credential.BasicInlineParserTest#publicPrivate</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m2">org.opensaml.spring.credential.BasicInlineParserTest#secretBase64</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m3">org.opensaml.spring.credential.BasicInlineParserTest#secretHex</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m4">org.opensaml.spring.credential.BasicResourceParserTest#publicOnly</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m5">org.opensaml.spring.credential.BasicResourceParserTest#publicPrivate</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m6">org.opensaml.spring.credential.BasicResourceParserTest#secretBase64</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m7">org.opensaml.spring.credential.BasicResourceParserTest#secretBinary</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m8">org.opensaml.spring.credential.BasicResourceParserTest#secretHex</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m9">org.opensaml.spring.credential.BasicResourceParserTest#wrongCert</h3><table class="result"><tr><th>Expected Exception</th></tr><tr><td><div class="stacktrace">org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'IdPCredential': Invocation of init method failed; nested exception is org.opensaml.security.SecurityException: Error during signature verification
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1755)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:604)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:526)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326)
-	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:225)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1265)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1226)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveBean(DefaultListableBeanFactory.java:483)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:338)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:331)
-	at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1159)
-	at org.opensaml.spring.AbstractSecurityParserTest.getBean(AbstractSecurityParserTest.java:95)
-	at org.opensaml.spring.AbstractSecurityParserTest.getBean(AbstractSecurityParserTest.java:68)
-	at org.opensaml.spring.credential.BasicResourceParserTest.wrongCert(BasicResourceParserTest.java:46)
-	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
-	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
-	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:135)
-	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:673)
-	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:220)
-	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:50)
-	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:945)
-	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:193)
-	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
-	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
-	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
-	at org.testng.TestRunner.privateRun(TestRunner.java:808)
-	at org.testng.TestRunner.run(TestRunner.java:603)
-	at org.testng.SuiteRunner.runTest(SuiteRunner.java:429)
-	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:423)
-	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:383)
-	at org.testng.SuiteRunner.run(SuiteRunner.java:326)
-	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
-	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
-	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1249)
-	at org.testng.TestNG.runSuitesLocally(TestNG.java:1169)
-	at org.testng.TestNG.runSuites(TestNG.java:1092)
-	at org.testng.TestNG.run(TestNG.java:1060)
-	at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
-	at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
-	at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
-Caused by: org.opensaml.security.SecurityException: Error during signature verification
-	at org.opensaml.security.crypto.SigningUtil.verify(SigningUtil.java:219)
-	at org.opensaml.security.crypto.KeySupport.matchKeyPair(KeySupport.java:613)
-	at org.opensaml.spring.credential.AbstractBasicCredentialFactoryBean.doCreateInstance(AbstractBasicCredentialFactoryBean.java:125)
-	at org.opensaml.spring.credential.AbstractBasicCredentialFactoryBean.doCreateInstance(AbstractBasicCredentialFactoryBean.java:1)
-	at net.shibboleth.ext.spring.factory.AbstractComponentAwareFactoryBean.createInstance(AbstractComponentAwareFactoryBean.java:49)
-	at org.springframework.beans.factory.config.AbstractFactoryBean.afterPropertiesSet(AbstractFactoryBean.java:142)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1802)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1751)
-	... 43 more
-Caused by: java.security.SignatureException: Signature length not correct: got 256 but was expecting 128
-	at java.base/sun.security.rsa.RSASignature.engineVerify(RSASignature.java:213)
-	at java.base/java.security.Signature$Delegate.engineVerify(Signature.java:1435)
-	at java.base/java.security.Signature.verify(Signature.java:789)
-	at org.opensaml.security.crypto.SigningUtil.verify(SigningUtil.java:216)
-	... 50 more
-</div></td></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m10">org.opensaml.spring.credential.BasicX509CredentialFactoryBeanTest#bean</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m11">org.opensaml.spring.credential.X509FilesystemParserTest#certElementsKeyNames</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m12">org.opensaml.spring.credential.X509FilesystemParserTest#certKeyCrl</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m13">org.opensaml.spring.credential.X509FilesystemParserTest#certOnly</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m14">org.opensaml.spring.credential.X509FilesystemParserTest#twoCert</h3><table class="result"><tr><th>Expected Exception</th></tr><tr><td><div class="stacktrace">org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'IdPCredential': Invocation of init method failed; nested exception is org.springframework.beans.FatalBeanException: Configuration element indicated an entityCertificate, but multiple certificates were decoded
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1755)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:604)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:526)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326)
-	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:225)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1265)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1226)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveBean(DefaultListableBeanFactory.java:483)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:338)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:331)
-	at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1159)
-	at org.opensaml.spring.AbstractSecurityParserTest.getBean(AbstractSecurityParserTest.java:95)
-	at org.opensaml.spring.AbstractSecurityParserTest.getBean(AbstractSecurityParserTest.java:68)
-	at org.opensaml.spring.credential.X509FilesystemParserTest.lookup(X509FilesystemParserTest.java:39)
-	at org.opensaml.spring.credential.X509FilesystemParserTest.twoCert(X509FilesystemParserTest.java:53)
-	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
-	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
-	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:135)
-	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:673)
-	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:220)
-	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:50)
-	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:945)
-	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:193)
-	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
-	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
-	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
-	at org.testng.TestRunner.privateRun(TestRunner.java:808)
-	at org.testng.TestRunner.run(TestRunner.java:603)
-	at org.testng.SuiteRunner.runTest(SuiteRunner.java:429)
-	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:423)
-	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:383)
-	at org.testng.SuiteRunner.run(SuiteRunner.java:326)
-	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
-	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
-	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1249)
-	at org.testng.TestNG.runSuitesLocally(TestNG.java:1169)
-	at org.testng.TestNG.runSuites(TestNG.java:1092)
-	at org.testng.TestNG.run(TestNG.java:1060)
-	at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
-	at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
-	at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
-Caused by: org.springframework.beans.FatalBeanException: Configuration element indicated an entityCertificate, but multiple certificates were decoded
-	at org.opensaml.spring.credential.BasicX509CredentialFactoryBean.getEntityCertificate(BasicX509CredentialFactoryBean.java:161)
-	at org.opensaml.spring.credential.AbstractX509CredentialFactoryBean.doCreateInstance(AbstractX509CredentialFactoryBean.java:55)
-	at org.opensaml.spring.credential.AbstractX509CredentialFactoryBean.doCreateInstance(AbstractX509CredentialFactoryBean.java:1)
-	at net.shibboleth.ext.spring.factory.AbstractComponentAwareFactoryBean.createInstance(AbstractComponentAwareFactoryBean.java:49)
-	at org.springframework.beans.factory.config.AbstractFactoryBean.afterPropertiesSet(AbstractFactoryBean.java:142)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1802)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1751)
-	... 44 more
-</div></td></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m15">org.opensaml.spring.credential.X509FilesystemParserTest#wrongCert</h3><table class="result"><tr><th>Expected Exception</th></tr><tr><td><div class="stacktrace">org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'IdPCredential': Invocation of init method failed; nested exception is org.opensaml.security.SecurityException: Error during signature verification
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1755)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:604)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:526)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326)
-	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:225)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1265)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1226)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveBean(DefaultListableBeanFactory.java:483)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:338)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:331)
-	at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1159)
-	at org.opensaml.spring.AbstractSecurityParserTest.getBean(AbstractSecurityParserTest.java:95)
-	at org.opensaml.spring.AbstractSecurityParserTest.getBean(AbstractSecurityParserTest.java:68)
-	at org.opensaml.spring.credential.X509FilesystemParserTest.lookup(X509FilesystemParserTest.java:39)
-	at org.opensaml.spring.credential.X509FilesystemParserTest.wrongCert(X509FilesystemParserTest.java:57)
-	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
-	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
-	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:135)
-	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:673)
-	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:220)
-	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:50)
-	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:945)
-	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:193)
-	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
-	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
-	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
-	at org.testng.TestRunner.privateRun(TestRunner.java:808)
-	at org.testng.TestRunner.run(TestRunner.java:603)
-	at org.testng.SuiteRunner.runTest(SuiteRunner.java:429)
-	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:423)
-	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:383)
-	at org.testng.SuiteRunner.run(SuiteRunner.java:326)
-	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
-	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
-	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1249)
-	at org.testng.TestNG.runSuitesLocally(TestNG.java:1169)
-	at org.testng.TestNG.runSuites(TestNG.java:1092)
-	at org.testng.TestNG.run(TestNG.java:1060)
-	at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
-	at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
-	at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
-Caused by: org.opensaml.security.SecurityException: Error during signature verification
-	at org.opensaml.security.crypto.SigningUtil.verify(SigningUtil.java:219)
-	at org.opensaml.security.crypto.KeySupport.matchKeyPair(KeySupport.java:613)
-	at org.opensaml.spring.credential.AbstractX509CredentialFactoryBean.doCreateInstance(AbstractX509CredentialFactoryBean.java:68)
-	at org.opensaml.spring.credential.AbstractX509CredentialFactoryBean.doCreateInstance(AbstractX509CredentialFactoryBean.java:1)
-	at net.shibboleth.ext.spring.factory.AbstractComponentAwareFactoryBean.createInstance(AbstractComponentAwareFactoryBean.java:49)
-	at org.springframework.beans.factory.config.AbstractFactoryBean.afterPropertiesSet(AbstractFactoryBean.java:142)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1802)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1751)
-	... 44 more
-Caused by: java.security.SignatureException: Signature length not correct: got 256 but was expecting 128
-	at java.base/sun.security.rsa.RSASignature.engineVerify(RSASignature.java:213)
-	at java.base/java.security.Signature$Delegate.engineVerify(Signature.java:1435)
-	at java.base/java.security.Signature.verify(Signature.java:789)
-	at org.opensaml.security.crypto.SigningUtil.verify(SigningUtil.java:216)
-	... 51 more
-</div></td></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m16">org.opensaml.spring.credential.X509InlineParserTest#certKeyCrl</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m17">org.opensaml.spring.credential.X509InlineParserTest#certOnly</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m18">org.opensaml.spring.credential.X509InlineParserTest#wrongCert</h3><table class="result"><tr><th>Expected Exception</th></tr><tr><td><div class="stacktrace">org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'IdPCredential': Invocation of init method failed; nested exception is org.opensaml.security.SecurityException: Error during signature verification
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1755)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:604)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:526)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326)
-	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324)
-	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:225)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1265)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1226)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveBean(DefaultListableBeanFactory.java:483)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:338)
-	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:331)
-	at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1159)
-	at org.opensaml.spring.AbstractSecurityParserTest.getBean(AbstractSecurityParserTest.java:95)
-	at org.opensaml.spring.AbstractSecurityParserTest.getBean(AbstractSecurityParserTest.java:68)
-	at org.opensaml.spring.credential.X509InlineParserTest.wrongCert(X509InlineParserTest.java:48)
-	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
-	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
-	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:135)
-	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:673)
-	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:220)
-	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:50)
-	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:945)
-	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:193)
-	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
-	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
-	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
-	at org.testng.TestRunner.privateRun(TestRunner.java:808)
-	at org.testng.TestRunner.run(TestRunner.java:603)
-	at org.testng.SuiteRunner.runTest(SuiteRunner.java:429)
-	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:423)
-	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:383)
-	at org.testng.SuiteRunner.run(SuiteRunner.java:326)
-	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
-	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
-	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1249)
-	at org.testng.TestNG.runSuitesLocally(TestNG.java:1169)
-	at org.testng.TestNG.runSuites(TestNG.java:1092)
-	at org.testng.TestNG.run(TestNG.java:1060)
-	at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
-	at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
-	at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
-Caused by: org.opensaml.security.SecurityException: Error during signature verification
-	at org.opensaml.security.crypto.SigningUtil.verify(SigningUtil.java:219)
-	at org.opensaml.security.crypto.KeySupport.matchKeyPair(KeySupport.java:613)
-	at org.opensaml.spring.credential.AbstractX509CredentialFactoryBean.doCreateInstance(AbstractX509CredentialFactoryBean.java:68)
-	at org.opensaml.spring.credential.AbstractX509CredentialFactoryBean.doCreateInstance(AbstractX509CredentialFactoryBean.java:1)
-	at net.shibboleth.ext.spring.factory.AbstractComponentAwareFactoryBean.createInstance(AbstractComponentAwareFactoryBean.java:49)
-	at org.springframework.beans.factory.config.AbstractFactoryBean.afterPropertiesSet(AbstractFactoryBean.java:142)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1802)
-	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1751)
-	... 43 more
-Caused by: java.security.SignatureException: Signature length not correct: got 256 but was expecting 128
-	at java.base/sun.security.rsa.RSASignature.engineVerify(RSASignature.java:213)
-	at java.base/java.security.Signature$Delegate.engineVerify(Signature.java:1435)
-	at java.base/java.security.Signature.verify(Signature.java:789)
-	at org.opensaml.security.crypto.SigningUtil.verify(SigningUtil.java:216)
-	... 50 more
-</div></td></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m19">org.opensaml.spring.trust.ChainingTrustEngineTest#one</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m20">org.opensaml.spring.trust.ChainingTrustEngineTest#two</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m21">org.opensaml.spring.trust.PKIXFilesystemParserTest#complex</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m22">org.opensaml.spring.trust.PKIXFilesystemParserTest#simple</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m23">org.opensaml.spring.trust.PKIXInlineParserTest#complex</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m24">org.opensaml.spring.trust.PKIXInlineParserTest#simple</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m25">org.opensaml.spring.trust.PKIXValidationOptionsParserTest#complex</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m26">org.opensaml.spring.trust.PKIXValidationOptionsParserTest#simple</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m27">org.opensaml.spring.trust.SignatureChainingParserTest#simple</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m28">org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest#mixed</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m29">org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest#multipleCert</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m30">org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest#singleCert</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m31">org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest#singleKey</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m32">org.opensaml.spring.trust.StaticExplicitKeyParserTest#simple</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m33">org.opensaml.spring.trust.StaticExplicitKeySignatureParserTest#simple</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m34">org.opensaml.spring.trust.StaticPKIXFactoryBeanTest#customPropertiesFailsValidation</h3><table class="result"><tr><th>Expected Exception</th></tr><tr><td><div class="stacktrace">org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'StaticPKIXX509CredentialTrustEngine' defined in class path resource [org/opensaml/spring/trust/static-pkix-factory-custom-failsValidation.xml]: Invocation of init method failed; nested exception is org.s [...]
+<h2>Default test</h2><h3 id="m0">org.opensaml.spring.credential.BasicX509CredentialFactoryBeanTest#bean</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
+<h3 id="m1">org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest#mixed</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
+<h3 id="m2">org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest#multipleCert</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
+<h3 id="m3">org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest#singleCert</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
+<h3 id="m4">org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest#singleKey</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
+<h3 id="m5">org.opensaml.spring.trust.StaticPKIXFactoryBeanTest#customPropertiesFailsValidation</h3><table class="result"><tr><th>Expected Exception</th></tr><tr><td><div class="stacktrace">org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'StaticPKIXX509CredentialTrustEngine' defined in class path resource [org/opensaml/spring/trust/static-pkix-factory-custom-failsValidation.xml]: Invocation of init method failed; nested exception is org.sp [...]
 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1755)
 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:604)
 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:526)
@@ -336,13 +68,7 @@ Caused by: org.springframework.beans.FatalBeanException: Certificate revocation
 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1751)
 	... 38 more
 </div></td></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m35">org.opensaml.spring.trust.StaticPKIXFactoryBeanTest#customPropertiesSuccess</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m36">org.opensaml.spring.trust.StaticPKIXFactoryBeanTest#defaults</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m37">org.opensaml.spring.trust.StaticPKIXSignatureParserTest#certPath</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m38">org.opensaml.spring.trust.StaticPKIXSignatureParserTest#nameCheckDisabled</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m39">org.opensaml.spring.trust.StaticPKIXSignatureParserTest#simple</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m40">org.opensaml.spring.trust.StaticPKIXSignatureParserTest#values</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m41">org.opensaml.spring.trust.StaticPKIXX509CredentialParserTest#certPath</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
-<h3 id="m42">org.opensaml.spring.trust.StaticPKIXX509CredentialParserTest#nameCheckDisabled</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
+<h3 id="m6">org.opensaml.spring.trust.StaticPKIXFactoryBeanTest#customPropertiesSuccess</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
+<h3 id="m7">org.opensaml.spring.trust.StaticPKIXFactoryBeanTest#defaults</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p>
 </body>
 </html>
diff --git a/opensaml-spring/test-output/index.html b/opensaml-spring/test-output/index.html
index baf493101..545167941 100644
--- a/opensaml-spring/test-output/index.html
+++ b/opensaml-spring/test-output/index.html
@@ -93,7 +93,7 @@
               <div class="suite-section-content">
                 <ul>
                   <li>
-                    <span class="method-stats">43 methods,   43 passed</span>
+                    <span class="method-stats">8 methods,   8 passed</span>
                   </li>
                   <li>
                     <span class="method-list-title passed">Passed methods</span>
@@ -107,56 +107,6 @@
                         <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.credential.BasicX509CredentialFactoryBeanTest" class="method navigator-link" hash-for-method="bean">bean</a> <!-- method navigator-link -->
                       </span>
                       <br/>
-                      <span>
-                        <img src="passed.png" width="3%"/>
-                        <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.credential.X509FilesystemParserTest" class="method navigator-link" hash-for-method="certElementsKeyNames">certElementsKeyNames</a> <!-- method navigator-link -->
-                      </span>
-                      <br/>
-                      <span>
-                        <img src="passed.png" width="3%"/>
-                        <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.credential.X509InlineParserTest" class="method navigator-link" hash-for-method="certKeyCrl">certKeyCrl</a> <!-- method navigator-link -->
-                      </span>
-                      <br/>
-                      <span>
-                        <img src="passed.png" width="3%"/>
-                        <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.credential.X509FilesystemParserTest" class="method navigator-link" hash-for-method="certKeyCrl">certKeyCrl</a> <!-- method navigator-link -->
-                      </span>
-                      <br/>
-                      <span>
-                        <img src="passed.png" width="3%"/>
-                        <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.credential.X509FilesystemParserTest" class="method navigator-link" hash-for-method="certOnly">certOnly</a> <!-- method navigator-link -->
-                      </span>
-                      <br/>
-                      <span>
-                        <img src="passed.png" width="3%"/>
-                        <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.credential.X509InlineParserTest" class="method navigator-link" hash-for-method="certOnly">certOnly</a> <!-- method navigator-link -->
-                      </span>
-                      <br/>
-                      <span>
-                        <img src="passed.png" width="3%"/>
-                        <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.trust.StaticPKIXX509CredentialParserTest" class="method navigator-link" hash-for-method="certPath">certPath</a> <!-- method navigator-link -->
-                      </span>
-                      <br/>
-                      <span>
-                        <img src="passed.png" width="3%"/>
-                        <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.trust.StaticPKIXSignatureParserTest" class="method navigator-link" hash-for-method="certPath">certPath</a> <!-- method navigator-link -->
-                      </span>
-                      <br/>
-                      <span>
-                        <img src="passed.png" width="3%"/>
-                        <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.trust.PKIXValidationOptionsParserTest" class="method navigator-link" hash-for-method="complex">complex</a> <!-- method navigator-link -->
-                      </span>
-                      <br/>
-                      <span>
-                        <img src="passed.png" width="3%"/>
-                        <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.trust.PKIXInlineParserTest" class="method navigator-link" hash-for-method="complex">complex</a> <!-- method navigator-link -->
-                      </span>
-                      <br/>
-                      <span>
-                        <img src="passed.png" width="3%"/>
-                        <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.trust.PKIXFilesystemParserTest" class="method navigator-link" hash-for-method="complex">complex</a> <!-- method navigator-link -->
-                      </span>
-                      <br/>
                       <span>
                         <img src="passed.png" width="3%"/>
                         <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.trust.StaticPKIXFactoryBeanTest" class="method navigator-link" hash-for-method="customPropertiesFailsValidation">customPropertiesFailsValidation</a> <!-- method navigator-link -->
@@ -182,101 +132,6 @@
                         <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest" class="method navigator-link" hash-for-method="multipleCert">multipleCert</a> <!-- method navigator-link -->
                       </span>
                       <br/>
-                      <span>
-                        <img src="passed.png" width="3%"/>
-                        <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.trust.StaticPKIXX509CredentialParserTest" class="method navigator-link" hash-for-method="nameCheckDisabled">nameCheckDisabled</a> <!-- method navigator-link -->
-                      </span>
-                      <br/>
-                      <span>
-                        <img src="passed.png" width="3%"/>
-                        <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.trust.StaticPKIXSignatureParserTest" class="method navigator-link" hash-for-method="nameCheckDisabled">nameCheckDisabled</a> <!-- method navigator-link -->
-                      </span>
-                      <br/>
-                      <span>
-                        <img src="passed.png" width="3%"/>
-                        <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.trust.ChainingTrustEngineTest" class="method navigator-link" hash-for-method="one">one</a> <!-- method navigator-link -->
-                      </span>
-                      <br/>
-                      <span>
-                        <img src="passed.png" width="3%"/>
-                        <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.credential.BasicResourceParserTest" class="method navigator-link" hash-for-method="publicOnly">publicOnly</a> <!-- method navigator-link -->
-                      </span>
-                      <br/>
-                      <span>
-                        <img src="passed.png" width="3%"/>
-                        <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.credential.BasicInlineParserTest" class="method navigator-link" hash-for-method="publicOnly">publicOnly</a> <!-- method navigator-link -->
-                      </span>
-                      <br/>
-                      <span>
-                        <img src="passed.png" width="3%"/>
-                        <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.credential.BasicInlineParserTest" class="method navigator-link" hash-for-method="publicPrivate">publicPrivate</a> <!-- method navigator-link -->
-                      </span>
-                      <br/>
-                      <span>
-                        <img src="passed.png" width="3%"/>
-                        <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.credential.BasicResourceParserTest" class="method navigator-link" hash-for-method="publicPrivate">publicPrivate</a> <!-- method navigator-link -->
-                      </span>
-                      <br/>
-                      <span>
-                        <img src="passed.png" width="3%"/>
-                        <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.credential.BasicResourceParserTest" class="method navigator-link" hash-for-method="secretBase64">secretBase64</a> <!-- method navigator-link -->
-                      </span>
-                      <br/>
-                      <span>
-                        <img src="passed.png" width="3%"/>
-                        <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.credential.BasicInlineParserTest" class="method navigator-link" hash-for-method="secretBase64">secretBase64</a> <!-- method navigator-link -->
-                      </span>
-                      <br/>
-                      <span>
-                        <img src="passed.png" width="3%"/>
-                        <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.credential.BasicResourceParserTest" class="method navigator-link" hash-for-method="secretBinary">secretBinary</a> <!-- method navigator-link -->
-                      </span>
-                      <br/>
-                      <span>
-                        <img src="passed.png" width="3%"/>
-                        <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.credential.BasicResourceParserTest" class="method navigator-link" hash-for-method="secretHex">secretHex</a> <!-- method navigator-link -->
-                      </span>
-                      <br/>
-                      <span>
-                        <img src="passed.png" width="3%"/>
-                        <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.credential.BasicInlineParserTest" class="method navigator-link" hash-for-method="secretHex">secretHex</a> <!-- method navigator-link -->
-                      </span>
-                      <br/>
-                      <span>
-                        <img src="passed.png" width="3%"/>
-                        <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.trust.StaticPKIXSignatureParserTest" class="method navigator-link" hash-for-method="simple">simple</a> <!-- method navigator-link -->
-                      </span>
-                      <br/>
-                      <span>
-                        <img src="passed.png" width="3%"/>
-                        <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.trust.StaticExplicitKeyParserTest" class="method navigator-link" hash-for-method="simple">simple</a> <!-- method navigator-link -->
-                      </span>
-                      <br/>
-                      <span>
-                        <img src="passed.png" width="3%"/>
-                        <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.trust.PKIXValidationOptionsParserTest" class="method navigator-link" hash-for-method="simple">simple</a> <!-- method navigator-link -->
-                      </span>
-                      <br/>
-                      <span>
-                        <img src="passed.png" width="3%"/>
-                        <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.trust.PKIXInlineParserTest" class="method navigator-link" hash-for-method="simple">simple</a> <!-- method navigator-link -->
-                      </span>
-                      <br/>
-                      <span>
-                        <img src="passed.png" width="3%"/>
-                        <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.trust.StaticExplicitKeySignatureParserTest" class="method navigator-link" hash-for-method="simple">simple</a> <!-- method navigator-link -->
-                      </span>
-                      <br/>
-                      <span>
-                        <img src="passed.png" width="3%"/>
-                        <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.trust.SignatureChainingParserTest" class="method navigator-link" hash-for-method="simple">simple</a> <!-- method navigator-link -->
-                      </span>
-                      <br/>
-                      <span>
-                        <img src="passed.png" width="3%"/>
-                        <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.trust.PKIXFilesystemParserTest" class="method navigator-link" hash-for-method="simple">simple</a> <!-- method navigator-link -->
-                      </span>
-                      <br/>
                       <span>
                         <img src="passed.png" width="3%"/>
                         <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest" class="method navigator-link" hash-for-method="singleCert">singleCert</a> <!-- method navigator-link -->
@@ -287,36 +142,6 @@
                         <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest" class="method navigator-link" hash-for-method="singleKey">singleKey</a> <!-- method navigator-link -->
                       </span>
                       <br/>
-                      <span>
-                        <img src="passed.png" width="3%"/>
-                        <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.trust.ChainingTrustEngineTest" class="method navigator-link" hash-for-method="two">two</a> <!-- method navigator-link -->
-                      </span>
-                      <br/>
-                      <span>
-                        <img src="passed.png" width="3%"/>
-                        <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.credential.X509FilesystemParserTest" class="method navigator-link" hash-for-method="twoCert">twoCert</a> <!-- method navigator-link -->
-                      </span>
-                      <br/>
-                      <span>
-                        <img src="passed.png" width="3%"/>
-                        <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.trust.StaticPKIXSignatureParserTest" class="method navigator-link" hash-for-method="values">values</a> <!-- method navigator-link -->
-                      </span>
-                      <br/>
-                      <span>
-                        <img src="passed.png" width="3%"/>
-                        <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.credential.BasicResourceParserTest" class="method navigator-link" hash-for-method="wrongCert">wrongCert</a> <!-- method navigator-link -->
-                      </span>
-                      <br/>
-                      <span>
-                        <img src="passed.png" width="3%"/>
-                        <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.credential.X509FilesystemParserTest" class="method navigator-link" hash-for-method="wrongCert">wrongCert</a> <!-- method navigator-link -->
-                      </span>
-                      <br/>
-                      <span>
-                        <img src="passed.png" width="3%"/>
-                        <a href="#" panel-name="suite-Default_suite" title="org.opensaml.spring.credential.X509InlineParserTest" class="method navigator-link" hash-for-method="wrongCert">wrongCert</a> <!-- method navigator-link -->
-                      </span>
-                      <br/>
                     </div> <!-- method-list-content passed suite-Default_suite -->
                   </li>
                 </ul>
@@ -332,109 +157,35 @@
           <div class="suite-Default_suite-class-passed">
             <div class="main-panel-header rounded-window-top">
               <img src="passed.png"/>
-              <span class="class-name">org.opensaml.spring.trust.StaticExplicitKeySignatureParserTest</span>
-            </div> <!-- main-panel-header rounded-window-top -->
-            <div class="main-panel-content rounded-window-bottom">
-              <div class="method">
-                <div class="method-content">
-                  <a name="simple">
-                  </a> <!-- simple -->
-                  <span class="method-name">simple</span>
-                </div> <!-- method-content -->
-              </div> <!-- method -->
-            </div> <!-- main-panel-content rounded-window-bottom -->
-          </div> <!-- suite-Default_suite-class-passed -->
-          <div class="suite-Default_suite-class-passed">
-            <div class="main-panel-header rounded-window-top">
-              <img src="passed.png"/>
-              <span class="class-name">org.opensaml.spring.trust.StaticPKIXFactoryBeanTest</span>
-            </div> <!-- main-panel-header rounded-window-top -->
-            <div class="main-panel-content rounded-window-bottom">
-              <div class="method">
-                <div class="method-content">
-                  <a name="customPropertiesFailsValidation">
-                  </a> <!-- customPropertiesFailsValidation -->
-                  <span class="method-name">customPropertiesFailsValidation</span>
-                </div> <!-- method-content -->
-              </div> <!-- method -->
-              <div class="method">
-                <div class="method-content">
-                  <a name="customPropertiesSuccess">
-                  </a> <!-- customPropertiesSuccess -->
-                  <span class="method-name">customPropertiesSuccess</span>
-                </div> <!-- method-content -->
-              </div> <!-- method -->
-              <div class="method">
-                <div class="method-content">
-                  <a name="defaults">
-                  </a> <!-- defaults -->
-                  <span class="method-name">defaults</span>
-                </div> <!-- method-content -->
-              </div> <!-- method -->
-            </div> <!-- main-panel-content rounded-window-bottom -->
-          </div> <!-- suite-Default_suite-class-passed -->
-          <div class="suite-Default_suite-class-passed">
-            <div class="main-panel-header rounded-window-top">
-              <img src="passed.png"/>
-              <span class="class-name">org.opensaml.spring.trust.ChainingTrustEngineTest</span>
-            </div> <!-- main-panel-header rounded-window-top -->
-            <div class="main-panel-content rounded-window-bottom">
-              <div class="method">
-                <div class="method-content">
-                  <a name="one">
-                  </a> <!-- one -->
-                  <span class="method-name">one</span>
-                </div> <!-- method-content -->
-              </div> <!-- method -->
-              <div class="method">
-                <div class="method-content">
-                  <a name="two">
-                  </a> <!-- two -->
-                  <span class="method-name">two</span>
-                </div> <!-- method-content -->
-              </div> <!-- method -->
-            </div> <!-- main-panel-content rounded-window-bottom -->
-          </div> <!-- suite-Default_suite-class-passed -->
-          <div class="suite-Default_suite-class-passed">
-            <div class="main-panel-header rounded-window-top">
-              <img src="passed.png"/>
-              <span class="class-name">org.opensaml.spring.trust.PKIXValidationOptionsParserTest</span>
+              <span class="class-name">org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest</span>
             </div> <!-- main-panel-header rounded-window-top -->
             <div class="main-panel-content rounded-window-bottom">
               <div class="method">
                 <div class="method-content">
-                  <a name="complex">
-                  </a> <!-- complex -->
-                  <span class="method-name">complex</span>
+                  <a name="mixed">
+                  </a> <!-- mixed -->
+                  <span class="method-name">mixed</span>
                 </div> <!-- method-content -->
               </div> <!-- method -->
               <div class="method">
                 <div class="method-content">
-                  <a name="simple">
-                  </a> <!-- simple -->
-                  <span class="method-name">simple</span>
+                  <a name="multipleCert">
+                  </a> <!-- multipleCert -->
+                  <span class="method-name">multipleCert</span>
                 </div> <!-- method-content -->
               </div> <!-- method -->
-            </div> <!-- main-panel-content rounded-window-bottom -->
-          </div> <!-- suite-Default_suite-class-passed -->
-          <div class="suite-Default_suite-class-passed">
-            <div class="main-panel-header rounded-window-top">
-              <img src="passed.png"/>
-              <span class="class-name">org.opensaml.spring.trust.StaticPKIXX509CredentialParserTest</span>
-            </div> <!-- main-panel-header rounded-window-top -->
-            <div class="main-panel-content rounded-window-bottom">
               <div class="method">
                 <div class="method-content">
-                  <a name="certPath">
-                  </a> <!-- certPath -->
-                  <span class="method-name">certPath</span>
+                  <a name="singleCert">
+                  </a> <!-- singleCert -->
+                  <span class="method-name">singleCert</span>
                 </div> <!-- method-content -->
               </div> <!-- method -->
               <div class="method">
                 <div class="method-content">
-                  <a name="nameCheckDisabled">
-                  </a> <!-- nameCheckDisabled -->
-                  <span class="method-name">nameCheckDisabled</span>
+                  <a name="singleKey">
+                  </a> <!-- singleKey -->
+                  <span class="method-name">singleKey</span>
                 </div> <!-- method-content -->
               </div> <!-- method -->
             </div> <!-- main-panel-content rounded-window-bottom -->
@@ -442,49 +193,28 @@
           <div class="suite-Default_suite-class-passed">
             <div class="main-panel-header rounded-window-top">
               <img src="passed.png"/>
-              <span class="class-name">org.opensaml.spring.credential.BasicResourceParserTest</span>
+              <span class="class-name">org.opensaml.spring.trust.StaticPKIXFactoryBeanTest</span>
             </div> <!-- main-panel-header rounded-window-top -->
             <div class="main-panel-content rounded-window-bottom">
               <div class="method">
                 <div class="method-content">
-                  <a name="publicOnly">
-                  </a> <!-- publicOnly -->
-                  <span class="method-name">publicOnly</span>
-                </div> <!-- method-content -->
-              </div> <!-- method -->
-              <div class="method">
-                <div class="method-content">
-                  <a name="publicPrivate">
-                  </a> <!-- publicPrivate -->
-                  <span class="method-name">publicPrivate</span>
-                </div> <!-- method-content -->
-              </div> <!-- method -->
-              <div class="method">
-                <div class="method-content">
-                  <a name="secretBase64">
-                  </a> <!-- secretBase64 -->
-                  <span class="method-name">secretBase64</span>
-                </div> <!-- method-content -->
-              </div> <!-- method -->
-              <div class="method">
-                <div class="method-content">
-                  <a name="secretBinary">
-                  </a> <!-- secretBinary -->
-                  <span class="method-name">secretBinary</span>
+                  <a name="customPropertiesFailsValidation">
+                  </a> <!-- customPropertiesFailsValidation -->
+                  <span class="method-name">customPropertiesFailsValidation</span>
                 </div> <!-- method-content -->
               </div> <!-- method -->
               <div class="method">
                 <div class="method-content">
-                  <a name="secretHex">
-                  </a> <!-- secretHex -->
-                  <span class="method-name">secretHex</span>
+                  <a name="customPropertiesSuccess">
+                  </a> <!-- customPropertiesSuccess -->
+                  <span class="method-name">customPropertiesSuccess</span>
                 </div> <!-- method-content -->
               </div> <!-- method -->
               <div class="method">
                 <div class="method-content">
-                  <a name="wrongCert">
-                  </a> <!-- wrongCert -->
-                  <span class="method-name">wrongCert</span>
+                  <a name="defaults">
+                  </a> <!-- defaults -->
+                  <span class="method-name">defaults</span>
                 </div> <!-- method-content -->
               </div> <!-- method -->
             </div> <!-- main-panel-content rounded-window-bottom -->
@@ -492,268 +222,14 @@
           <div class="suite-Default_suite-class-passed">
             <div class="main-panel-header rounded-window-top">
               <img src="passed.png"/>
-              <span class="class-name">org.opensaml.spring.credential.X509InlineParserTest</span>
+              <span class="class-name">org.opensaml.spring.credential.BasicX509CredentialFactoryBeanTest</span>
             </div> <!-- main-panel-header rounded-window-top -->
             <div class="main-panel-content rounded-window-bottom">
               <div class="method">
                 <div class="method-content">
-                  <a name="certKeyCrl">
-                  </a> <!-- certKeyCrl -->
-                  <span class="method-name">certKeyCrl</span>
-                </div> <!-- method-content -->
-              </div> <!-- method -->
-              <div class="method">
-                <div class="method-content">
-                  <a name="certOnly">
-                  </a> <!-- certOnly -->
-                  <span class="method-name">certOnly</span>
-                </div> <!-- method-content -->
-              </div> <!-- method -->
-              <div class="method">
-                <div class="method-content">
-                  <a name="wrongCert">
-                  </a> <!-- wrongCert -->
-                  <span class="method-name">wrongCert</span>
-                </div> <!-- method-content -->
-              </div> <!-- method -->
-            </div> <!-- main-panel-content rounded-window-bottom -->
-          </div> <!-- suite-Default_suite-class-passed -->
-          <div class="suite-Default_suite-class-passed">
-            <div class="main-panel-header rounded-window-top">
-              <img src="passed.png"/>
-              <span class="class-name">org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest</span>
-            </div> <!-- main-panel-header rounded-window-top -->
-            <div class="main-panel-content rounded-window-bottom">
-              <div class="method">
-                <div class="method-content">
-                  <a name="mixed">
-                  </a> <!-- mixed -->
-                  <span class="method-name">mixed</span>
-                </div> <!-- method-content -->
-              </div> <!-- method -->
-              <div class="method">
-                <div class="method-content">
-                  <a name="multipleCert">
-                  </a> <!-- multipleCert -->
-                  <span class="method-name">multipleCert</span>
-                </div> <!-- method-content -->
-              </div> <!-- method -->
-              <div class="method">
-                <div class="method-content">
-                  <a name="singleCert">
-                  </a> <!-- singleCert -->
-                  <span class="method-name">singleCert</span>
-                </div> <!-- method-content -->
-              </div> <!-- method -->
-              <div class="method">
-                <div class="method-content">
-                  <a name="singleKey">
-                  </a> <!-- singleKey -->
-                  <span class="method-name">singleKey</span>
-                </div> <!-- method-content -->
-              </div> <!-- method -->
-            </div> <!-- main-panel-content rounded-window-bottom -->
-          </div> <!-- suite-Default_suite-class-passed -->
-          <div class="suite-Default_suite-class-passed">
-            <div class="main-panel-header rounded-window-top">
-              <img src="passed.png"/>
-              <span class="class-name">org.opensaml.spring.trust.PKIXInlineParserTest</span>
-            </div> <!-- main-panel-header rounded-window-top -->
-            <div class="main-panel-content rounded-window-bottom">
-              <div class="method">
-                <div class="method-content">
-                  <a name="complex">
-                  </a> <!-- complex -->
-                  <span class="method-name">complex</span>
-                </div> <!-- method-content -->
-              </div> <!-- method -->
-              <div class="method">
-                <div class="method-content">
-                  <a name="simple">
-                  </a> <!-- simple -->
-                  <span class="method-name">simple</span>
-                </div> <!-- method-content -->
-              </div> <!-- method -->
-            </div> <!-- main-panel-content rounded-window-bottom -->
-          </div> <!-- suite-Default_suite-class-passed -->
-          <div class="suite-Default_suite-class-passed">
-            <div class="main-panel-header rounded-window-top">
-              <img src="passed.png"/>
-              <span class="class-name">org.opensaml.spring.trust.PKIXFilesystemParserTest</span>
-            </div> <!-- main-panel-header rounded-window-top -->
-            <div class="main-panel-content rounded-window-bottom">
-              <div class="method">
-                <div class="method-content">
-                  <a name="complex">
-                  </a> <!-- complex -->
-                  <span class="method-name">complex</span>
-                </div> <!-- method-content -->
-              </div> <!-- method -->
-              <div class="method">
-                <div class="method-content">
-                  <a name="simple">
-                  </a> <!-- simple -->
-                  <span class="method-name">simple</span>
-                </div> <!-- method-content -->
-              </div> <!-- method -->
-            </div> <!-- main-panel-content rounded-window-bottom -->
-          </div> <!-- suite-Default_suite-class-passed -->
-          <div class="suite-Default_suite-class-passed">
-            <div class="main-panel-header rounded-window-top">
-              <img src="passed.png"/>
-              <span class="class-name">org.opensaml.spring.trust.StaticExplicitKeyParserTest</span>
-            </div> <!-- main-panel-header rounded-window-top -->
-            <div class="main-panel-content rounded-window-bottom">
-              <div class="method">
-                <div class="method-content">
-                  <a name="simple">
-                  </a> <!-- simple -->
-                  <span class="method-name">simple</span>
-                </div> <!-- method-content -->
-              </div> <!-- method -->
-            </div> <!-- main-panel-content rounded-window-bottom -->
-          </div> <!-- suite-Default_suite-class-passed -->
-          <div class="suite-Default_suite-class-passed">
-            <div class="main-panel-header rounded-window-top">
-              <img src="passed.png"/>
-              <span class="class-name">org.opensaml.spring.credential.BasicInlineParserTest</span>
-            </div> <!-- main-panel-header rounded-window-top -->
-            <div class="main-panel-content rounded-window-bottom">
-              <div class="method">
-                <div class="method-content">
-                  <a name="publicOnly">
-                  </a> <!-- publicOnly -->
-                  <span class="method-name">publicOnly</span>
-                </div> <!-- method-content -->
-              </div> <!-- method -->
-              <div class="method">
-                <div class="method-content">
-                  <a name="publicPrivate">
-                  </a> <!-- publicPrivate -->
-                  <span class="method-name">publicPrivate</span>
-                </div> <!-- method-content -->
-              </div> <!-- method -->
-              <div class="method">
-                <div class="method-content">
-                  <a name="secretBase64">
-                  </a> <!-- secretBase64 -->
-                  <span class="method-name">secretBase64</span>
-                </div> <!-- method-content -->
-              </div> <!-- method -->
-              <div class="method">
-                <div class="method-content">
-                  <a name="secretHex">
-                  </a> <!-- secretHex -->
-                  <span class="method-name">secretHex</span>
-                </div> <!-- method-content -->
-              </div> <!-- method -->
-            </div> <!-- main-panel-content rounded-window-bottom -->
-          </div> <!-- suite-Default_suite-class-passed -->
-          <div class="suite-Default_suite-class-passed">
-            <div class="main-panel-header rounded-window-top">
-              <img src="passed.png"/>
-              <span class="class-name">org.opensaml.spring.trust.SignatureChainingParserTest</span>
-            </div> <!-- main-panel-header rounded-window-top -->
-            <div class="main-panel-content rounded-window-bottom">
-              <div class="method">
-                <div class="method-content">
-                  <a name="simple">
-                  </a> <!-- simple -->
-                  <span class="method-name">simple</span>
-                </div> <!-- method-content -->
-              </div> <!-- method -->
-            </div> <!-- main-panel-content rounded-window-bottom -->
-          </div> <!-- suite-Default_suite-class-passed -->
-          <div class="suite-Default_suite-class-passed">
-            <div class="main-panel-header rounded-window-top">
-              <img src="passed.png"/>
-              <span class="class-name">org.opensaml.spring.credential.BasicX509CredentialFactoryBeanTest</span>
-            </div> <!-- main-panel-header rounded-window-top -->
-            <div class="main-panel-content rounded-window-bottom">
-              <div class="method">
-                <div class="method-content">
-                  <a name="bean">
-                  </a> <!-- bean -->
-                  <span class="method-name">bean</span>
-                </div> <!-- method-content -->
-              </div> <!-- method -->
-            </div> <!-- main-panel-content rounded-window-bottom -->
-          </div> <!-- suite-Default_suite-class-passed -->
-          <div class="suite-Default_suite-class-passed">
-            <div class="main-panel-header rounded-window-top">
-              <img src="passed.png"/>
-              <span class="class-name">org.opensaml.spring.trust.StaticPKIXSignatureParserTest</span>
-            </div> <!-- main-panel-header rounded-window-top -->
-            <div class="main-panel-content rounded-window-bottom">
-              <div class="method">
-                <div class="method-content">
-                  <a name="certPath">
-                  </a> <!-- certPath -->
-                  <span class="method-name">certPath</span>
-                </div> <!-- method-content -->
-              </div> <!-- method -->
-              <div class="method">
-                <div class="method-content">
-                  <a name="nameCheckDisabled">
-                  </a> <!-- nameCheckDisabled -->
-                  <span class="method-name">nameCheckDisabled</span>
-                </div> <!-- method-content -->
-              </div> <!-- method -->
-              <div class="method">
-                <div class="method-content">
-                  <a name="simple">
-                  </a> <!-- simple -->
-                  <span class="method-name">simple</span>
-                </div> <!-- method-content -->
-              </div> <!-- method -->
-              <div class="method">
-                <div class="method-content">
-                  <a name="values">
-                  </a> <!-- values -->
-                  <span class="method-name">values</span>
-                </div> <!-- method-content -->
-              </div> <!-- method -->
-            </div> <!-- main-panel-content rounded-window-bottom -->
-          </div> <!-- suite-Default_suite-class-passed -->
-          <div class="suite-Default_suite-class-passed">
-            <div class="main-panel-header rounded-window-top">
-              <img src="passed.png"/>
-              <span class="class-name">org.opensaml.spring.credential.X509FilesystemParserTest</span>
-            </div> <!-- main-panel-header rounded-window-top -->
-            <div class="main-panel-content rounded-window-bottom">
-              <div class="method">
-                <div class="method-content">
-                  <a name="certElementsKeyNames">
-                  </a> <!-- certElementsKeyNames -->
-                  <span class="method-name">certElementsKeyNames</span>
-                </div> <!-- method-content -->
-              </div> <!-- method -->
-              <div class="method">
-                <div class="method-content">
-                  <a name="certKeyCrl">
-                  </a> <!-- certKeyCrl -->
-                  <span class="method-name">certKeyCrl</span>
-                </div> <!-- method-content -->
-              </div> <!-- method -->
-              <div class="method">
-                <div class="method-content">
-                  <a name="certOnly">
-                  </a> <!-- certOnly -->
-                  <span class="method-name">certOnly</span>
-                </div> <!-- method-content -->
-              </div> <!-- method -->
-              <div class="method">
-                <div class="method-content">
-                  <a name="twoCert">
-                  </a> <!-- twoCert -->
-                  <span class="method-name">twoCert</span>
-                </div> <!-- method-content -->
-              </div> <!-- method -->
-              <div class="method">
-                <div class="method-content">
-                  <a name="wrongCert">
-                  </a> <!-- wrongCert -->
-                  <span class="method-name">wrongCert</span>
+                  <a name="bean">
+                  </a> <!-- bean -->
+                  <span class="method-name">bean</span>
                 </div> <!-- method-content -->
               </div> <!-- method -->
             </div> <!-- main-panel-content rounded-window-bottom -->
@@ -761,7 +237,7 @@
         </div> <!-- panel Default_suite -->
         <div panel-name="test-xml-Default_suite" class="panel">
           <div class="main-panel-header rounded-window-top">
-            <span class="header-content">/private/var/folders/5f/xsd8c2ld42l1xrzgghx8hf5r0000gn/T/testng-eclipse--2005517064/testng-customsuite.xml</span>
+            <span class="header-content">/private/var/folders/5f/xsd8c2ld42l1xrzgghx8hf5r0000gn/T/testng-eclipse-595001335/testng-customsuite.xml</span>
           </div> <!-- main-panel-header rounded-window-top -->
           <div class="main-panel-content rounded-window-bottom">
             <pre>
@@ -770,24 +246,26 @@
 <suite name="Default suite" guice-stage="DEVELOPMENT">
   <test thread-count="5" name="Default test" verbose="2">
     <classes>
-      <class name="org.opensaml.spring.credential.BasicResourceParserTest"/>
+      <class name="org.opensaml.spring.trust.StaticExplicitKeyFactoryBean"/>
       <class name="org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest"/>
-      <class name="org.opensaml.spring.trust.StaticExplicitKeyParserTest"/>
-      <class name="org.opensaml.spring.trust.StaticExplicitKeySignatureParserTest"/>
-      <class name="org.opensaml.spring.trust.PKIXValidationOptionsParserTest"/>
-      <class name="org.opensaml.spring.trust.PKIXFilesystemParserTest"/>
+      <class name="org.opensaml.spring.credential.AbstractCredentialFactoryBean"/>
+      <class name="org.opensaml.spring.tls.TLSSocketFactoryFactoryBean"/>
       <class name="org.opensaml.spring.trust.MockTrustEngine"/>
-      <class name="org.opensaml.spring.credential.X509FilesystemParserTest"/>
-      <class name="org.opensaml.spring.credential.X509InlineParserTest"/>
-      <class name="org.opensaml.spring.trust.ChainingTrustEngineTest"/>
-      <class name="org.opensaml.spring.trust.StaticPKIXX509CredentialParserTest"/>
+      <class name="org.opensaml.spring.credential.AbstractX509CredentialFactoryBean"/>
+      <class name="org.opensaml.spring.credential.BasicInlineCredentialFactoryBean"/>
+      <class name="org.opensaml.spring.trust.AbstractSecurityTest"/>
+      <class name="org.opensaml.spring.trust.StaticPKIXFactoryBean"/>
+      <class name="org.opensaml.spring.trust.PKIXInlineValidationInfoFactoryBean"/>
+      <class name="org.opensaml.spring.credential.BasicX509CredentialFactoryBean"/>
       <class name="org.opensaml.spring.trust.StaticPKIXFactoryBeanTest"/>
-      <class name="org.opensaml.spring.trust.SignatureChainingParserTest"/>
-      <class name="org.opensaml.spring.credential.BasicInlineParserTest"/>
+      <class name="org.opensaml.spring.trust.ChainingSignatureTrustEngineFactoryBean"/>
+      <class name="org.opensaml.spring.credential.X509InlineCredentialFactoryBean"/>
+      <class name="org.opensaml.spring.trust.PKIXResourceValidationInfoFactoryBean"/>
+      <class name="org.opensaml.spring.credential.AbstractBasicCredentialFactoryBean"/>
+      <class name="org.opensaml.spring.credential.BasicResourceCredentialFactoryBean"/>
       <class name="org.opensaml.spring.credential.BasicX509CredentialFactoryBeanTest"/>
-      <class name="org.opensaml.spring.trust.PKIXInlineParserTest"/>
-      <class name="org.opensaml.spring.AbstractSecurityParserTest"/>
-      <class name="org.opensaml.spring.trust.StaticPKIXSignatureParserTest"/>
+      <class name="org.opensaml.spring.trust.ChainingTrustEngineFactoryBean"/>
+      <class name="org.opensaml.spring.trust.AbstractBasicPKIXValidationInfoFactoryBean"/>
     </classes>
   </test> <!-- Default test -->
 </suite> <!-- Default suite -->
@@ -801,7 +279,7 @@
           <div class="main-panel-content rounded-window-bottom">
             <ul>
               <li>
-                <span class="test-name">Default test (18 classes)</span>
+                <span class="test-name">Default test (20 classes)</span>
               </li>
             </ul>
           </div> <!-- main-panel-content rounded-window-bottom -->
@@ -827,184 +305,44 @@ data.addColumn('number', 'Number');
 data.addColumn('string', 'Method');
 data.addColumn('string', 'Class');
 data.addColumn('number', 'Time (ms)');
-data.addRows(43);
+data.addRows(8);
 data.setCell(0, 0, 0)
-data.setCell(0, 1, 'publicOnly')
-data.setCell(0, 2, 'org.opensaml.spring.credential.BasicResourceParserTest')
-data.setCell(0, 3, 639);
+data.setCell(0, 1, 'mixed')
+data.setCell(0, 2, 'org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest')
+data.setCell(0, 3, 702);
 data.setCell(1, 0, 1)
-data.setCell(1, 1, 'mixed')
-data.setCell(1, 2, 'org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest')
-data.setCell(1, 3, 124);
+data.setCell(1, 1, 'bean')
+data.setCell(1, 2, 'org.opensaml.spring.credential.BasicX509CredentialFactoryBeanTest')
+data.setCell(1, 3, 152);
 data.setCell(2, 0, 2)
-data.setCell(2, 1, 'publicPrivate')
-data.setCell(2, 2, 'org.opensaml.spring.credential.BasicResourceParserTest')
-data.setCell(2, 3, 113);
+data.setCell(2, 1, 'multipleCert')
+data.setCell(2, 2, 'org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest')
+data.setCell(2, 3, 91);
 data.setCell(3, 0, 3)
-data.setCell(3, 1, 'bean')
-data.setCell(3, 2, 'org.opensaml.spring.credential.BasicX509CredentialFactoryBeanTest')
-data.setCell(3, 3, 73);
+data.setCell(3, 1, 'customPropertiesFailsValidation')
+data.setCell(3, 2, 'org.opensaml.spring.trust.StaticPKIXFactoryBeanTest')
+data.setCell(3, 3, 90);
 data.setCell(4, 0, 4)
-data.setCell(4, 1, 'wrongCert')
-data.setCell(4, 2, 'org.opensaml.spring.credential.BasicResourceParserTest')
-data.setCell(4, 3, 68);
+data.setCell(4, 1, 'singleCert')
+data.setCell(4, 2, 'org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest')
+data.setCell(4, 3, 72);
 data.setCell(5, 0, 5)
-data.setCell(5, 1, 'certPath')
-data.setCell(5, 2, 'org.opensaml.spring.trust.StaticPKIXX509CredentialParserTest')
-data.setCell(5, 3, 67);
+data.setCell(5, 1, 'singleKey')
+data.setCell(5, 2, 'org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest')
+data.setCell(5, 3, 59);
 data.setCell(6, 0, 6)
-data.setCell(6, 1, 'wrongCert')
-data.setCell(6, 2, 'org.opensaml.spring.credential.X509FilesystemParserTest')
-data.setCell(6, 3, 66);
+data.setCell(6, 1, 'customPropertiesSuccess')
+data.setCell(6, 2, 'org.opensaml.spring.trust.StaticPKIXFactoryBeanTest')
+data.setCell(6, 3, 50);
 data.setCell(7, 0, 7)
-data.setCell(7, 1, 'simple')
-data.setCell(7, 2, 'org.opensaml.spring.trust.StaticExplicitKeyParserTest')
-data.setCell(7, 3, 65);
-data.setCell(8, 0, 8)
-data.setCell(8, 1, 'twoCert')
-data.setCell(8, 2, 'org.opensaml.spring.credential.X509FilesystemParserTest')
-data.setCell(8, 3, 63);
-data.setCell(9, 0, 9)
-data.setCell(9, 1, 'singleCert')
-data.setCell(9, 2, 'org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest')
-data.setCell(9, 3, 62);
-data.setCell(10, 0, 10)
-data.setCell(10, 1, 'one')
-data.setCell(10, 2, 'org.opensaml.spring.trust.ChainingTrustEngineTest')
-data.setCell(10, 3, 59);
-data.setCell(11, 0, 11)
-data.setCell(11, 1, 'secretBinary')
-data.setCell(11, 2, 'org.opensaml.spring.credential.BasicResourceParserTest')
-data.setCell(11, 3, 57);
-data.setCell(12, 0, 12)
-data.setCell(12, 1, 'singleKey')
-data.setCell(12, 2, 'org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest')
-data.setCell(12, 3, 55);
-data.setCell(13, 0, 13)
-data.setCell(13, 1, 'customPropertiesFailsValidation')
-data.setCell(13, 2, 'org.opensaml.spring.trust.StaticPKIXFactoryBeanTest')
-data.setCell(13, 3, 51);
-data.setCell(14, 0, 14)
-data.setCell(14, 1, 'multipleCert')
-data.setCell(14, 2, 'org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest')
-data.setCell(14, 3, 51);
-data.setCell(15, 0, 15)
-data.setCell(15, 1, 'certKeyCrl')
-data.setCell(15, 2, 'org.opensaml.spring.credential.X509InlineParserTest')
-data.setCell(15, 3, 49);
-data.setCell(16, 0, 16)
-data.setCell(16, 1, 'complex')
-data.setCell(16, 2, 'org.opensaml.spring.trust.PKIXFilesystemParserTest')
-data.setCell(16, 3, 48);
-data.setCell(17, 0, 17)
-data.setCell(17, 1, 'secretBase64')
-data.setCell(17, 2, 'org.opensaml.spring.credential.BasicResourceParserTest')
-data.setCell(17, 3, 48);
-data.setCell(18, 0, 18)
-data.setCell(18, 1, 'certKeyCrl')
-data.setCell(18, 2, 'org.opensaml.spring.credential.X509FilesystemParserTest')
-data.setCell(18, 3, 45);
-data.setCell(19, 0, 19)
-data.setCell(19, 1, 'values')
-data.setCell(19, 2, 'org.opensaml.spring.trust.StaticPKIXSignatureParserTest')
-data.setCell(19, 3, 44);
-data.setCell(20, 0, 20)
-data.setCell(20, 1, 'simple')
-data.setCell(20, 2, 'org.opensaml.spring.trust.StaticExplicitKeySignatureParserTest')
-data.setCell(20, 3, 44);
-data.setCell(21, 0, 21)
-data.setCell(21, 1, 'two')
-data.setCell(21, 2, 'org.opensaml.spring.trust.ChainingTrustEngineTest')
-data.setCell(21, 3, 38);
-data.setCell(22, 0, 22)
-data.setCell(22, 1, 'nameCheckDisabled')
-data.setCell(22, 2, 'org.opensaml.spring.trust.StaticPKIXX509CredentialParserTest')
-data.setCell(22, 3, 36);
-data.setCell(23, 0, 23)
-data.setCell(23, 1, 'simple')
-data.setCell(23, 2, 'org.opensaml.spring.trust.SignatureChainingParserTest')
-data.setCell(23, 3, 36);
-data.setCell(24, 0, 24)
-data.setCell(24, 1, 'publicPrivate')
-data.setCell(24, 2, 'org.opensaml.spring.credential.BasicInlineParserTest')
-data.setCell(24, 3, 35);
-data.setCell(25, 0, 25)
-data.setCell(25, 1, 'wrongCert')
-data.setCell(25, 2, 'org.opensaml.spring.credential.X509InlineParserTest')
-data.setCell(25, 3, 31);
-data.setCell(26, 0, 26)
-data.setCell(26, 1, 'complex')
-data.setCell(26, 2, 'org.opensaml.spring.trust.PKIXValidationOptionsParserTest')
-data.setCell(26, 3, 29);
-data.setCell(27, 0, 27)
-data.setCell(27, 1, 'secretHex')
-data.setCell(27, 2, 'org.opensaml.spring.credential.BasicResourceParserTest')
-data.setCell(27, 3, 28);
-data.setCell(28, 0, 28)
-data.setCell(28, 1, 'certElementsKeyNames')
-data.setCell(28, 2, 'org.opensaml.spring.credential.X509FilesystemParserTest')
-data.setCell(28, 3, 28);
-data.setCell(29, 0, 29)
-data.setCell(29, 1, 'certOnly')
-data.setCell(29, 2, 'org.opensaml.spring.credential.X509InlineParserTest')
-data.setCell(29, 3, 27);
-data.setCell(30, 0, 30)
-data.setCell(30, 1, 'customPropertiesSuccess')
-data.setCell(30, 2, 'org.opensaml.spring.trust.StaticPKIXFactoryBeanTest')
-data.setCell(30, 3, 25);
-data.setCell(31, 0, 31)
-data.setCell(31, 1, 'nameCheckDisabled')
-data.setCell(31, 2, 'org.opensaml.spring.trust.StaticPKIXSignatureParserTest')
-data.setCell(31, 3, 22);
-data.setCell(32, 0, 32)
-data.setCell(32, 1, 'simple')
-data.setCell(32, 2, 'org.opensaml.spring.trust.PKIXFilesystemParserTest')
-data.setCell(32, 3, 22);
-data.setCell(33, 0, 33)
-data.setCell(33, 1, 'complex')
-data.setCell(33, 2, 'org.opensaml.spring.trust.PKIXInlineParserTest')
-data.setCell(33, 3, 21);
-data.setCell(34, 0, 34)
-data.setCell(34, 1, 'simple')
-data.setCell(34, 2, 'org.opensaml.spring.trust.PKIXInlineParserTest')
-data.setCell(34, 3, 21);
-data.setCell(35, 0, 35)
-data.setCell(35, 1, 'publicOnly')
-data.setCell(35, 2, 'org.opensaml.spring.credential.BasicInlineParserTest')
-data.setCell(35, 3, 21);
-data.setCell(36, 0, 36)
-data.setCell(36, 1, 'simple')
-data.setCell(36, 2, 'org.opensaml.spring.trust.StaticPKIXSignatureParserTest')
-data.setCell(36, 3, 20);
-data.setCell(37, 0, 37)
-data.setCell(37, 1, 'certPath')
-data.setCell(37, 2, 'org.opensaml.spring.trust.StaticPKIXSignatureParserTest')
-data.setCell(37, 3, 20);
-data.setCell(38, 0, 38)
-data.setCell(38, 1, 'simple')
-data.setCell(38, 2, 'org.opensaml.spring.trust.PKIXValidationOptionsParserTest')
-data.setCell(38, 3, 19);
-data.setCell(39, 0, 39)
-data.setCell(39, 1, 'secretBase64')
-data.setCell(39, 2, 'org.opensaml.spring.credential.BasicInlineParserTest')
-data.setCell(39, 3, 17);
-data.setCell(40, 0, 40)
-data.setCell(40, 1, 'secretHex')
-data.setCell(40, 2, 'org.opensaml.spring.credential.BasicInlineParserTest')
-data.setCell(40, 3, 15);
-data.setCell(41, 0, 41)
-data.setCell(41, 1, 'defaults')
-data.setCell(41, 2, 'org.opensaml.spring.trust.StaticPKIXFactoryBeanTest')
-data.setCell(41, 3, 15);
-data.setCell(42, 0, 42)
-data.setCell(42, 1, 'certOnly')
-data.setCell(42, 2, 'org.opensaml.spring.credential.X509FilesystemParserTest')
-data.setCell(42, 3, 13);
+data.setCell(7, 1, 'defaults')
+data.setCell(7, 2, 'org.opensaml.spring.trust.StaticPKIXFactoryBeanTest')
+data.setCell(7, 3, 36);
 window.suiteTableData['Default_suite']= { tableData: data, tableDiv: 'times-div-Default_suite'}
 return data;
 }
               </script>
-              <span class="suite-total-time">Total running time: 2 seconds</span>
+              <span class="suite-total-time">Total running time: 1 seconds</span>
               <div id="times-div-Default_suite">
               </div> <!-- times-div-Default_suite -->
             </div> <!-- times-div -->
@@ -1019,102 +357,11 @@ return data;
         </div> <!-- panel -->
         <div panel-name="ignored-methods-Default_suite" class="panel">
           <div class="main-panel-header rounded-window-top">
-            <span class="header-content">14 ignored methods</span>
+            <span class="header-content">1 ignored method</span>
           </div> <!-- main-panel-header rounded-window-top -->
           <div class="main-panel-content rounded-window-bottom">
             <div class="ignored-class-div">
-              <span class="ignored-class-name">org.opensaml.spring.trust.StaticExplicitKeySignatureParserTest</span>
-              <div class="ignored-methods-div">
-                <span class="ignored-method-name">setupDirs</span>
-                <br/>
-              </div> <!-- ignored-methods-div -->
-            </div> <!-- ignored-class-div -->
-            <div class="ignored-class-div">
-              <span class="ignored-class-name">org.opensaml.spring.trust.ChainingTrustEngineTest</span>
-              <div class="ignored-methods-div">
-                <span class="ignored-method-name">setupDirs</span>
-                <br/>
-              </div> <!-- ignored-methods-div -->
-            </div> <!-- ignored-class-div -->
-            <div class="ignored-class-div">
-              <span class="ignored-class-name">org.opensaml.spring.trust.PKIXValidationOptionsParserTest</span>
-              <div class="ignored-methods-div">
-                <span class="ignored-method-name">setupDirs</span>
-                <br/>
-              </div> <!-- ignored-methods-div -->
-            </div> <!-- ignored-class-div -->
-            <div class="ignored-class-div">
-              <span class="ignored-class-name">org.opensaml.spring.trust.StaticPKIXX509CredentialParserTest</span>
-              <div class="ignored-methods-div">
-                <span class="ignored-method-name">setupDirs</span>
-                <br/>
-              </div> <!-- ignored-methods-div -->
-            </div> <!-- ignored-class-div -->
-            <div class="ignored-class-div">
-              <span class="ignored-class-name">org.opensaml.spring.credential.X509InlineParserTest</span>
-              <div class="ignored-methods-div">
-                <span class="ignored-method-name">setupDirs</span>
-                <br/>
-              </div> <!-- ignored-methods-div -->
-            </div> <!-- ignored-class-div -->
-            <div class="ignored-class-div">
-              <span class="ignored-class-name">org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest</span>
-              <div class="ignored-methods-div">
-                <span class="ignored-method-name">setupDirs</span>
-                <br/>
-              </div> <!-- ignored-methods-div -->
-            </div> <!-- ignored-class-div -->
-            <div class="ignored-class-div">
-              <span class="ignored-class-name">org.opensaml.spring.trust.PKIXInlineParserTest</span>
-              <div class="ignored-methods-div">
-                <span class="ignored-method-name">setupDirs</span>
-                <br/>
-              </div> <!-- ignored-methods-div -->
-            </div> <!-- ignored-class-div -->
-            <div class="ignored-class-div">
-              <span class="ignored-class-name">org.opensaml.spring.trust.PKIXFilesystemParserTest</span>
-              <div class="ignored-methods-div">
-                <span class="ignored-method-name">setupDirs</span>
-                <br/>
-              </div> <!-- ignored-methods-div -->
-            </div> <!-- ignored-class-div -->
-            <div class="ignored-class-div">
-              <span class="ignored-class-name">org.opensaml.spring.trust.StaticExplicitKeyParserTest</span>
-              <div class="ignored-methods-div">
-                <span class="ignored-method-name">setupDirs</span>
-                <br/>
-              </div> <!-- ignored-methods-div -->
-            </div> <!-- ignored-class-div -->
-            <div class="ignored-class-div">
-              <span class="ignored-class-name">org.opensaml.spring.credential.BasicInlineParserTest</span>
-              <div class="ignored-methods-div">
-                <span class="ignored-method-name">setupDirs</span>
-                <br/>
-              </div> <!-- ignored-methods-div -->
-            </div> <!-- ignored-class-div -->
-            <div class="ignored-class-div">
-              <span class="ignored-class-name">org.opensaml.spring.trust.StaticPKIXSignatureParserTest</span>
-              <div class="ignored-methods-div">
-                <span class="ignored-method-name">setupDirs</span>
-                <br/>
-              </div> <!-- ignored-methods-div -->
-            </div> <!-- ignored-class-div -->
-            <div class="ignored-class-div">
-              <span class="ignored-class-name">org.opensaml.spring.trust.SignatureChainingParserTest</span>
-              <div class="ignored-methods-div">
-                <span class="ignored-method-name">setupDirs</span>
-                <br/>
-              </div> <!-- ignored-methods-div -->
-            </div> <!-- ignored-class-div -->
-            <div class="ignored-class-div">
-              <span class="ignored-class-name">org.opensaml.spring.AbstractSecurityParserTest</span>
-              <div class="ignored-methods-div">
-                <span class="ignored-method-name">setupDirs</span>
-                <br/>
-              </div> <!-- ignored-methods-div -->
-            </div> <!-- ignored-class-div -->
-            <div class="ignored-class-div">
-              <span class="ignored-class-name">org.opensaml.spring.credential.X509FilesystemParserTest</span>
+              <span class="ignored-class-name">org.opensaml.spring.trust.AbstractSecurityTest</span>
               <div class="ignored-methods-div">
                 <span class="ignored-method-name">setupDirs</span>
                 <br/>
@@ -1128,384 +375,65 @@ return data;
           </div> <!-- main-panel-header rounded-window-top -->
           <div class="main-panel-content rounded-window-bottom">
             <div class="chronological-class">
-              <div class="chronological-class-name">org.opensaml.spring.credential.BasicResourceParserTest</div> <!-- chronological-class-name -->
+              <div class="chronological-class-name">org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest</div> <!-- chronological-class-name -->
               <div class="configuration-suite before">
                 <span class="method-name">setupDirs</span>
                 <span class="method-start">0 ms</span>
               </div> <!-- configuration-suite before -->
-              <div class="test-method">
-                <span class="method-name">publicOnly</span>
-                <span class="method-start">63 ms</span>
-              </div> <!-- test-method -->
-              <div class="configuration-method after">
-                <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">707 ms</span>
-              </div> <!-- configuration-method after -->
-              <div class="test-method">
-                <span class="method-name">publicPrivate</span>
-                <span class="method-start">717 ms</span>
-              </div> <!-- test-method -->
-              <div class="configuration-method after">
-                <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">833 ms</span>
-              </div> <!-- configuration-method after -->
-              <div class="test-method">
-                <span class="method-name">secretBase64</span>
-                <span class="method-start">835 ms</span>
-              </div> <!-- test-method -->
-              <div class="configuration-method after">
-                <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">885 ms</span>
-              </div> <!-- configuration-method after -->
-              <div class="test-method">
-                <span class="method-name">secretBinary</span>
-                <span class="method-start">887 ms</span>
-              </div> <!-- test-method -->
-              <div class="configuration-method after">
-                <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">946 ms</span>
-              </div> <!-- configuration-method after -->
-              <div class="test-method">
-                <span class="method-name">secretHex</span>
-                <span class="method-start">947 ms</span>
-              </div> <!-- test-method -->
-              <div class="configuration-method after">
-                <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">977 ms</span>
-              </div> <!-- configuration-method after -->
-              <div class="test-method">
-                <span class="method-name">wrongCert</span>
-                <span class="method-start">979 ms</span>
-              </div> <!-- test-method -->
-              <div class="configuration-method after">
-                <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">1053 ms</span>
-              </div> <!-- configuration-method after -->
-            </div> <!-- chronological-class -->
-            <div class="chronological-class">
-              <div class="chronological-class-name">org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest</div> <!-- chronological-class-name -->
               <div class="test-method">
                 <span class="method-name">mixed</span>
-                <span class="method-start">1059 ms</span>
+                <span class="method-start">52 ms</span>
               </div> <!-- test-method -->
               <div class="configuration-method after">
                 <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">1186 ms</span>
+                <span class="method-start">758 ms</span>
               </div> <!-- configuration-method after -->
               <div class="test-method">
                 <span class="method-name">multipleCert</span>
-                <span class="method-start">1189 ms</span>
+                <span class="method-start">762 ms</span>
               </div> <!-- test-method -->
               <div class="configuration-method after">
                 <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">1243 ms</span>
+                <span class="method-start">859 ms</span>
               </div> <!-- configuration-method after -->
               <div class="test-method">
                 <span class="method-name">singleCert</span>
-                <span class="method-start">1244 ms</span>
-              </div> <!-- test-method -->
-              <div class="test-method">
-                <span class="method-name">singleKey</span>
-                <span class="method-start">1309 ms</span>
-              </div> <!-- test-method -->
-              <div class="configuration-method after">
-                <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">1309 ms</span>
-              </div> <!-- configuration-method after -->
-              <div class="configuration-method after">
-                <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">1365 ms</span>
-              </div> <!-- configuration-method after -->
-            </div> <!-- chronological-class -->
-            <div class="chronological-class">
-              <div class="chronological-class-name">org.opensaml.spring.trust.StaticExplicitKeyParserTest</div> <!-- chronological-class-name -->
-              <div class="test-method">
-                <span class="method-name">simple</span>
-                <span class="method-start">1366 ms</span>
-              </div> <!-- test-method -->
-              <div class="configuration-method after">
-                <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">1434 ms</span>
-              </div> <!-- configuration-method after -->
-            </div> <!-- chronological-class -->
-            <div class="chronological-class">
-              <div class="chronological-class-name">org.opensaml.spring.trust.StaticExplicitKeySignatureParserTest</div> <!-- chronological-class-name -->
-              <div class="test-method">
-                <span class="method-name">simple</span>
-                <span class="method-start">1438 ms</span>
-              </div> <!-- test-method -->
-              <div class="configuration-method after">
-                <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">1483 ms</span>
-              </div> <!-- configuration-method after -->
-            </div> <!-- chronological-class -->
-            <div class="chronological-class">
-              <div class="chronological-class-name">org.opensaml.spring.trust.PKIXValidationOptionsParserTest</div> <!-- chronological-class-name -->
-              <div class="test-method">
-                <span class="method-name">complex</span>
-                <span class="method-start">1484 ms</span>
-              </div> <!-- test-method -->
-              <div class="configuration-method after">
-                <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">1514 ms</span>
-              </div> <!-- configuration-method after -->
-              <div class="test-method">
-                <span class="method-name">simple</span>
-                <span class="method-start">1515 ms</span>
-              </div> <!-- test-method -->
-              <div class="configuration-method after">
-                <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">1537 ms</span>
-              </div> <!-- configuration-method after -->
-            </div> <!-- chronological-class -->
-            <div class="chronological-class">
-              <div class="chronological-class-name">org.opensaml.spring.trust.PKIXFilesystemParserTest</div> <!-- chronological-class-name -->
-              <div class="test-method">
-                <span class="method-name">complex</span>
-                <span class="method-start">1537 ms</span>
-              </div> <!-- test-method -->
-              <div class="configuration-method after">
-                <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">1586 ms</span>
-              </div> <!-- configuration-method after -->
-              <div class="test-method">
-                <span class="method-name">simple</span>
-                <span class="method-start">1587 ms</span>
-              </div> <!-- test-method -->
-              <div class="configuration-method after">
-                <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">1611 ms</span>
-              </div> <!-- configuration-method after -->
-            </div> <!-- chronological-class -->
-            <div class="chronological-class">
-              <div class="chronological-class-name">org.opensaml.spring.credential.X509FilesystemParserTest</div> <!-- chronological-class-name -->
-              <div class="test-method">
-                <span class="method-name">certElementsKeyNames</span>
-                <span class="method-start">1612 ms</span>
-              </div> <!-- test-method -->
-              <div class="configuration-method after">
-                <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">1641 ms</span>
-              </div> <!-- configuration-method after -->
-              <div class="test-method">
-                <span class="method-name">certKeyCrl</span>
-                <span class="method-start">1642 ms</span>
-              </div> <!-- test-method -->
-              <div class="test-method">
-                <span class="method-name">certOnly</span>
-                <span class="method-start">1690 ms</span>
+                <span class="method-start">860 ms</span>
               </div> <!-- test-method -->
               <div class="configuration-method after">
                 <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">1690 ms</span>
+                <span class="method-start">935 ms</span>
               </div> <!-- configuration-method after -->
-              <div class="configuration-method after">
-                <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">1703 ms</span>
-              </div> <!-- configuration-method after -->
-              <div class="test-method">
-                <span class="method-name">twoCert</span>
-                <span class="method-start">1704 ms</span>
-              </div> <!-- test-method -->
-              <div class="configuration-method after">
-                <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">1771 ms</span>
-              </div> <!-- configuration-method after -->
-              <div class="test-method">
-                <span class="method-name">wrongCert</span>
-                <span class="method-start">1775 ms</span>
-              </div> <!-- test-method -->
-              <div class="configuration-method after">
-                <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">1845 ms</span>
-              </div> <!-- configuration-method after -->
-            </div> <!-- chronological-class -->
-            <div class="chronological-class">
-              <div class="chronological-class-name">org.opensaml.spring.credential.X509InlineParserTest</div> <!-- chronological-class-name -->
               <div class="test-method">
-                <span class="method-name">certKeyCrl</span>
-                <span class="method-start">1847 ms</span>
-              </div> <!-- test-method -->
-              <div class="configuration-method after">
-                <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">1897 ms</span>
-              </div> <!-- configuration-method after -->
-              <div class="test-method">
-                <span class="method-name">certOnly</span>
-                <span class="method-start">1898 ms</span>
-              </div> <!-- test-method -->
-              <div class="configuration-method after">
-                <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">1928 ms</span>
-              </div> <!-- configuration-method after -->
-              <div class="test-method">
-                <span class="method-name">wrongCert</span>
-                <span class="method-start">1931 ms</span>
-              </div> <!-- test-method -->
-              <div class="configuration-method after">
-                <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">1965 ms</span>
-              </div> <!-- configuration-method after -->
-            </div> <!-- chronological-class -->
-            <div class="chronological-class">
-              <div class="chronological-class-name">org.opensaml.spring.trust.ChainingTrustEngineTest</div> <!-- chronological-class-name -->
-              <div class="test-method">
-                <span class="method-name">one</span>
-                <span class="method-start">1966 ms</span>
-              </div> <!-- test-method -->
-              <div class="configuration-method after">
-                <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">2026 ms</span>
-              </div> <!-- configuration-method after -->
-              <div class="test-method">
-                <span class="method-name">two</span>
-                <span class="method-start">2030 ms</span>
-              </div> <!-- test-method -->
-              <div class="configuration-method after">
-                <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">2070 ms</span>
-              </div> <!-- configuration-method after -->
-            </div> <!-- chronological-class -->
-            <div class="chronological-class">
-              <div class="chronological-class-name">org.opensaml.spring.trust.StaticPKIXX509CredentialParserTest</div> <!-- chronological-class-name -->
-              <div class="test-method">
-                <span class="method-name">certPath</span>
-                <span class="method-start">2077 ms</span>
-              </div> <!-- test-method -->
-              <div class="configuration-method after">
-                <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">2146 ms</span>
-              </div> <!-- configuration-method after -->
-              <div class="test-method">
-                <span class="method-name">nameCheckDisabled</span>
-                <span class="method-start">2147 ms</span>
+                <span class="method-name">singleKey</span>
+                <span class="method-start">936 ms</span>
               </div> <!-- test-method -->
               <div class="configuration-method after">
                 <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">2183 ms</span>
+                <span class="method-start">996 ms</span>
               </div> <!-- configuration-method after -->
             </div> <!-- chronological-class -->
             <div class="chronological-class">
               <div class="chronological-class-name">org.opensaml.spring.trust.StaticPKIXFactoryBeanTest</div> <!-- chronological-class-name -->
               <div class="test-method">
                 <span class="method-name">customPropertiesFailsValidation</span>
-                <span class="method-start">2184 ms</span>
+                <span class="method-start">1001 ms</span>
               </div> <!-- test-method -->
               <div class="test-method">
                 <span class="method-name">customPropertiesSuccess</span>
-                <span class="method-start">2237 ms</span>
+                <span class="method-start">1098 ms</span>
               </div> <!-- test-method -->
               <div class="test-method">
                 <span class="method-name">defaults</span>
-                <span class="method-start">2263 ms</span>
+                <span class="method-start">1153 ms</span>
               </div> <!-- test-method -->
             </div> <!-- chronological-class -->
-            <div class="chronological-class">
-              <div class="chronological-class-name">org.opensaml.spring.trust.SignatureChainingParserTest</div> <!-- chronological-class-name -->
-              <div class="test-method">
-                <span class="method-name">simple</span>
-                <span class="method-start">2280 ms</span>
-              </div> <!-- test-method -->
-              <div class="configuration-method after">
-                <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">2317 ms</span>
-              </div> <!-- configuration-method after -->
-            </div> <!-- chronological-class -->
-            <div class="chronological-class">
-              <div class="chronological-class-name">org.opensaml.spring.credential.BasicInlineParserTest</div> <!-- chronological-class-name -->
-              <div class="test-method">
-                <span class="method-name">publicOnly</span>
-                <span class="method-start">2318 ms</span>
-              </div> <!-- test-method -->
-              <div class="configuration-method after">
-                <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">2340 ms</span>
-              </div> <!-- configuration-method after -->
-              <div class="test-method">
-                <span class="method-name">publicPrivate</span>
-                <span class="method-start">2341 ms</span>
-              </div> <!-- test-method -->
-              <div class="test-method">
-                <span class="method-name">secretBase64</span>
-                <span class="method-start">2378 ms</span>
-              </div> <!-- test-method -->
-              <div class="configuration-method after">
-                <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">2378 ms</span>
-              </div> <!-- configuration-method after -->
-              <div class="configuration-method after">
-                <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">2396 ms</span>
-              </div> <!-- configuration-method after -->
-              <div class="test-method">
-                <span class="method-name">secretHex</span>
-                <span class="method-start">2399 ms</span>
-              </div> <!-- test-method -->
-              <div class="configuration-method after">
-                <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">2415 ms</span>
-              </div> <!-- configuration-method after -->
-            </div> <!-- chronological-class -->
             <div class="chronological-class">
               <div class="chronological-class-name">org.opensaml.spring.credential.BasicX509CredentialFactoryBeanTest</div> <!-- chronological-class-name -->
               <div class="test-method">
                 <span class="method-name">bean</span>
-                <span class="method-start">2416 ms</span>
-              </div> <!-- test-method -->
-            </div> <!-- chronological-class -->
-            <div class="chronological-class">
-              <div class="chronological-class-name">org.opensaml.spring.trust.PKIXInlineParserTest</div> <!-- chronological-class-name -->
-              <div class="test-method">
-                <span class="method-name">complex</span>
-                <span class="method-start">2494 ms</span>
-              </div> <!-- test-method -->
-              <div class="configuration-method after">
-                <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">2516 ms</span>
-              </div> <!-- configuration-method after -->
-              <div class="test-method">
-                <span class="method-name">simple</span>
-                <span class="method-start">2518 ms</span>
-              </div> <!-- test-method -->
-              <div class="configuration-method after">
-                <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">2540 ms</span>
-              </div> <!-- configuration-method after -->
-            </div> <!-- chronological-class -->
-            <div class="chronological-class">
-              <div class="chronological-class-name">org.opensaml.spring.trust.StaticPKIXSignatureParserTest</div> <!-- chronological-class-name -->
-              <div class="test-method">
-                <span class="method-name">certPath</span>
-                <span class="method-start">2541 ms</span>
-              </div> <!-- test-method -->
-              <div class="test-method">
-                <span class="method-name">nameCheckDisabled</span>
-                <span class="method-start">2562 ms</span>
-              </div> <!-- test-method -->
-              <div class="configuration-method after">
-                <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">2562 ms</span>
-              </div> <!-- configuration-method after -->
-              <div class="configuration-method after">
-                <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">2585 ms</span>
-              </div> <!-- configuration-method after -->
-              <div class="test-method">
-                <span class="method-name">simple</span>
-                <span class="method-start">2586 ms</span>
-              </div> <!-- test-method -->
-              <div class="configuration-method after">
-                <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">2607 ms</span>
-              </div> <!-- configuration-method after -->
-              <div class="test-method">
-                <span class="method-name">values</span>
-                <span class="method-start">2608 ms</span>
+                <span class="method-start">1192 ms</span>
               </div> <!-- test-method -->
-              <div class="configuration-method after">
-                <span class="method-name">tearDownTestContext</span>
-                <span class="method-start">2654 ms</span>
-              </div> <!-- configuration-method after -->
           </div> <!-- main-panel-content rounded-window-bottom -->
         </div> <!-- panel -->
       </div> <!-- main-panel-root -->
diff --git a/opensaml-spring/test-output/junitreports/TEST-org.opensaml.spring.credential.BasicX509CredentialFactoryBeanTest.xml b/opensaml-spring/test-output/junitreports/TEST-org.opensaml.spring.credential.BasicX509CredentialFactoryBeanTest.xml
index c6aef4d0a..d787ae22e 100644
--- a/opensaml-spring/test-output/junitreports/TEST-org.opensaml.spring.credential.BasicX509CredentialFactoryBeanTest.xml
+++ b/opensaml-spring/test-output/junitreports/TEST-org.opensaml.spring.credential.BasicX509CredentialFactoryBeanTest.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- Generated by org.testng.reporters.JUnitReportReporter -->
-<testsuite hostname="Silver-Machine.local" failures="0" tests="1" name="org.opensaml.spring.credential.BasicX509CredentialFactoryBeanTest" time="0.073" errors="0" timestamp="2022-06-08T10:36:17 EDT" skipped="0">
-  <testcase classname="org.opensaml.spring.credential.BasicX509CredentialFactoryBeanTest" name="bean" time="0.073"/>
+<testsuite hostname="Silver-Machine.attlocal.net" failures="0" tests="1" name="org.opensaml.spring.credential.BasicX509CredentialFactoryBeanTest" time="0.152" errors="0" timestamp="2022-07-01T14:26:56 EDT" skipped="0">
+  <testcase classname="org.opensaml.spring.credential.BasicX509CredentialFactoryBeanTest" name="bean" time="0.152"/>
   <system-out/>
 </testsuite> <!-- org.opensaml.spring.credential.BasicX509CredentialFactoryBeanTest -->
diff --git a/opensaml-spring/test-output/junitreports/TEST-org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest.xml b/opensaml-spring/test-output/junitreports/TEST-org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest.xml
index 12ea0d553..7ce0697a6 100644
--- a/opensaml-spring/test-output/junitreports/TEST-org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest.xml
+++ b/opensaml-spring/test-output/junitreports/TEST-org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest.xml
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- Generated by org.testng.reporters.JUnitReportReporter -->
-<testsuite hostname="Silver-Machine.local" failures="0" tests="4" name="org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest" time="0.296" errors="0" timestamp="2022-06-08T10:36:17 EDT" skipped="0">
-  <testcase classname="org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest" name="mixed" time="0.127"/>
+<testsuite hostname="Silver-Machine.attlocal.net" failures="0" tests="4" name="org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest" time="0.928" errors="0" timestamp="2022-07-01T14:26:56 EDT" skipped="0">
+  <testcase classname="org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest" name="singleCert" time="0.072"/>
   <system-out/>
-  <testcase classname="org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest" name="singleCert" time="0.062"/>
+  <testcase classname="org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest" name="singleKey" time="0.062"/>
   <system-out/>
-  <testcase classname="org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest" name="singleKey" time="0.055"/>
+  <testcase classname="org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest" name="mixed" time="0.703"/>
   <system-out/>
-  <testcase classname="org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest" name="multipleCert" time="0.052"/>
+  <testcase classname="org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest" name="multipleCert" time="0.091"/>
   <system-out/>
 </testsuite> <!-- org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest -->
diff --git a/opensaml-spring/test-output/junitreports/TEST-org.opensaml.spring.trust.StaticPKIXFactoryBeanTest.xml b/opensaml-spring/test-output/junitreports/TEST-org.opensaml.spring.trust.StaticPKIXFactoryBeanTest.xml
index e6284e842..72a928d00 100644
--- a/opensaml-spring/test-output/junitreports/TEST-org.opensaml.spring.trust.StaticPKIXFactoryBeanTest.xml
+++ b/opensaml-spring/test-output/junitreports/TEST-org.opensaml.spring.trust.StaticPKIXFactoryBeanTest.xml
@@ -1,10 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- Generated by org.testng.reporters.JUnitReportReporter -->
-<testsuite hostname="Silver-Machine.local" failures="0" tests="3" name="org.opensaml.spring.trust.StaticPKIXFactoryBeanTest" time="0.091" errors="0" timestamp="2022-06-08T10:36:17 EDT" skipped="0">
-  <testcase classname="org.opensaml.spring.trust.StaticPKIXFactoryBeanTest" name="customPropertiesFailsValidation" time="0.051"/>
+<testsuite hostname="Silver-Machine.attlocal.net" failures="0" tests="3" name="org.opensaml.spring.trust.StaticPKIXFactoryBeanTest" time="0.176" errors="0" timestamp="2022-07-01T14:26:56 EDT" skipped="0">
+  <testcase classname="org.opensaml.spring.trust.StaticPKIXFactoryBeanTest" name="customPropertiesSuccess" time="0.050"/>
   <system-out/>
-  <testcase classname="org.opensaml.spring.trust.StaticPKIXFactoryBeanTest" name="customPropertiesSuccess" time="0.025"/>
+  <testcase classname="org.opensaml.spring.trust.StaticPKIXFactoryBeanTest" name="defaults" time="0.036"/>
   <system-out/>
-  <testcase classname="org.opensaml.spring.trust.StaticPKIXFactoryBeanTest" name="defaults" time="0.015"/>
+  <testcase classname="org.opensaml.spring.trust.StaticPKIXFactoryBeanTest" name="customPropertiesFailsValidation" time="0.090"/>
   <system-out/>
 </testsuite> <!-- org.opensaml.spring.trust.StaticPKIXFactoryBeanTest -->
diff --git a/opensaml-spring/test-output/old/Default suite/classes.html b/opensaml-spring/test-output/old/Default suite/classes.html
index 5bc32a8d7..ad1eca38c 100644
--- a/opensaml-spring/test-output/old/Default suite/classes.html	
+++ b/opensaml-spring/test-output/old/Default suite/classes.html	
@@ -4,34 +4,22 @@
 <th>Method name</th>
 <th>Groups</th>
 </tr><tr>
-<td>org.opensaml.spring.credential.BasicResourceParserTest</td>
+<td>org.opensaml.spring.trust.StaticPKIXFactoryBeanTest</td>
 <td> </td><td> </td></tr>
 <tr>
 <td align='center' colspan='3'>@Test</td>
 </tr>
 <tr>
 <td> </td>
-<td>secretHex</td>
-<td> </td></tr>
-<tr>
-<td> </td>
-<td>secretBase64</td>
-<td> </td></tr>
-<tr>
-<td> </td>
-<td>publicPrivate</td>
-<td> </td></tr>
-<tr>
-<td> </td>
-<td>publicOnly</td>
+<td>customPropertiesSuccess</td>
 <td> </td></tr>
 <tr>
 <td> </td>
-<td>wrongCert</td>
+<td>defaults</td>
 <td> </td></tr>
 <tr>
 <td> </td>
-<td>secretBinary</td>
+<td>customPropertiesFailsValidation</td>
 <td> </td></tr>
 <tr>
 <td align='center' colspan='3'>@BeforeClass</td>
@@ -43,10 +31,6 @@
 <td align='center' colspan='3'>@AfterMethod</td>
 </tr>
 <tr>
-<td> </td>
-<td>tearDownTestContext</td>
-<td> </td></tr>
-<tr>
 <td align='center' colspan='3'>@AfterClass</td>
 </tr>
 <tr>
@@ -88,348 +72,6 @@
 <td align='center' colspan='3'>@AfterClass</td>
 </tr>
 <tr>
-<td>org.opensaml.spring.trust.StaticExplicitKeyParserTest</td>
-<td> </td><td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@Test</td>
-</tr>
-<tr>
-<td> </td>
-<td>simple</td>
-<td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@BeforeClass</td>
-</tr>
-<tr>
-<td align='center' colspan='3'>@BeforeMethod</td>
-</tr>
-<tr>
-<td align='center' colspan='3'>@AfterMethod</td>
-</tr>
-<tr>
-<td> </td>
-<td>tearDownTestContext</td>
-<td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@AfterClass</td>
-</tr>
-<tr>
-<td>org.opensaml.spring.trust.StaticExplicitKeySignatureParserTest</td>
-<td> </td><td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@Test</td>
-</tr>
-<tr>
-<td> </td>
-<td>simple</td>
-<td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@BeforeClass</td>
-</tr>
-<tr>
-<td align='center' colspan='3'>@BeforeMethod</td>
-</tr>
-<tr>
-<td align='center' colspan='3'>@AfterMethod</td>
-</tr>
-<tr>
-<td> </td>
-<td>tearDownTestContext</td>
-<td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@AfterClass</td>
-</tr>
-<tr>
-<td>org.opensaml.spring.trust.PKIXValidationOptionsParserTest</td>
-<td> </td><td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@Test</td>
-</tr>
-<tr>
-<td> </td>
-<td>complex</td>
-<td> </td></tr>
-<tr>
-<td> </td>
-<td>simple</td>
-<td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@BeforeClass</td>
-</tr>
-<tr>
-<td align='center' colspan='3'>@BeforeMethod</td>
-</tr>
-<tr>
-<td align='center' colspan='3'>@AfterMethod</td>
-</tr>
-<tr>
-<td> </td>
-<td>tearDownTestContext</td>
-<td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@AfterClass</td>
-</tr>
-<tr>
-<td>org.opensaml.spring.trust.PKIXFilesystemParserTest</td>
-<td> </td><td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@Test</td>
-</tr>
-<tr>
-<td> </td>
-<td>complex</td>
-<td> </td></tr>
-<tr>
-<td> </td>
-<td>simple</td>
-<td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@BeforeClass</td>
-</tr>
-<tr>
-<td align='center' colspan='3'>@BeforeMethod</td>
-</tr>
-<tr>
-<td align='center' colspan='3'>@AfterMethod</td>
-</tr>
-<tr>
-<td> </td>
-<td>tearDownTestContext</td>
-<td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@AfterClass</td>
-</tr>
-<tr>
-<td>org.opensaml.spring.credential.X509FilesystemParserTest</td>
-<td> </td><td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@Test</td>
-</tr>
-<tr>
-<td> </td>
-<td>certKeyCrl</td>
-<td> </td></tr>
-<tr>
-<td> </td>
-<td>wrongCert</td>
-<td> </td></tr>
-<tr>
-<td> </td>
-<td>certOnly</td>
-<td> </td></tr>
-<tr>
-<td> </td>
-<td>certElementsKeyNames</td>
-<td> </td></tr>
-<tr>
-<td> </td>
-<td>twoCert</td>
-<td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@BeforeClass</td>
-</tr>
-<tr>
-<td align='center' colspan='3'>@BeforeMethod</td>
-</tr>
-<tr>
-<td align='center' colspan='3'>@AfterMethod</td>
-</tr>
-<tr>
-<td> </td>
-<td>tearDownTestContext</td>
-<td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@AfterClass</td>
-</tr>
-<tr>
-<td>org.opensaml.spring.credential.X509InlineParserTest</td>
-<td> </td><td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@Test</td>
-</tr>
-<tr>
-<td> </td>
-<td>certKeyCrl</td>
-<td> </td></tr>
-<tr>
-<td> </td>
-<td>wrongCert</td>
-<td> </td></tr>
-<tr>
-<td> </td>
-<td>certOnly</td>
-<td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@BeforeClass</td>
-</tr>
-<tr>
-<td align='center' colspan='3'>@BeforeMethod</td>
-</tr>
-<tr>
-<td align='center' colspan='3'>@AfterMethod</td>
-</tr>
-<tr>
-<td> </td>
-<td>tearDownTestContext</td>
-<td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@AfterClass</td>
-</tr>
-<tr>
-<td>org.opensaml.spring.trust.ChainingTrustEngineTest</td>
-<td> </td><td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@Test</td>
-</tr>
-<tr>
-<td> </td>
-<td>one</td>
-<td> </td></tr>
-<tr>
-<td> </td>
-<td>two</td>
-<td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@BeforeClass</td>
-</tr>
-<tr>
-<td align='center' colspan='3'>@BeforeMethod</td>
-</tr>
-<tr>
-<td align='center' colspan='3'>@AfterMethod</td>
-</tr>
-<tr>
-<td> </td>
-<td>tearDownTestContext</td>
-<td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@AfterClass</td>
-</tr>
-<tr>
-<td>org.opensaml.spring.trust.StaticPKIXX509CredentialParserTest</td>
-<td> </td><td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@Test</td>
-</tr>
-<tr>
-<td> </td>
-<td>certPath</td>
-<td> </td></tr>
-<tr>
-<td> </td>
-<td>nameCheckDisabled</td>
-<td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@BeforeClass</td>
-</tr>
-<tr>
-<td align='center' colspan='3'>@BeforeMethod</td>
-</tr>
-<tr>
-<td align='center' colspan='3'>@AfterMethod</td>
-</tr>
-<tr>
-<td> </td>
-<td>tearDownTestContext</td>
-<td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@AfterClass</td>
-</tr>
-<tr>
-<td>org.opensaml.spring.trust.StaticPKIXFactoryBeanTest</td>
-<td> </td><td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@Test</td>
-</tr>
-<tr>
-<td> </td>
-<td>customPropertiesSuccess</td>
-<td> </td></tr>
-<tr>
-<td> </td>
-<td>defaults</td>
-<td> </td></tr>
-<tr>
-<td> </td>
-<td>customPropertiesFailsValidation</td>
-<td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@BeforeClass</td>
-</tr>
-<tr>
-<td align='center' colspan='3'>@BeforeMethod</td>
-</tr>
-<tr>
-<td align='center' colspan='3'>@AfterMethod</td>
-</tr>
-<tr>
-<td align='center' colspan='3'>@AfterClass</td>
-</tr>
-<tr>
-<td>org.opensaml.spring.trust.SignatureChainingParserTest</td>
-<td> </td><td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@Test</td>
-</tr>
-<tr>
-<td> </td>
-<td>simple</td>
-<td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@BeforeClass</td>
-</tr>
-<tr>
-<td align='center' colspan='3'>@BeforeMethod</td>
-</tr>
-<tr>
-<td align='center' colspan='3'>@AfterMethod</td>
-</tr>
-<tr>
-<td> </td>
-<td>tearDownTestContext</td>
-<td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@AfterClass</td>
-</tr>
-<tr>
-<td>org.opensaml.spring.credential.BasicInlineParserTest</td>
-<td> </td><td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@Test</td>
-</tr>
-<tr>
-<td> </td>
-<td>secretHex</td>
-<td> </td></tr>
-<tr>
-<td> </td>
-<td>secretBase64</td>
-<td> </td></tr>
-<tr>
-<td> </td>
-<td>publicPrivate</td>
-<td> </td></tr>
-<tr>
-<td> </td>
-<td>publicOnly</td>
-<td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@BeforeClass</td>
-</tr>
-<tr>
-<td align='center' colspan='3'>@BeforeMethod</td>
-</tr>
-<tr>
-<td align='center' colspan='3'>@AfterMethod</td>
-</tr>
-<tr>
-<td> </td>
-<td>tearDownTestContext</td>
-<td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@AfterClass</td>
-</tr>
-<tr>
 <td>org.opensaml.spring.credential.BasicX509CredentialFactoryBeanTest</td>
 <td> </td><td> </td></tr>
 <tr>
@@ -451,72 +93,4 @@
 <tr>
 <td align='center' colspan='3'>@AfterClass</td>
 </tr>
-<tr>
-<td>org.opensaml.spring.trust.PKIXInlineParserTest</td>
-<td> </td><td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@Test</td>
-</tr>
-<tr>
-<td> </td>
-<td>complex</td>
-<td> </td></tr>
-<tr>
-<td> </td>
-<td>simple</td>
-<td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@BeforeClass</td>
-</tr>
-<tr>
-<td align='center' colspan='3'>@BeforeMethod</td>
-</tr>
-<tr>
-<td align='center' colspan='3'>@AfterMethod</td>
-</tr>
-<tr>
-<td> </td>
-<td>tearDownTestContext</td>
-<td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@AfterClass</td>
-</tr>
-<tr>
-<td>org.opensaml.spring.trust.StaticPKIXSignatureParserTest</td>
-<td> </td><td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@Test</td>
-</tr>
-<tr>
-<td> </td>
-<td>certPath</td>
-<td> </td></tr>
-<tr>
-<td> </td>
-<td>values</td>
-<td> </td></tr>
-<tr>
-<td> </td>
-<td>nameCheckDisabled</td>
-<td> </td></tr>
-<tr>
-<td> </td>
-<td>simple</td>
-<td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@BeforeClass</td>
-</tr>
-<tr>
-<td align='center' colspan='3'>@BeforeMethod</td>
-</tr>
-<tr>
-<td align='center' colspan='3'>@AfterMethod</td>
-</tr>
-<tr>
-<td> </td>
-<td>tearDownTestContext</td>
-<td> </td></tr>
-<tr>
-<td align='center' colspan='3'>@AfterClass</td>
-</tr>
 </table>
diff --git a/opensaml-spring/test-output/old/Default suite/methods-alphabetical.html b/opensaml-spring/test-output/old/Default suite/methods-alphabetical.html
index d554b9445..7826db4fe 100644
--- a/opensaml-spring/test-output/old/Default suite/methods-alphabetical.html	
+++ b/opensaml-spring/test-output/old/Default suite/methods-alphabetical.html	
@@ -1,170 +1,30 @@
 <h2>Methods run, sorted chronologically</h2><h3>>> means before, << means after</h3><p/><br/><em>Default suite</em><p/><small><i>(Hover the method name to see the test class name)</i></small><p/>
 <table border="1">
 <tr><th>Time</th><th>Delta (ms)</th><th>Suite<br>configuration</th><th>Test<br>configuration</th><th>Class<br>configuration</th><th>Groups<br>configuration</th><th>Method<br>configuration</th><th>Test<br>method</th><th>Thread</th><th>Instances</th></tr>
-<tr bgcolor="6aecbc">  <td>22/06/08 10:36:16</td>   <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="BasicX509CredentialFactoryBeanTest.bean()[pri:0, instance:org.opensaml.spring.credential.BasicX509CredentialFactoryBeanTest at 29e495ff]">bean</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7fb3a0">  <td>22/06/08 10:36:16</td>   <td>-804</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="X509FilesystemParserTest.certElementsKeyNames()[pri:0, instance:org.opensaml.spring.credential.X509FilesystemParserTest at 72cde7cc]">certElementsKeyNames</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="71e976">  <td>22/06/08 10:36:16</td>   <td>-569</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="X509InlineParserTest.certKeyCrl()[pri:0, instance:org.opensaml.spring.credential.X509InlineParserTest at 5fd4f8f5]">certKeyCrl</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7fb3a0">  <td>22/06/08 10:36:16</td>   <td>-774</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="X509FilesystemParserTest.certKeyCrl()[pri:0, instance:org.opensaml.spring.credential.X509FilesystemParserTest at 72cde7cc]">certKeyCrl</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7fb3a0">  <td>22/06/08 10:36:16</td>   <td>-726</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="X509FilesystemParserTest.certOnly()[pri:0, instance:org.opensaml.spring.credential.X509FilesystemParserTest at 72cde7cc]">certOnly</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="71e976">  <td>22/06/08 10:36:16</td>   <td>-518</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="X509InlineParserTest.certOnly()[pri:0, instance:org.opensaml.spring.credential.X509InlineParserTest at 5fd4f8f5]">certOnly</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="707274">  <td>22/06/08 10:36:16</td>   <td>-339</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticPKIXX509CredentialParserTest.certPath()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXX509CredentialParserTest at 4e7912d8]">certPath</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="d4a5c2">  <td>22/06/08 10:36:16</td>   <td>125</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticPKIXSignatureParserTest.certPath()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXSignatureParserTest at 4944252c]">certPath</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="d296da">  <td>22/06/08 10:36:16</td>   <td>78</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="PKIXInlineParserTest.complex()[pri:0, instance:org.opensaml.spring.trust.PKIXInlineParserTest at 41e1e210]">complex</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="71beb3">  <td>22/06/08 10:36:15</td>   <td>-932</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="PKIXValidationOptionsParserTest.complex()[pri:0, instance:org.opensaml.spring.trust.PKIXValidationOptionsParserTest at 1eb5174b]">complex</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="999590">  <td>22/06/08 10:36:15</td>   <td>-879</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="PKIXFilesystemParserTest.complex()[pri:0, instance:org.opensaml.spring.trust.PKIXFilesystemParserTest at 67080771]">complex</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="c9d689">  <td>22/06/08 10:36:16</td>   <td>-232</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticPKIXFactoryBeanTest.customPropertiesFailsValidation()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXFactoryBeanTest at 53976f5c]">customPropertiesFailsValidation</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="c9d689">  <td>22/06/08 10:36:16</td>   <td>-179</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticPKIXFactoryBeanTest.customPropertiesSuccess()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXFactoryBeanTest at 53976f5c]">customPropertiesSuccess</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="c9d689">  <td>22/06/08 10:36:16</td>   <td>-153</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticPKIXFactoryBeanTest.defaults()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXFactoryBeanTest at 53976f5c]">defaults</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="9379b4">  <td>22/06/08 10:36:15</td>   <td>-1357</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticExplicitKeyFactoryBeanTest.mixed()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 11bd0f3b]">mixed</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="9379b4">  <td>22/06/08 10:36:15</td>   <td>-1227</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticExplicitKeyFactoryBeanTest.multipleCert()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 11bd0f3b]">multipleCert</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="d4a5c2">  <td>22/06/08 10:36:16</td>   <td>146</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticPKIXSignatureParserTest.nameCheckDisabled()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXSignatureParserTest at 4944252c]">nameCheckDisabled</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="707274">  <td>22/06/08 10:36:16</td>   <td>-269</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticPKIXX509CredentialParserTest.nameCheckDisabled()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXX509CredentialParserTest at 4e7912d8]">nameCheckDisabled</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="fc69bd">  <td>22/06/08 10:36:16</td>   <td>-450</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="ChainingTrustEngineTest.one()[pri:0, instance:org.opensaml.spring.trust.ChainingTrustEngineTest at 696da30b]">one</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="83b0a5">  <td>22/06/08 10:36:14</td>   <td>-2353</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="BasicResourceParserTest.publicOnly()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]">publicOnly</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7abbaa">  <td>22/06/08 10:36:16</td>   <td>-98</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="BasicInlineParserTest.publicOnly()[pri:0, instance:org.opensaml.spring.credential.BasicInlineParserTest at 2f8dad04]">publicOnly</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="83b0a5">  <td>22/06/08 10:36:15</td>   <td>-1699</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="BasicResourceParserTest.publicPrivate()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]">publicPrivate</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7abbaa">  <td>22/06/08 10:36:16</td>   <td>-75</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="BasicInlineParserTest.publicPrivate()[pri:0, instance:org.opensaml.spring.credential.BasicInlineParserTest at 2f8dad04]">publicPrivate</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="83b0a5">  <td>22/06/08 10:36:15</td>   <td>-1581</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="BasicResourceParserTest.secretBase64()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]">secretBase64</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7abbaa">  <td>22/06/08 10:36:16</td>   <td>-38</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="BasicInlineParserTest.secretBase64()[pri:0, instance:org.opensaml.spring.credential.BasicInlineParserTest at 2f8dad04]">secretBase64</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="83b0a5">  <td>22/06/08 10:36:15</td>   <td>-1529</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="BasicResourceParserTest.secretBinary()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]">secretBinary</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7abbaa">  <td>22/06/08 10:36:16</td>   <td>-17</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="BasicInlineParserTest.secretHex()[pri:0, instance:org.opensaml.spring.credential.BasicInlineParserTest at 2f8dad04]">secretHex</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="83b0a5">  <td>22/06/08 10:36:15</td>   <td>-1469</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="BasicResourceParserTest.secretHex()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]">secretHex</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:14</td>   <td>-2410</td> <td title=">>AbstractSecurityParserTest.setupDirs()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]">>>setupDirs</td> 
-<td> </td><td> </td><td> </td><td> </td><td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="d4a5c2">  <td>22/06/08 10:36:16</td>   <td>170</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticPKIXSignatureParserTest.simple()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXSignatureParserTest at 4944252c]">simple</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="c1bd8b">  <td>22/06/08 10:36:15</td>   <td>-1050</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticExplicitKeyParserTest.simple()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyParserTest at c333c60]">simple</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="71beb3">  <td>22/06/08 10:36:15</td>   <td>-901</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="PKIXValidationOptionsParserTest.simple()[pri:0, instance:org.opensaml.spring.trust.PKIXValidationOptionsParserTest at 1eb5174b]">simple</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="d296da">  <td>22/06/08 10:36:16</td>   <td>102</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="PKIXInlineParserTest.simple()[pri:0, instance:org.opensaml.spring.trust.PKIXInlineParserTest at 41e1e210]">simple</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="6e82ae">  <td>22/06/08 10:36:15</td>   <td>-978</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticExplicitKeySignatureParserTest.simple()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeySignatureParserTest at 79da8dc5]">simple</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="bf6da9">  <td>22/06/08 10:36:16</td>   <td>-136</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="SignatureChainingParserTest.simple()[pri:0, instance:org.opensaml.spring.trust.SignatureChainingParserTest at 2bfc268b]">simple</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="999590">  <td>22/06/08 10:36:16</td>   <td>-829</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="PKIXFilesystemParserTest.simple()[pri:0, instance:org.opensaml.spring.trust.PKIXFilesystemParserTest at 67080771]">simple</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="9379b4">  <td>22/06/08 10:36:15</td>   <td>-1172</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticExplicitKeyFactoryBeanTest.singleCert()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 11bd0f3b]">singleCert</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="9379b4">  <td>22/06/08 10:36:15</td>   <td>-1107</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticExplicitKeyFactoryBeanTest.singleKey()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 11bd0f3b]">singleKey</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>124</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.PKIXInlineParserTest at 41e1e210]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:15</td>   <td>-1362</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>-570</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.X509FilesystemParserTest at 72cde7cc]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:15</td>   <td>-879</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.PKIXValidationOptionsParserTest at 1eb5174b]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>-232</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXX509CredentialParserTest at 4e7912d8]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>-345</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.ChainingTrustEngineTest at 696da30b]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:15</td>   <td>-1051</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 11bd0f3b]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>-805</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.PKIXFilesystemParserTest at 67080771]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>-451</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.X509InlineParserTest at 5fd4f8f5]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>-451</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.X509InlineParserTest at 5fd4f8f5]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:15</td>   <td>-982</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyParserTest at c333c60]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:15</td>   <td>-1051</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 11bd0f3b]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>-805</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.PKIXFilesystemParserTest at 67080771]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:15</td>   <td>-1051</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 11bd0f3b]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:15</td>   <td>-1362</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>-570</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.X509FilesystemParserTest at 72cde7cc]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:15</td>   <td>-1362</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:15</td>   <td>-933</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeySignatureParserTest at 79da8dc5]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>124</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.PKIXInlineParserTest at 41e1e210]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:15</td>   <td>-1362</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:15</td>   <td>-1362</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:17</td>   <td>238</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXSignatureParserTest at 4944252c]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>-232</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXX509CredentialParserTest at 4e7912d8]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:17</td>   <td>238</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXSignatureParserTest at 4944252c]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>-99</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.SignatureChainingParserTest at 2bfc268b]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>0</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.BasicInlineParserTest at 2f8dad04]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>0</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.BasicInlineParserTest at 2f8dad04]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:17</td>   <td>238</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXSignatureParserTest at 4944252c]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:15</td>   <td>-879</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.PKIXValidationOptionsParserTest at 1eb5174b]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>-570</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.X509FilesystemParserTest at 72cde7cc]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>-570</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.X509FilesystemParserTest at 72cde7cc]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>-570</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.X509FilesystemParserTest at 72cde7cc]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>-345</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.ChainingTrustEngineTest at 696da30b]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>0</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.BasicInlineParserTest at 2f8dad04]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:15</td>   <td>-1051</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 11bd0f3b]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>0</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.BasicInlineParserTest at 2f8dad04]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:15</td>   <td>-1362</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>-451</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.X509InlineParserTest at 5fd4f8f5]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:17</td>   <td>238</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXSignatureParserTest at 4944252c]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="fc69bd">  <td>22/06/08 10:36:16</td>   <td>-386</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="ChainingTrustEngineTest.two()[pri:0, instance:org.opensaml.spring.trust.ChainingTrustEngineTest at 696da30b]">two</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7fb3a0">  <td>22/06/08 10:36:16</td>   <td>-712</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="X509FilesystemParserTest.twoCert()[pri:0, instance:org.opensaml.spring.credential.X509FilesystemParserTest at 72cde7cc]">twoCert</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="d4a5c2">  <td>22/06/08 10:36:17</td>   <td>192</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticPKIXSignatureParserTest.values()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXSignatureParserTest at 4944252c]">values</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="83b0a5">  <td>22/06/08 10:36:15</td>   <td>-1437</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="BasicResourceParserTest.wrongCert()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]">wrongCert</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7fb3a0">  <td>22/06/08 10:36:16</td>   <td>-641</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="X509FilesystemParserTest.wrongCert()[pri:0, instance:org.opensaml.spring.credential.X509FilesystemParserTest at 72cde7cc]">wrongCert</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="71e976">  <td>22/06/08 10:36:16</td>   <td>-485</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="X509InlineParserTest.wrongCert()[pri:0, instance:org.opensaml.spring.credential.X509InlineParserTest at 5fd4f8f5]">wrongCert</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
+<tr bgcolor="87b1af">  <td>22/07/01 14:26:56</td>   <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="BasicX509CredentialFactoryBeanTest.bean()[pri:0, instance:org.opensaml.spring.credential.BasicX509CredentialFactoryBeanTest at 505fc5a4]">bean</td> 
+  <td>main at 1704237553</td>   <td></td> </tr>
+<tr bgcolor="d9d18d">  <td>22/07/01 14:26:56</td>   <td>-191</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticPKIXFactoryBeanTest.customPropertiesFailsValidation()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXFactoryBeanTest at 3d6f0054]">customPropertiesFailsValidation</td> 
+  <td>main at 1704237553</td>   <td></td> </tr>
+<tr bgcolor="d9d18d">  <td>22/07/01 14:26:56</td>   <td>-94</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticPKIXFactoryBeanTest.customPropertiesSuccess()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXFactoryBeanTest at 3d6f0054]">customPropertiesSuccess</td> 
+  <td>main at 1704237553</td>   <td></td> </tr>
+<tr bgcolor="d9d18d">  <td>22/07/01 14:26:56</td>   <td>-39</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticPKIXFactoryBeanTest.defaults()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXFactoryBeanTest at 3d6f0054]">defaults</td> 
+  <td>main at 1704237553</td>   <td></td> </tr>
+<tr bgcolor="7caf88">  <td>22/07/01 14:26:55</td>   <td>-1140</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticExplicitKeyFactoryBeanTest.mixed()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 57d7f8ca]">mixed</td> 
+  <td>main at 1704237553</td>   <td></td> </tr>
+<tr bgcolor="7caf88">  <td>22/07/01 14:26:56</td>   <td>-430</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticExplicitKeyFactoryBeanTest.multipleCert()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 57d7f8ca]">multipleCert</td> 
+  <td>main at 1704237553</td>   <td></td> </tr>
+<tr bgcolor="ebc363">  <td>22/07/01 14:26:55</td>   <td>-1189</td> <td title=">>AbstractSecurityTest.setupDirs()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 57d7f8ca]">>>setupDirs</td> 
+<td> </td><td> </td><td> </td><td> </td><td> </td>  <td>main at 1704237553</td>   <td></td> </tr>
+<tr bgcolor="7caf88">  <td>22/07/01 14:26:56</td>   <td>-332</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticExplicitKeyFactoryBeanTest.singleCert()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 57d7f8ca]">singleCert</td> 
+  <td>main at 1704237553</td>   <td></td> </tr>
+<tr bgcolor="7caf88">  <td>22/07/01 14:26:56</td>   <td>-256</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticExplicitKeyFactoryBeanTest.singleKey()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 57d7f8ca]">singleKey</td> 
+  <td>main at 1704237553</td>   <td></td> </tr>
+<tr bgcolor="ebc363">  <td>22/07/01 14:26:56</td>   <td>-195</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 57d7f8ca]"><<tearDownTestContext</td> 
+<td> </td>  <td>main at 1704237553</td>   <td></td> </tr>
+<tr bgcolor="ebc363">  <td>22/07/01 14:26:56</td>   <td>-195</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 57d7f8ca]"><<tearDownTestContext</td> 
+<td> </td>  <td>main at 1704237553</td>   <td></td> </tr>
+<tr bgcolor="ebc363">  <td>22/07/01 14:26:56</td>   <td>-195</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 57d7f8ca]"><<tearDownTestContext</td> 
+<td> </td>  <td>main at 1704237553</td>   <td></td> </tr>
+<tr bgcolor="ebc363">  <td>22/07/01 14:26:56</td>   <td>-195</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 57d7f8ca]"><<tearDownTestContext</td> 
+<td> </td>  <td>main at 1704237553</td>   <td></td> </tr>
 </table>
diff --git a/opensaml-spring/test-output/old/Default suite/methods-not-run.html b/opensaml-spring/test-output/old/Default suite/methods-not-run.html
index bfa9dc58d..ddafee7d2 100644
--- a/opensaml-spring/test-output/old/Default suite/methods-not-run.html	
+++ b/opensaml-spring/test-output/old/Default suite/methods-not-run.html	
@@ -1,16 +1,3 @@
 <h2>Methods that were not run</h2><table>
-<tr><td>org.opensaml.spring.AbstractSecurityParserTest.setupDirs</td></tr>
-<tr><td>org.opensaml.spring.AbstractSecurityParserTest.setupDirs</td></tr>
-<tr><td>org.opensaml.spring.AbstractSecurityParserTest.setupDirs</td></tr>
-<tr><td>org.opensaml.spring.AbstractSecurityParserTest.setupDirs</td></tr>
-<tr><td>org.opensaml.spring.AbstractSecurityParserTest.setupDirs</td></tr>
-<tr><td>org.opensaml.spring.AbstractSecurityParserTest.setupDirs</td></tr>
-<tr><td>org.opensaml.spring.AbstractSecurityParserTest.setupDirs</td></tr>
-<tr><td>org.opensaml.spring.AbstractSecurityParserTest.setupDirs</td></tr>
-<tr><td>org.opensaml.spring.AbstractSecurityParserTest.setupDirs</td></tr>
-<tr><td>org.opensaml.spring.AbstractSecurityParserTest.setupDirs</td></tr>
-<tr><td>org.opensaml.spring.AbstractSecurityParserTest.setupDirs</td></tr>
-<tr><td>org.opensaml.spring.AbstractSecurityParserTest.setupDirs</td></tr>
-<tr><td>org.opensaml.spring.AbstractSecurityParserTest.setupDirs</td></tr>
-<tr><td>org.opensaml.spring.AbstractSecurityParserTest.setupDirs</td></tr>
+<tr><td>org.opensaml.spring.trust.AbstractSecurityTest.setupDirs</td></tr>
 </table>
\ No newline at end of file
diff --git a/opensaml-spring/test-output/old/Default suite/methods.html b/opensaml-spring/test-output/old/Default suite/methods.html
index b34b2f4e7..980aed29a 100644
--- a/opensaml-spring/test-output/old/Default suite/methods.html	
+++ b/opensaml-spring/test-output/old/Default suite/methods.html	
@@ -1,170 +1,30 @@
 <h2>Methods run, sorted chronologically</h2><h3>>> means before, << means after</h3><p/><br/><em>Default suite</em><p/><small><i>(Hover the method name to see the test class name)</i></small><p/>
 <table border="1">
 <tr><th>Time</th><th>Delta (ms)</th><th>Suite<br>configuration</th><th>Test<br>configuration</th><th>Class<br>configuration</th><th>Groups<br>configuration</th><th>Method<br>configuration</th><th>Test<br>method</th><th>Thread</th><th>Instances</th></tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>0</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.PKIXInlineParserTest at 41e1e210]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="d296da">  <td>22/06/08 10:36:16</td>   <td>-46</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="PKIXInlineParserTest.complex()[pri:0, instance:org.opensaml.spring.trust.PKIXInlineParserTest at 41e1e210]">complex</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="d4a5c2">  <td>22/06/08 10:36:16</td>   <td>46</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticPKIXSignatureParserTest.simple()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXSignatureParserTest at 4944252c]">simple</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:15</td>   <td>-1486</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>-694</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.X509FilesystemParserTest at 72cde7cc]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="9379b4">  <td>22/06/08 10:36:15</td>   <td>-1481</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticExplicitKeyFactoryBeanTest.mixed()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 11bd0f3b]">mixed</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7fb3a0">  <td>22/06/08 10:36:16</td>   <td>-836</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="X509FilesystemParserTest.twoCert()[pri:0, instance:org.opensaml.spring.credential.X509FilesystemParserTest at 72cde7cc]">twoCert</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:15</td>   <td>-1003</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.PKIXValidationOptionsParserTest at 1eb5174b]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>-356</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXX509CredentialParserTest at 4e7912d8]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="83b0a5">  <td>22/06/08 10:36:15</td>   <td>-1561</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="BasicResourceParserTest.wrongCert()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]">wrongCert</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>-469</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.ChainingTrustEngineTest at 696da30b]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="9379b4">  <td>22/06/08 10:36:15</td>   <td>-1231</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticExplicitKeyFactoryBeanTest.singleKey()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 11bd0f3b]">singleKey</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="71e976">  <td>22/06/08 10:36:16</td>   <td>-693</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="X509InlineParserTest.certKeyCrl()[pri:0, instance:org.opensaml.spring.credential.X509InlineParserTest at 5fd4f8f5]">certKeyCrl</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="c1bd8b">  <td>22/06/08 10:36:15</td>   <td>-1174</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticExplicitKeyParserTest.simple()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyParserTest at c333c60]">simple</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:15</td>   <td>-1175</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 11bd0f3b]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>-929</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.PKIXFilesystemParserTest at 67080771]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="c9d689">  <td>22/06/08 10:36:16</td>   <td>-356</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticPKIXFactoryBeanTest.customPropertiesFailsValidation()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXFactoryBeanTest at 53976f5c]">customPropertiesFailsValidation</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:14</td>   <td>-2534</td> <td title=">>AbstractSecurityParserTest.setupDirs()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]">>>setupDirs</td> 
-<td> </td><td> </td><td> </td><td> </td><td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7fb3a0">  <td>22/06/08 10:36:16</td>   <td>-898</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="X509FilesystemParserTest.certKeyCrl()[pri:0, instance:org.opensaml.spring.credential.X509FilesystemParserTest at 72cde7cc]">certKeyCrl</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>-575</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.X509InlineParserTest at 5fd4f8f5]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>-575</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.X509InlineParserTest at 5fd4f8f5]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="71beb3">  <td>22/06/08 10:36:15</td>   <td>-1025</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="PKIXValidationOptionsParserTest.simple()[pri:0, instance:org.opensaml.spring.trust.PKIXValidationOptionsParserTest at 1eb5174b]">simple</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="d4a5c2">  <td>22/06/08 10:36:16</td>   <td>22</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticPKIXSignatureParserTest.nameCheckDisabled()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXSignatureParserTest at 4944252c]">nameCheckDisabled</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="9379b4">  <td>22/06/08 10:36:15</td>   <td>-1351</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticExplicitKeyFactoryBeanTest.multipleCert()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 11bd0f3b]">multipleCert</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7abbaa">  <td>22/06/08 10:36:16</td>   <td>-141</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="BasicInlineParserTest.secretHex()[pri:0, instance:org.opensaml.spring.credential.BasicInlineParserTest at 2f8dad04]">secretHex</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7fb3a0">  <td>22/06/08 10:36:16</td>   <td>-850</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="X509FilesystemParserTest.certOnly()[pri:0, instance:org.opensaml.spring.credential.X509FilesystemParserTest at 72cde7cc]">certOnly</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="d296da">  <td>22/06/08 10:36:16</td>   <td>-22</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="PKIXInlineParserTest.simple()[pri:0, instance:org.opensaml.spring.trust.PKIXInlineParserTest at 41e1e210]">simple</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:15</td>   <td>-1106</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyParserTest at c333c60]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="83b0a5">  <td>22/06/08 10:36:14</td>   <td>-2477</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="BasicResourceParserTest.publicOnly()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]">publicOnly</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="83b0a5">  <td>22/06/08 10:36:15</td>   <td>-1823</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="BasicResourceParserTest.publicPrivate()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]">publicPrivate</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7fb3a0">  <td>22/06/08 10:36:16</td>   <td>-765</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="X509FilesystemParserTest.wrongCert()[pri:0, instance:org.opensaml.spring.credential.X509FilesystemParserTest at 72cde7cc]">wrongCert</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="71e976">  <td>22/06/08 10:36:16</td>   <td>-609</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="X509InlineParserTest.wrongCert()[pri:0, instance:org.opensaml.spring.credential.X509InlineParserTest at 5fd4f8f5]">wrongCert</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7fb3a0">  <td>22/06/08 10:36:16</td>   <td>-928</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="X509FilesystemParserTest.certElementsKeyNames()[pri:0, instance:org.opensaml.spring.credential.X509FilesystemParserTest at 72cde7cc]">certElementsKeyNames</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:15</td>   <td>-1175</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 11bd0f3b]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="71e976">  <td>22/06/08 10:36:16</td>   <td>-642</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="X509InlineParserTest.certOnly()[pri:0, instance:org.opensaml.spring.credential.X509InlineParserTest at 5fd4f8f5]">certOnly</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>-929</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.PKIXFilesystemParserTest at 67080771]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:15</td>   <td>-1175</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 11bd0f3b]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:15</td>   <td>-1486</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="71beb3">  <td>22/06/08 10:36:15</td>   <td>-1056</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="PKIXValidationOptionsParserTest.complex()[pri:0, instance:org.opensaml.spring.trust.PKIXValidationOptionsParserTest at 1eb5174b]">complex</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>-694</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.X509FilesystemParserTest at 72cde7cc]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:15</td>   <td>-1486</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="999590">  <td>22/06/08 10:36:15</td>   <td>-1003</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="PKIXFilesystemParserTest.complex()[pri:0, instance:org.opensaml.spring.trust.PKIXFilesystemParserTest at 67080771]">complex</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7abbaa">  <td>22/06/08 10:36:16</td>   <td>-199</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="BasicInlineParserTest.publicPrivate()[pri:0, instance:org.opensaml.spring.credential.BasicInlineParserTest at 2f8dad04]">publicPrivate</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="d4a5c2">  <td>22/06/08 10:36:17</td>   <td>68</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticPKIXSignatureParserTest.values()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXSignatureParserTest at 4944252c]">values</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="fc69bd">  <td>22/06/08 10:36:16</td>   <td>-574</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="ChainingTrustEngineTest.one()[pri:0, instance:org.opensaml.spring.trust.ChainingTrustEngineTest at 696da30b]">one</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:15</td>   <td>-1057</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeySignatureParserTest at 79da8dc5]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>0</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.PKIXInlineParserTest at 41e1e210]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:15</td>   <td>-1486</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:15</td>   <td>-1486</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:17</td>   <td>114</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXSignatureParserTest at 4944252c]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="83b0a5">  <td>22/06/08 10:36:15</td>   <td>-1593</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="BasicResourceParserTest.secretHex()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]">secretHex</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>-356</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXX509CredentialParserTest at 4e7912d8]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:17</td>   <td>114</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXSignatureParserTest at 4944252c]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>-223</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.SignatureChainingParserTest at 2bfc268b]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>-124</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.BasicInlineParserTest at 2f8dad04]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="83b0a5">  <td>22/06/08 10:36:15</td>   <td>-1653</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="BasicResourceParserTest.secretBinary()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]">secretBinary</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="707274">  <td>22/06/08 10:36:16</td>   <td>-463</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticPKIXX509CredentialParserTest.certPath()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXX509CredentialParserTest at 4e7912d8]">certPath</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>-124</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.BasicInlineParserTest at 2f8dad04]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="707274">  <td>22/06/08 10:36:16</td>   <td>-393</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticPKIXX509CredentialParserTest.nameCheckDisabled()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXX509CredentialParserTest at 4e7912d8]">nameCheckDisabled</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="d4a5c2">  <td>22/06/08 10:36:16</td>   <td>1</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticPKIXSignatureParserTest.certPath()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXSignatureParserTest at 4944252c]">certPath</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="6aecbc">  <td>22/06/08 10:36:16</td>   <td>-124</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="BasicX509CredentialFactoryBeanTest.bean()[pri:0, instance:org.opensaml.spring.credential.BasicX509CredentialFactoryBeanTest at 29e495ff]">bean</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:17</td>   <td>114</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXSignatureParserTest at 4944252c]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:15</td>   <td>-1003</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.PKIXValidationOptionsParserTest at 1eb5174b]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>-694</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.X509FilesystemParserTest at 72cde7cc]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="6e82ae">  <td>22/06/08 10:36:15</td>   <td>-1102</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticExplicitKeySignatureParserTest.simple()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeySignatureParserTest at 79da8dc5]">simple</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="fc69bd">  <td>22/06/08 10:36:16</td>   <td>-510</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="ChainingTrustEngineTest.two()[pri:0, instance:org.opensaml.spring.trust.ChainingTrustEngineTest at 696da30b]">two</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>-694</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.X509FilesystemParserTest at 72cde7cc]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="83b0a5">  <td>22/06/08 10:36:15</td>   <td>-1705</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="BasicResourceParserTest.secretBase64()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]">secretBase64</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7abbaa">  <td>22/06/08 10:36:16</td>   <td>-222</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="BasicInlineParserTest.publicOnly()[pri:0, instance:org.opensaml.spring.credential.BasicInlineParserTest at 2f8dad04]">publicOnly</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>-694</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.X509FilesystemParserTest at 72cde7cc]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="bf6da9">  <td>22/06/08 10:36:16</td>   <td>-260</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="SignatureChainingParserTest.simple()[pri:0, instance:org.opensaml.spring.trust.SignatureChainingParserTest at 2bfc268b]">simple</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7abbaa">  <td>22/06/08 10:36:16</td>   <td>-162</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="BasicInlineParserTest.secretBase64()[pri:0, instance:org.opensaml.spring.credential.BasicInlineParserTest at 2f8dad04]">secretBase64</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="c9d689">  <td>22/06/08 10:36:16</td>   <td>-277</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticPKIXFactoryBeanTest.defaults()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXFactoryBeanTest at 53976f5c]">defaults</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>-469</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.ChainingTrustEngineTest at 696da30b]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>-124</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.BasicInlineParserTest at 2f8dad04]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:15</td>   <td>-1175</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 11bd0f3b]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>-124</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.BasicInlineParserTest at 2f8dad04]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:15</td>   <td>-1486</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="999590">  <td>22/06/08 10:36:16</td>   <td>-953</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="PKIXFilesystemParserTest.simple()[pri:0, instance:org.opensaml.spring.trust.PKIXFilesystemParserTest at 67080771]">simple</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="9379b4">  <td>22/06/08 10:36:15</td>   <td>-1296</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticExplicitKeyFactoryBeanTest.singleCert()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 11bd0f3b]">singleCert</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="c9d689">  <td>22/06/08 10:36:16</td>   <td>-303</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticPKIXFactoryBeanTest.customPropertiesSuccess()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXFactoryBeanTest at 53976f5c]">customPropertiesSuccess</td> 
-  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:16</td>   <td>-575</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.X509InlineParserTest at 5fd4f8f5]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
-<tr bgcolor="7a66ec">  <td>22/06/08 10:36:17</td>   <td>114</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityParserTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXSignatureParserTest at 4944252c]"><<tearDownTestContext</td> 
-<td> </td>  <td>main at 1839337592</td>   <td></td> </tr>
+<tr bgcolor="7caf88">  <td>22/07/01 14:26:56</td>   <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticExplicitKeyFactoryBeanTest.singleCert()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 57d7f8ca]">singleCert</td> 
+  <td>main at 1704237553</td>   <td></td> </tr>
+<tr bgcolor="ebc363">  <td>22/07/01 14:26:56</td>   <td>137</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 57d7f8ca]"><<tearDownTestContext</td> 
+<td> </td>  <td>main at 1704237553</td>   <td></td> </tr>
+<tr bgcolor="7caf88">  <td>22/07/01 14:26:55</td>   <td>-808</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticExplicitKeyFactoryBeanTest.mixed()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 57d7f8ca]">mixed</td> 
+  <td>main at 1704237553</td>   <td></td> </tr>
+<tr bgcolor="7caf88">  <td>22/07/01 14:26:56</td>   <td>-98</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticExplicitKeyFactoryBeanTest.multipleCert()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 57d7f8ca]">multipleCert</td> 
+  <td>main at 1704237553</td>   <td></td> </tr>
+<tr bgcolor="87b1af">  <td>22/07/01 14:26:56</td>   <td>332</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="BasicX509CredentialFactoryBeanTest.bean()[pri:0, instance:org.opensaml.spring.credential.BasicX509CredentialFactoryBeanTest at 505fc5a4]">bean</td> 
+  <td>main at 1704237553</td>   <td></td> </tr>
+<tr bgcolor="ebc363">  <td>22/07/01 14:26:56</td>   <td>137</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 57d7f8ca]"><<tearDownTestContext</td> 
+<td> </td>  <td>main at 1704237553</td>   <td></td> </tr>
+<tr bgcolor="ebc363">  <td>22/07/01 14:26:56</td>   <td>137</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 57d7f8ca]"><<tearDownTestContext</td> 
+<td> </td>  <td>main at 1704237553</td>   <td></td> </tr>
+<tr bgcolor="d9d18d">  <td>22/07/01 14:26:56</td>   <td>238</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticPKIXFactoryBeanTest.customPropertiesSuccess()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXFactoryBeanTest at 3d6f0054]">customPropertiesSuccess</td> 
+  <td>main at 1704237553</td>   <td></td> </tr>
+<tr bgcolor="7caf88">  <td>22/07/01 14:26:56</td>   <td>76</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticExplicitKeyFactoryBeanTest.singleKey()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 57d7f8ca]">singleKey</td> 
+  <td>main at 1704237553</td>   <td></td> </tr>
+<tr bgcolor="ebc363">  <td>22/07/01 14:26:55</td>   <td>-857</td> <td title=">>AbstractSecurityTest.setupDirs()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 57d7f8ca]">>>setupDirs</td> 
+<td> </td><td> </td><td> </td><td> </td><td> </td>  <td>main at 1704237553</td>   <td></td> </tr>
+<tr bgcolor="d9d18d">  <td>22/07/01 14:26:56</td>   <td>293</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticPKIXFactoryBeanTest.defaults()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXFactoryBeanTest at 3d6f0054]">defaults</td> 
+  <td>main at 1704237553</td>   <td></td> </tr>
+<tr bgcolor="ebc363">  <td>22/07/01 14:26:56</td>   <td>137</td> <td> </td><td> </td><td> </td><td> </td><td title="<<AbstractSecurityTest.tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 57d7f8ca]"><<tearDownTestContext</td> 
+<td> </td>  <td>main at 1704237553</td>   <td></td> </tr>
+<tr bgcolor="d9d18d">  <td>22/07/01 14:26:56</td>   <td>141</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="StaticPKIXFactoryBeanTest.customPropertiesFailsValidation()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXFactoryBeanTest at 3d6f0054]">customPropertiesFailsValidation</td> 
+  <td>main at 1704237553</td>   <td></td> </tr>
 </table>
diff --git a/opensaml-spring/test-output/old/Default suite/testng.xml.html b/opensaml-spring/test-output/old/Default suite/testng.xml.html
index e294976d6..add318c3e 100644
--- a/opensaml-spring/test-output/old/Default suite/testng.xml.html	
+++ b/opensaml-spring/test-output/old/Default suite/testng.xml.html	
@@ -1 +1 @@
-<html><head><title>testng.xml for Default suite</title></head><body><tt><?xml version="1.0" encoding="UTF-8"?><br/><!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd"><br/><suite name="Default suite" guice-stage="DEVELOPMENT"><br/>  <test thread-count="5" name="Default test" verbose="2"><br/>    <classes><br/>      <class nam [...]
\ No newline at end of file
+<html><head><title>testng.xml for Default suite</title></head><body><tt><?xml version="1.0" encoding="UTF-8"?><br/><!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd"><br/><suite name="Default suite" guice-stage="DEVELOPMENT"><br/>  <test thread-count="5" name="Default test" verbose="2"><br/>    <classes><br/>      <class nam [...]
\ No newline at end of file
diff --git a/opensaml-spring/test-output/old/Default suite/toc.html b/opensaml-spring/test-output/old/Default suite/toc.html
index 4e9703aa4..f9ecea4dc 100644
--- a/opensaml-spring/test-output/old/Default suite/toc.html	
+++ b/opensaml-spring/test-output/old/Default suite/toc.html	
@@ -9,11 +9,11 @@
 <table border='1' width='100%'>
 <tr valign='top'>
 <td>1 test</td>
-<td><a target='mainFrame' href='classes.html'>16 classes</a></td>
-<td>43 methods:<br/>
+<td><a target='mainFrame' href='classes.html'>3 classes</a></td>
+<td>8 methods:<br/>
   <a target='mainFrame' href='methods.html'>chronological</a><br/>
   <a target='mainFrame' href='methods-alphabetical.html'>alphabetical</a><br/>
-  <a target='mainFrame' href='methods-not-run.html'>not run (14)</a></td>
+  <a target='mainFrame' href='methods-not-run.html'>not run (1)</a></td>
 </tr>
 <tr>
 <td><a target='mainFrame' href='groups.html'>0 group</a></td>
@@ -22,7 +22,7 @@
 </tr></table>
 <table width='100%' class='test-passed'>
 <tr><td>
-<table style='width: 100%'><tr><td valign='top'>Default test (43/0/0)</td><td valign='top' align='right'>
+<table style='width: 100%'><tr><td valign='top'>Default test (8/0/0)</td><td valign='top' align='right'>
   <a href='Default test.html' target='mainFrame'>Results</a>
 </td></tr></table>
 </td></tr><p/>
diff --git a/opensaml-spring/test-output/old/index.html b/opensaml-spring/test-output/old/index.html
index e33722098..66cea6af3 100644
--- a/opensaml-spring/test-output/old/index.html
+++ b/opensaml-spring/test-output/old/index.html
@@ -4,6 +4,6 @@
 </head><body>
 <h2><p align='center'>Test results</p></h2>
 <table border='1' width='100%' class='main-page'><tr><th>Suite</th><th>Passed</th><th>Failed</th><th>Skipped</th><th>testng.xml</th></tr>
-<tr align='center' class='invocation-passed'><td><em>Total</em></td><td><em>43</em></td><td><em>0</em></td><td><em>0</em></td><td> </td></tr>
+<tr align='center' class='invocation-passed'><td><em>Total</em></td><td><em>8</em></td><td><em>0</em></td><td><em>0</em></td><td> </td></tr>
 <tr align='center' class='invocation-passed'><td><a href='Default suite/index.html'>Default suite</a></td>
-<td>43</td><td>0</td><td>0</td><td><a href='Default suite/testng.xml.html'>Link</a></td></tr></table></body></html>
+<td>8</td><td>0</td><td>0</td><td><a href='Default suite/testng.xml.html'>Link</a></td></tr></table></body></html>
diff --git a/opensaml-spring/test-output/testng-failed.xml b/opensaml-spring/test-output/testng-failed.xml
index 071c33d5e..112bf7c5f 100644
--- a/opensaml-spring/test-output/testng-failed.xml
+++ b/opensaml-spring/test-output/testng-failed.xml
@@ -3,13 +3,16 @@
 <suite name="Failed suite [Default suite]" guice-stage="DEVELOPMENT">
   <test thread-count="5" name="Default test(failed)">
     <classes>
-      <class name="org.opensaml.spring.trust.PKIXFilesystemParserTest">
+      <class name="org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest">
         <methods>
+          <include name="multipleCert"/>
           <include name="setupDirs"/>
+          <include name="singleCert"/>
+          <include name="mixed"/>
+          <include name="singleKey"/>
           <include name="tearDownTestContext"/>
-          <include name="complex"/>
         </methods>
-      </class> <!-- org.opensaml.spring.trust.PKIXFilesystemParserTest -->
+      </class> <!-- org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest -->
     </classes>
   </test> <!-- Default test(failed) -->
 </suite> <!-- Failed suite [Default suite] -->
diff --git a/opensaml-spring/test-output/testng-results.xml b/opensaml-spring/test-output/testng-results.xml
index fb4b67998..f1160f5f5 100644
--- a/opensaml-spring/test-output/testng-results.xml
+++ b/opensaml-spring/test-output/testng-results.xml
@@ -1,532 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<testng-results ignored="14" total="57" passed="43" failed="0" skipped="0">
+<testng-results ignored="1" total="9" passed="8" failed="0" skipped="0">
   <reporter-output>
   </reporter-output>
-  <suite started-at="2022-06-08T10:36:14 EDT" name="Default suite" finished-at="2022-06-08T10:36:17 EDT" duration-ms="2631">
+  <suite started-at="2022-07-01T14:26:55 EDT" name="Default suite" finished-at="2022-07-01T14:26:56 EDT" duration-ms="1329">
     <groups>
     </groups>
-    <test started-at="2022-06-08T10:36:14 EDT" name="Default test" finished-at="2022-06-08T10:36:17 EDT" duration-ms="2631">
-      <class name="org.opensaml.spring.credential.BasicResourceParserTest">
-        <test-method is-config="true" signature="setupDirs()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]" started-at="2022-06-08T10:36:14 EDT" name="setupDirs" finished-at="2022-06-08T10:36:14 EDT" duration-ms="23" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- setupDirs -->
-        <test-method signature="publicOnly()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]" started-at="2022-06-08T10:36:14 EDT" name="publicOnly" finished-at="2022-06-08T10:36:15 EDT" duration-ms="639" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- publicOnly -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]" started-at="2022-06-08T10:36:15 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:15 EDT" duration-ms="8" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- tearDownTestContext -->
-        <test-method signature="publicPrivate()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]" started-at="2022-06-08T10:36:15 EDT" name="publicPrivate" finished-at="2022-06-08T10:36:15 EDT" duration-ms="113" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- publicPrivate -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]" started-at="2022-06-08T10:36:15 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:15 EDT" duration-ms="2" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- tearDownTestContext -->
-        <test-method signature="secretBase64()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]" started-at="2022-06-08T10:36:15 EDT" name="secretBase64" finished-at="2022-06-08T10:36:15 EDT" duration-ms="48" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- secretBase64 -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]" started-at="2022-06-08T10:36:15 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:15 EDT" duration-ms="1" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- tearDownTestContext -->
-        <test-method signature="secretBinary()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]" started-at="2022-06-08T10:36:15 EDT" name="secretBinary" finished-at="2022-06-08T10:36:15 EDT" duration-ms="57" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- secretBinary -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]" started-at="2022-06-08T10:36:15 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:15 EDT" duration-ms="1" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- tearDownTestContext -->
-        <test-method signature="secretHex()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]" started-at="2022-06-08T10:36:15 EDT" name="secretHex" finished-at="2022-06-08T10:36:15 EDT" duration-ms="28" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- secretHex -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]" started-at="2022-06-08T10:36:15 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:15 EDT" duration-ms="2" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- tearDownTestContext -->
-        <test-method signature="wrongCert()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]" started-at="2022-06-08T10:36:15 EDT" name="wrongCert" finished-at="2022-06-08T10:36:15 EDT" duration-ms="68" status="PASS">
-          <exception class="org.springframework.beans.factory.BeanCreationException">
-            <message>
-              <![CDATA[Error creating bean with name 'IdPCredential': Invocation of init method failed; nested exception is org.opensaml.security.SecurityException: Error during signature verification]]>
-            </message>
-            <full-stacktrace>
-              <![CDATA[org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'IdPCredential': Invocation of init method failed; nested exception is org.opensaml.security.SecurityException: Error during signature verification
-at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1755)
-at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:604)
-at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:526)
-at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326)
-at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
-at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324)
-at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:225)
-at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1265)
-at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1226)
-at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveBean(DefaultListableBeanFactory.java:483)
-at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:338)
-at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:331)
-at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1159)
-at org.opensaml.spring.AbstractSecurityParserTest.getBean(AbstractSecurityParserTest.java:95)
-at org.opensaml.spring.AbstractSecurityParserTest.getBean(AbstractSecurityParserTest.java:68)
-at org.opensaml.spring.credential.BasicResourceParserTest.wrongCert(BasicResourceParserTest.java:46)
-at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
-at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-at java.base/java.lang.reflect.Method.invoke(Method.java:568)
-at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:135)
-at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:673)
-at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:220)
-at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:50)
-at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:945)
-at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:193)
-at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
-at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
-at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
-at org.testng.TestRunner.privateRun(TestRunner.java:808)
-at org.testng.TestRunner.run(TestRunner.java:603)
-at org.testng.SuiteRunner.runTest(SuiteRunner.java:429)
-at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:423)
-at org.testng.SuiteRunner.privateRun(SuiteRunner.java:383)
-at org.testng.SuiteRunner.run(SuiteRunner.java:326)
-at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
-at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
-at org.testng.TestNG.runSuitesSequentially(TestNG.java:1249)
-at org.testng.TestNG.runSuitesLocally(TestNG.java:1169)
-at org.testng.TestNG.runSuites(TestNG.java:1092)
-at org.testng.TestNG.run(TestNG.java:1060)
-at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
-at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
-at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
-Caused by: org.opensaml.security.SecurityException: Error during signature verification
-at org.opensaml.security.crypto.SigningUtil.verify(SigningUtil.java:219)
-at org.opensaml.security.crypto.KeySupport.matchKeyPair(KeySupport.java:613)
-at org.opensaml.spring.credential.AbstractBasicCredentialFactoryBean.doCreateInstance(AbstractBasicCredentialFactoryBean.java:125)
-at org.opensaml.spring.credential.AbstractBasicCredentialFactoryBean.doCreateInstance(AbstractBasicCredentialFactoryBean.java:1)
-at net.shibboleth.ext.spring.factory.AbstractComponentAwareFactoryBean.createInstance(AbstractComponentAwareFactoryBean.java:49)
-at org.springframework.beans.factory.config.AbstractFactoryBean.afterPropertiesSet(AbstractFactoryBean.java:142)
-at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1802)
-at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1751)
-... 43 more
-Caused by: java.security.SignatureException: Signature length not correct: got 256 but was expecting 128
-at java.base/sun.security.rsa.RSASignature.engineVerify(RSASignature.java:213)
-at java.base/java.security.Signature$Delegate.engineVerify(Signature.java:1435)
-at java.base/java.security.Signature.verify(Signature.java:789)
-at org.opensaml.security.crypto.SigningUtil.verify(SigningUtil.java:216)
-... 50 more
-]]>
-            </full-stacktrace>
-          </exception> <!-- org.springframework.beans.factory.BeanCreationException -->
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- wrongCert -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.BasicResourceParserTest at 3d1cfad4]" started-at="2022-06-08T10:36:15 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:15 EDT" duration-ms="2" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- tearDownTestContext -->
-      </class> <!-- org.opensaml.spring.credential.BasicResourceParserTest -->
-      <class name="org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest">
-        <test-method signature="mixed()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 11bd0f3b]" started-at="2022-06-08T10:36:15 EDT" name="mixed" finished-at="2022-06-08T10:36:15 EDT" duration-ms="124" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- mixed -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 11bd0f3b]" started-at="2022-06-08T10:36:15 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:15 EDT" duration-ms="3" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- tearDownTestContext -->
-        <test-method signature="multipleCert()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 11bd0f3b]" started-at="2022-06-08T10:36:15 EDT" name="multipleCert" finished-at="2022-06-08T10:36:15 EDT" duration-ms="51" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- multipleCert -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 11bd0f3b]" started-at="2022-06-08T10:36:15 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:15 EDT" duration-ms="1" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- tearDownTestContext -->
-        <test-method signature="singleCert()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 11bd0f3b]" started-at="2022-06-08T10:36:15 EDT" name="singleCert" finished-at="2022-06-08T10:36:15 EDT" duration-ms="62" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- singleCert -->
-        <test-method signature="singleKey()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 11bd0f3b]" started-at="2022-06-08T10:36:15 EDT" name="singleKey" finished-at="2022-06-08T10:36:15 EDT" duration-ms="55" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- singleKey -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 11bd0f3b]" started-at="2022-06-08T10:36:15 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:15 EDT" duration-ms="0" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- tearDownTestContext -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 11bd0f3b]" started-at="2022-06-08T10:36:15 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:15 EDT" duration-ms="0" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- tearDownTestContext -->
-      </class> <!-- org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest -->
-      <class name="org.opensaml.spring.trust.StaticExplicitKeyParserTest">
-        <test-method signature="simple()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyParserTest at c333c60]" started-at="2022-06-08T10:36:15 EDT" name="simple" finished-at="2022-06-08T10:36:15 EDT" duration-ms="65" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- simple -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyParserTest at c333c60]" started-at="2022-06-08T10:36:15 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:15 EDT" duration-ms="1" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- tearDownTestContext -->
-      </class> <!-- org.opensaml.spring.trust.StaticExplicitKeyParserTest -->
-      <class name="org.opensaml.spring.trust.StaticExplicitKeySignatureParserTest">
-        <test-method signature="simple()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeySignatureParserTest at 79da8dc5]" started-at="2022-06-08T10:36:15 EDT" name="simple" finished-at="2022-06-08T10:36:15 EDT" duration-ms="44" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- simple -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeySignatureParserTest at 79da8dc5]" started-at="2022-06-08T10:36:15 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:15 EDT" duration-ms="1" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- tearDownTestContext -->
-      </class> <!-- org.opensaml.spring.trust.StaticExplicitKeySignatureParserTest -->
-      <class name="org.opensaml.spring.trust.PKIXValidationOptionsParserTest">
-        <test-method signature="complex()[pri:0, instance:org.opensaml.spring.trust.PKIXValidationOptionsParserTest at 1eb5174b]" started-at="2022-06-08T10:36:15 EDT" name="complex" finished-at="2022-06-08T10:36:15 EDT" duration-ms="29" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- complex -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.PKIXValidationOptionsParserTest at 1eb5174b]" started-at="2022-06-08T10:36:15 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:15 EDT" duration-ms="1" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- tearDownTestContext -->
-        <test-method signature="simple()[pri:0, instance:org.opensaml.spring.trust.PKIXValidationOptionsParserTest at 1eb5174b]" started-at="2022-06-08T10:36:15 EDT" name="simple" finished-at="2022-06-08T10:36:15 EDT" duration-ms="19" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- simple -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.PKIXValidationOptionsParserTest at 1eb5174b]" started-at="2022-06-08T10:36:15 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:15 EDT" duration-ms="0" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- tearDownTestContext -->
-      </class> <!-- org.opensaml.spring.trust.PKIXValidationOptionsParserTest -->
-      <class name="org.opensaml.spring.trust.PKIXFilesystemParserTest">
-        <test-method signature="complex()[pri:0, instance:org.opensaml.spring.trust.PKIXFilesystemParserTest at 67080771]" started-at="2022-06-08T10:36:15 EDT" name="complex" finished-at="2022-06-08T10:36:15 EDT" duration-ms="48" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- complex -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.PKIXFilesystemParserTest at 67080771]" started-at="2022-06-08T10:36:15 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:16 EDT" duration-ms="1" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- tearDownTestContext -->
-        <test-method signature="simple()[pri:0, instance:org.opensaml.spring.trust.PKIXFilesystemParserTest at 67080771]" started-at="2022-06-08T10:36:16 EDT" name="simple" finished-at="2022-06-08T10:36:16 EDT" duration-ms="22" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- simple -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.PKIXFilesystemParserTest at 67080771]" started-at="2022-06-08T10:36:16 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:16 EDT" duration-ms="1" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- tearDownTestContext -->
-      </class> <!-- org.opensaml.spring.trust.PKIXFilesystemParserTest -->
-      <class name="org.opensaml.spring.credential.X509FilesystemParserTest">
-        <test-method signature="certElementsKeyNames()[pri:0, instance:org.opensaml.spring.credential.X509FilesystemParserTest at 72cde7cc]" started-at="2022-06-08T10:36:16 EDT" name="certElementsKeyNames" finished-at="2022-06-08T10:36:16 EDT" duration-ms="28" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- certElementsKeyNames -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.X509FilesystemParserTest at 72cde7cc]" started-at="2022-06-08T10:36:16 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:16 EDT" duration-ms="0" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- tearDownTestContext -->
-        <test-method signature="certKeyCrl()[pri:0, instance:org.opensaml.spring.credential.X509FilesystemParserTest at 72cde7cc]" started-at="2022-06-08T10:36:16 EDT" name="certKeyCrl" finished-at="2022-06-08T10:36:16 EDT" duration-ms="45" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- certKeyCrl -->
-        <test-method signature="certOnly()[pri:0, instance:org.opensaml.spring.credential.X509FilesystemParserTest at 72cde7cc]" started-at="2022-06-08T10:36:16 EDT" name="certOnly" finished-at="2022-06-08T10:36:16 EDT" duration-ms="13" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- certOnly -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.X509FilesystemParserTest at 72cde7cc]" started-at="2022-06-08T10:36:16 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:16 EDT" duration-ms="0" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- tearDownTestContext -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.X509FilesystemParserTest at 72cde7cc]" started-at="2022-06-08T10:36:16 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:16 EDT" duration-ms="1" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- tearDownTestContext -->
-        <test-method signature="twoCert()[pri:0, instance:org.opensaml.spring.credential.X509FilesystemParserTest at 72cde7cc]" started-at="2022-06-08T10:36:16 EDT" name="twoCert" finished-at="2022-06-08T10:36:16 EDT" duration-ms="63" status="PASS">
-          <exception class="org.springframework.beans.factory.BeanCreationException">
-            <message>
-              <![CDATA[Error creating bean with name 'IdPCredential': Invocation of init method failed; nested exception is org.springframework.beans.FatalBeanException: Configuration element indicated an entityCertificate, but multiple certificates were decoded]]>
-            </message>
-            <full-stacktrace>
-              <![CDATA[org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'IdPCredential': Invocation of init method failed; nested exception is org.springframework.beans.FatalBeanException: Configuration element indicated an entityCertificate, but multiple certificates were decoded
-at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1755)
-at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:604)
-at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:526)
-at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326)
-at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
-at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324)
-at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:225)
-at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1265)
-at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1226)
-at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveBean(DefaultListableBeanFactory.java:483)
-at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:338)
-at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:331)
-at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1159)
-at org.opensaml.spring.AbstractSecurityParserTest.getBean(AbstractSecurityParserTest.java:95)
-at org.opensaml.spring.AbstractSecurityParserTest.getBean(AbstractSecurityParserTest.java:68)
-at org.opensaml.spring.credential.X509FilesystemParserTest.lookup(X509FilesystemParserTest.java:39)
-at org.opensaml.spring.credential.X509FilesystemParserTest.twoCert(X509FilesystemParserTest.java:53)
-at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
-at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-at java.base/java.lang.reflect.Method.invoke(Method.java:568)
-at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:135)
-at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:673)
-at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:220)
-at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:50)
-at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:945)
-at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:193)
-at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
-at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
-at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
-at org.testng.TestRunner.privateRun(TestRunner.java:808)
-at org.testng.TestRunner.run(TestRunner.java:603)
-at org.testng.SuiteRunner.runTest(SuiteRunner.java:429)
-at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:423)
-at org.testng.SuiteRunner.privateRun(SuiteRunner.java:383)
-at org.testng.SuiteRunner.run(SuiteRunner.java:326)
-at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
-at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
-at org.testng.TestNG.runSuitesSequentially(TestNG.java:1249)
-at org.testng.TestNG.runSuitesLocally(TestNG.java:1169)
-at org.testng.TestNG.runSuites(TestNG.java:1092)
-at org.testng.TestNG.run(TestNG.java:1060)
-at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
-at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
-at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
-Caused by: org.springframework.beans.FatalBeanException: Configuration element indicated an entityCertificate, but multiple certificates were decoded
-at org.opensaml.spring.credential.BasicX509CredentialFactoryBean.getEntityCertificate(BasicX509CredentialFactoryBean.java:161)
-at org.opensaml.spring.credential.AbstractX509CredentialFactoryBean.doCreateInstance(AbstractX509CredentialFactoryBean.java:55)
-at org.opensaml.spring.credential.AbstractX509CredentialFactoryBean.doCreateInstance(AbstractX509CredentialFactoryBean.java:1)
-at net.shibboleth.ext.spring.factory.AbstractComponentAwareFactoryBean.createInstance(AbstractComponentAwareFactoryBean.java:49)
-at org.springframework.beans.factory.config.AbstractFactoryBean.afterPropertiesSet(AbstractFactoryBean.java:142)
-at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1802)
-at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1751)
-... 44 more
-]]>
-            </full-stacktrace>
-          </exception> <!-- org.springframework.beans.factory.BeanCreationException -->
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- twoCert -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.X509FilesystemParserTest at 72cde7cc]" started-at="2022-06-08T10:36:16 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:16 EDT" duration-ms="3" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- tearDownTestContext -->
-        <test-method signature="wrongCert()[pri:0, instance:org.opensaml.spring.credential.X509FilesystemParserTest at 72cde7cc]" started-at="2022-06-08T10:36:16 EDT" name="wrongCert" finished-at="2022-06-08T10:36:16 EDT" duration-ms="66" status="PASS">
-          <exception class="org.springframework.beans.factory.BeanCreationException">
-            <message>
-              <![CDATA[Error creating bean with name 'IdPCredential': Invocation of init method failed; nested exception is org.opensaml.security.SecurityException: Error during signature verification]]>
-            </message>
-            <full-stacktrace>
-              <![CDATA[org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'IdPCredential': Invocation of init method failed; nested exception is org.opensaml.security.SecurityException: Error during signature verification
-at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1755)
-at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:604)
-at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:526)
-at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326)
-at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
-at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324)
-at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:225)
-at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1265)
-at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1226)
-at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveBean(DefaultListableBeanFactory.java:483)
-at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:338)
-at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:331)
-at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1159)
-at org.opensaml.spring.AbstractSecurityParserTest.getBean(AbstractSecurityParserTest.java:95)
-at org.opensaml.spring.AbstractSecurityParserTest.getBean(AbstractSecurityParserTest.java:68)
-at org.opensaml.spring.credential.X509FilesystemParserTest.lookup(X509FilesystemParserTest.java:39)
-at org.opensaml.spring.credential.X509FilesystemParserTest.wrongCert(X509FilesystemParserTest.java:57)
-at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
-at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-at java.base/java.lang.reflect.Method.invoke(Method.java:568)
-at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:135)
-at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:673)
-at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:220)
-at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:50)
-at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:945)
-at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:193)
-at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
-at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
-at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
-at org.testng.TestRunner.privateRun(TestRunner.java:808)
-at org.testng.TestRunner.run(TestRunner.java:603)
-at org.testng.SuiteRunner.runTest(SuiteRunner.java:429)
-at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:423)
-at org.testng.SuiteRunner.privateRun(SuiteRunner.java:383)
-at org.testng.SuiteRunner.run(SuiteRunner.java:326)
-at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
-at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
-at org.testng.TestNG.runSuitesSequentially(TestNG.java:1249)
-at org.testng.TestNG.runSuitesLocally(TestNG.java:1169)
-at org.testng.TestNG.runSuites(TestNG.java:1092)
-at org.testng.TestNG.run(TestNG.java:1060)
-at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
-at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
-at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
-Caused by: org.opensaml.security.SecurityException: Error during signature verification
-at org.opensaml.security.crypto.SigningUtil.verify(SigningUtil.java:219)
-at org.opensaml.security.crypto.KeySupport.matchKeyPair(KeySupport.java:613)
-at org.opensaml.spring.credential.AbstractX509CredentialFactoryBean.doCreateInstance(AbstractX509CredentialFactoryBean.java:68)
-at org.opensaml.spring.credential.AbstractX509CredentialFactoryBean.doCreateInstance(AbstractX509CredentialFactoryBean.java:1)
-at net.shibboleth.ext.spring.factory.AbstractComponentAwareFactoryBean.createInstance(AbstractComponentAwareFactoryBean.java:49)
-at org.springframework.beans.factory.config.AbstractFactoryBean.afterPropertiesSet(AbstractFactoryBean.java:142)
-at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1802)
-at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1751)
-... 44 more
-Caused by: java.security.SignatureException: Signature length not correct: got 256 but was expecting 128
-at java.base/sun.security.rsa.RSASignature.engineVerify(RSASignature.java:213)
-at java.base/java.security.Signature$Delegate.engineVerify(Signature.java:1435)
-at java.base/java.security.Signature.verify(Signature.java:789)
-at org.opensaml.security.crypto.SigningUtil.verify(SigningUtil.java:216)
-... 51 more
-]]>
-            </full-stacktrace>
-          </exception> <!-- org.springframework.beans.factory.BeanCreationException -->
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- wrongCert -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.X509FilesystemParserTest at 72cde7cc]" started-at="2022-06-08T10:36:16 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:16 EDT" duration-ms="1" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- tearDownTestContext -->
-      </class> <!-- org.opensaml.spring.credential.X509FilesystemParserTest -->
-      <class name="org.opensaml.spring.credential.X509InlineParserTest">
-        <test-method signature="certKeyCrl()[pri:0, instance:org.opensaml.spring.credential.X509InlineParserTest at 5fd4f8f5]" started-at="2022-06-08T10:36:16 EDT" name="certKeyCrl" finished-at="2022-06-08T10:36:16 EDT" duration-ms="49" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- certKeyCrl -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.X509InlineParserTest at 5fd4f8f5]" started-at="2022-06-08T10:36:16 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:16 EDT" duration-ms="1" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- tearDownTestContext -->
-        <test-method signature="certOnly()[pri:0, instance:org.opensaml.spring.credential.X509InlineParserTest at 5fd4f8f5]" started-at="2022-06-08T10:36:16 EDT" name="certOnly" finished-at="2022-06-08T10:36:16 EDT" duration-ms="27" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- certOnly -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.X509InlineParserTest at 5fd4f8f5]" started-at="2022-06-08T10:36:16 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:16 EDT" duration-ms="1" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- tearDownTestContext -->
-        <test-method signature="wrongCert()[pri:0, instance:org.opensaml.spring.credential.X509InlineParserTest at 5fd4f8f5]" started-at="2022-06-08T10:36:16 EDT" name="wrongCert" finished-at="2022-06-08T10:36:16 EDT" duration-ms="31" status="PASS">
-          <exception class="org.springframework.beans.factory.BeanCreationException">
-            <message>
-              <![CDATA[Error creating bean with name 'IdPCredential': Invocation of init method failed; nested exception is org.opensaml.security.SecurityException: Error during signature verification]]>
-            </message>
-            <full-stacktrace>
-              <![CDATA[org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'IdPCredential': Invocation of init method failed; nested exception is org.opensaml.security.SecurityException: Error during signature verification
-at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1755)
-at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:604)
-at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:526)
-at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326)
-at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
-at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324)
-at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:225)
-at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1265)
-at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1226)
-at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveBean(DefaultListableBeanFactory.java:483)
-at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:338)
-at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:331)
-at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1159)
-at org.opensaml.spring.AbstractSecurityParserTest.getBean(AbstractSecurityParserTest.java:95)
-at org.opensaml.spring.AbstractSecurityParserTest.getBean(AbstractSecurityParserTest.java:68)
-at org.opensaml.spring.credential.X509InlineParserTest.wrongCert(X509InlineParserTest.java:48)
-at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
-at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
-at java.base/java.lang.reflect.Method.invoke(Method.java:568)
-at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:135)
-at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:673)
-at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:220)
-at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:50)
-at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:945)
-at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:193)
-at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
-at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:128)
-at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
-at org.testng.TestRunner.privateRun(TestRunner.java:808)
-at org.testng.TestRunner.run(TestRunner.java:603)
-at org.testng.SuiteRunner.runTest(SuiteRunner.java:429)
-at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:423)
-at org.testng.SuiteRunner.privateRun(SuiteRunner.java:383)
-at org.testng.SuiteRunner.run(SuiteRunner.java:326)
-at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
-at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
-at org.testng.TestNG.runSuitesSequentially(TestNG.java:1249)
-at org.testng.TestNG.runSuitesLocally(TestNG.java:1169)
-at org.testng.TestNG.runSuites(TestNG.java:1092)
-at org.testng.TestNG.run(TestNG.java:1060)
-at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
-at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
-at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
-Caused by: org.opensaml.security.SecurityException: Error during signature verification
-at org.opensaml.security.crypto.SigningUtil.verify(SigningUtil.java:219)
-at org.opensaml.security.crypto.KeySupport.matchKeyPair(KeySupport.java:613)
-at org.opensaml.spring.credential.AbstractX509CredentialFactoryBean.doCreateInstance(AbstractX509CredentialFactoryBean.java:68)
-at org.opensaml.spring.credential.AbstractX509CredentialFactoryBean.doCreateInstance(AbstractX509CredentialFactoryBean.java:1)
-at net.shibboleth.ext.spring.factory.AbstractComponentAwareFactoryBean.createInstance(AbstractComponentAwareFactoryBean.java:49)
-at org.springframework.beans.factory.config.AbstractFactoryBean.afterPropertiesSet(AbstractFactoryBean.java:142)
-at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1802)
-at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1751)
-... 43 more
-Caused by: java.security.SignatureException: Signature length not correct: got 256 but was expecting 128
-at java.base/sun.security.rsa.RSASignature.engineVerify(RSASignature.java:213)
-at java.base/java.security.Signature$Delegate.engineVerify(Signature.java:1435)
-at java.base/java.security.Signature.verify(Signature.java:789)
-at org.opensaml.security.crypto.SigningUtil.verify(SigningUtil.java:216)
-... 50 more
-]]>
-            </full-stacktrace>
-          </exception> <!-- org.springframework.beans.factory.BeanCreationException -->
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- wrongCert -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.X509InlineParserTest at 5fd4f8f5]" started-at="2022-06-08T10:36:16 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:16 EDT" duration-ms="0" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- tearDownTestContext -->
-      </class> <!-- org.opensaml.spring.credential.X509InlineParserTest -->
-      <class name="org.opensaml.spring.trust.ChainingTrustEngineTest">
-        <test-method signature="one()[pri:0, instance:org.opensaml.spring.trust.ChainingTrustEngineTest at 696da30b]" started-at="2022-06-08T10:36:16 EDT" name="one" finished-at="2022-06-08T10:36:16 EDT" duration-ms="59" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- one -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.ChainingTrustEngineTest at 696da30b]" started-at="2022-06-08T10:36:16 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:16 EDT" duration-ms="3" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- tearDownTestContext -->
-        <test-method signature="two()[pri:0, instance:org.opensaml.spring.trust.ChainingTrustEngineTest at 696da30b]" started-at="2022-06-08T10:36:16 EDT" name="two" finished-at="2022-06-08T10:36:16 EDT" duration-ms="38" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- two -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.ChainingTrustEngineTest at 696da30b]" started-at="2022-06-08T10:36:16 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:16 EDT" duration-ms="6" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- tearDownTestContext -->
-      </class> <!-- org.opensaml.spring.trust.ChainingTrustEngineTest -->
-      <class name="org.opensaml.spring.trust.StaticPKIXX509CredentialParserTest">
-        <test-method signature="certPath()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXX509CredentialParserTest at 4e7912d8]" started-at="2022-06-08T10:36:16 EDT" name="certPath" finished-at="2022-06-08T10:36:16 EDT" duration-ms="67" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- certPath -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXX509CredentialParserTest at 4e7912d8]" started-at="2022-06-08T10:36:16 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:16 EDT" duration-ms="1" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- tearDownTestContext -->
-        <test-method signature="nameCheckDisabled()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXX509CredentialParserTest at 4e7912d8]" started-at="2022-06-08T10:36:16 EDT" name="nameCheckDisabled" finished-at="2022-06-08T10:36:16 EDT" duration-ms="36" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- nameCheckDisabled -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXX509CredentialParserTest at 4e7912d8]" started-at="2022-06-08T10:36:16 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:16 EDT" duration-ms="1" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- tearDownTestContext -->
-      </class> <!-- org.opensaml.spring.trust.StaticPKIXX509CredentialParserTest -->
+    <test started-at="2022-07-01T14:26:55 EDT" name="Default test" finished-at="2022-07-01T14:26:56 EDT" duration-ms="1329">
       <class name="org.opensaml.spring.trust.StaticPKIXFactoryBeanTest">
-        <test-method signature="customPropertiesFailsValidation()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXFactoryBeanTest at 53976f5c]" started-at="2022-06-08T10:36:16 EDT" name="customPropertiesFailsValidation" finished-at="2022-06-08T10:36:16 EDT" duration-ms="51" status="PASS">
+        <test-method signature="customPropertiesFailsValidation()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXFactoryBeanTest at 3d6f0054]" started-at="2022-07-01T14:26:56 EDT" name="customPropertiesFailsValidation" finished-at="2022-07-01T14:26:56 EDT" duration-ms="90" status="PASS">
           <exception class="org.springframework.beans.factory.BeanCreationException">
             <message>
               <![CDATA[Error creating bean with name 'StaticPKIXX509CredentialTrustEngine' defined in class path resource [org/opensaml/spring/trust/static-pkix-factory-custom-failsValidation.xml]: Invocation of init method failed; nested exception is org.springframework.beans.FatalBeanException: Certificate revocation checking was force enabled, but no static CRLs were supplied and both CRLDP and OCSP processing is disabled]]>
@@ -587,117 +68,59 @@ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.
           <reporter-output>
           </reporter-output>
         </test-method> <!-- customPropertiesFailsValidation -->
-        <test-method signature="customPropertiesSuccess()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXFactoryBeanTest at 53976f5c]" started-at="2022-06-08T10:36:16 EDT" name="customPropertiesSuccess" finished-at="2022-06-08T10:36:16 EDT" duration-ms="25" status="PASS">
+        <test-method signature="customPropertiesSuccess()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXFactoryBeanTest at 3d6f0054]" started-at="2022-07-01T14:26:56 EDT" name="customPropertiesSuccess" finished-at="2022-07-01T14:26:56 EDT" duration-ms="50" status="PASS">
           <reporter-output>
           </reporter-output>
         </test-method> <!-- customPropertiesSuccess -->
-        <test-method signature="defaults()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXFactoryBeanTest at 53976f5c]" started-at="2022-06-08T10:36:16 EDT" name="defaults" finished-at="2022-06-08T10:36:16 EDT" duration-ms="15" status="PASS">
+        <test-method signature="defaults()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXFactoryBeanTest at 3d6f0054]" started-at="2022-07-01T14:26:56 EDT" name="defaults" finished-at="2022-07-01T14:26:56 EDT" duration-ms="36" status="PASS">
           <reporter-output>
           </reporter-output>
         </test-method> <!-- defaults -->
       </class> <!-- org.opensaml.spring.trust.StaticPKIXFactoryBeanTest -->
-      <class name="org.opensaml.spring.trust.SignatureChainingParserTest">
-        <test-method signature="simple()[pri:0, instance:org.opensaml.spring.trust.SignatureChainingParserTest at 2bfc268b]" started-at="2022-06-08T10:36:16 EDT" name="simple" finished-at="2022-06-08T10:36:16 EDT" duration-ms="36" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- simple -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.SignatureChainingParserTest at 2bfc268b]" started-at="2022-06-08T10:36:16 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:16 EDT" duration-ms="1" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- tearDownTestContext -->
-      </class> <!-- org.opensaml.spring.trust.SignatureChainingParserTest -->
-      <class name="org.opensaml.spring.credential.BasicX509CredentialFactoryBeanTest">
-        <test-method signature="bean()[pri:0, instance:org.opensaml.spring.credential.BasicX509CredentialFactoryBeanTest at 29e495ff]" started-at="2022-06-08T10:36:16 EDT" name="bean" finished-at="2022-06-08T10:36:16 EDT" duration-ms="73" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- bean -->
-      </class> <!-- org.opensaml.spring.credential.BasicX509CredentialFactoryBeanTest -->
-      <class name="org.opensaml.spring.credential.BasicInlineParserTest">
-        <test-method signature="publicOnly()[pri:0, instance:org.opensaml.spring.credential.BasicInlineParserTest at 2f8dad04]" started-at="2022-06-08T10:36:16 EDT" name="publicOnly" finished-at="2022-06-08T10:36:16 EDT" duration-ms="21" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- publicOnly -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.BasicInlineParserTest at 2f8dad04]" started-at="2022-06-08T10:36:16 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:16 EDT" duration-ms="1" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- tearDownTestContext -->
-        <test-method signature="publicPrivate()[pri:0, instance:org.opensaml.spring.credential.BasicInlineParserTest at 2f8dad04]" started-at="2022-06-08T10:36:16 EDT" name="publicPrivate" finished-at="2022-06-08T10:36:16 EDT" duration-ms="35" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- publicPrivate -->
-        <test-method signature="secretBase64()[pri:0, instance:org.opensaml.spring.credential.BasicInlineParserTest at 2f8dad04]" started-at="2022-06-08T10:36:16 EDT" name="secretBase64" finished-at="2022-06-08T10:36:16 EDT" duration-ms="17" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- secretBase64 -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.BasicInlineParserTest at 2f8dad04]" started-at="2022-06-08T10:36:16 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:16 EDT" duration-ms="0" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- tearDownTestContext -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.BasicInlineParserTest at 2f8dad04]" started-at="2022-06-08T10:36:16 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:16 EDT" duration-ms="2" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- tearDownTestContext -->
-        <test-method signature="secretHex()[pri:0, instance:org.opensaml.spring.credential.BasicInlineParserTest at 2f8dad04]" started-at="2022-06-08T10:36:16 EDT" name="secretHex" finished-at="2022-06-08T10:36:16 EDT" duration-ms="15" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- secretHex -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.credential.BasicInlineParserTest at 2f8dad04]" started-at="2022-06-08T10:36:16 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:16 EDT" duration-ms="1" status="PASS">
+      <class name="org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest">
+        <test-method is-config="true" signature="setupDirs()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 57d7f8ca]" started-at="2022-07-01T14:26:55 EDT" name="setupDirs" finished-at="2022-07-01T14:26:55 EDT" duration-ms="17" status="PASS">
           <reporter-output>
           </reporter-output>
-        </test-method> <!-- tearDownTestContext -->
-      </class> <!-- org.opensaml.spring.credential.BasicInlineParserTest -->
-      <class name="org.opensaml.spring.trust.PKIXInlineParserTest">
-        <test-method signature="complex()[pri:0, instance:org.opensaml.spring.trust.PKIXInlineParserTest at 41e1e210]" started-at="2022-06-08T10:36:16 EDT" name="complex" finished-at="2022-06-08T10:36:16 EDT" duration-ms="21" status="PASS">
+        </test-method> <!-- setupDirs -->
+        <test-method signature="mixed()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 57d7f8ca]" started-at="2022-07-01T14:26:55 EDT" name="mixed" finished-at="2022-07-01T14:26:56 EDT" duration-ms="702" status="PASS">
           <reporter-output>
           </reporter-output>
-        </test-method> <!-- complex -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.PKIXInlineParserTest at 41e1e210]" started-at="2022-06-08T10:36:16 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:16 EDT" duration-ms="2" status="PASS">
+        </test-method> <!-- mixed -->
+        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 57d7f8ca]" started-at="2022-07-01T14:26:56 EDT" name="tearDownTestContext" finished-at="2022-07-01T14:26:56 EDT" duration-ms="3" status="PASS">
           <reporter-output>
           </reporter-output>
         </test-method> <!-- tearDownTestContext -->
-        <test-method signature="simple()[pri:0, instance:org.opensaml.spring.trust.PKIXInlineParserTest at 41e1e210]" started-at="2022-06-08T10:36:16 EDT" name="simple" finished-at="2022-06-08T10:36:16 EDT" duration-ms="21" status="PASS">
+        <test-method signature="multipleCert()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 57d7f8ca]" started-at="2022-07-01T14:26:56 EDT" name="multipleCert" finished-at="2022-07-01T14:26:56 EDT" duration-ms="91" status="PASS">
           <reporter-output>
           </reporter-output>
-        </test-method> <!-- simple -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.PKIXInlineParserTest at 41e1e210]" started-at="2022-06-08T10:36:16 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:16 EDT" duration-ms="0" status="PASS">
+        </test-method> <!-- multipleCert -->
+        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 57d7f8ca]" started-at="2022-07-01T14:26:56 EDT" name="tearDownTestContext" finished-at="2022-07-01T14:26:56 EDT" duration-ms="0" status="PASS">
           <reporter-output>
           </reporter-output>
         </test-method> <!-- tearDownTestContext -->
-      </class> <!-- org.opensaml.spring.trust.PKIXInlineParserTest -->
-      <class name="org.opensaml.spring.trust.StaticPKIXSignatureParserTest">
-        <test-method signature="certPath()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXSignatureParserTest at 4944252c]" started-at="2022-06-08T10:36:16 EDT" name="certPath" finished-at="2022-06-08T10:36:16 EDT" duration-ms="20" status="PASS">
+        <test-method signature="singleCert()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 57d7f8ca]" started-at="2022-07-01T14:26:56 EDT" name="singleCert" finished-at="2022-07-01T14:26:56 EDT" duration-ms="72" status="PASS">
           <reporter-output>
           </reporter-output>
-        </test-method> <!-- certPath -->
-        <test-method signature="nameCheckDisabled()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXSignatureParserTest at 4944252c]" started-at="2022-06-08T10:36:16 EDT" name="nameCheckDisabled" finished-at="2022-06-08T10:36:16 EDT" duration-ms="22" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- nameCheckDisabled -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXSignatureParserTest at 4944252c]" started-at="2022-06-08T10:36:16 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:16 EDT" duration-ms="0" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- tearDownTestContext -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXSignatureParserTest at 4944252c]" started-at="2022-06-08T10:36:16 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:16 EDT" duration-ms="0" status="PASS">
+        </test-method> <!-- singleCert -->
+        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 57d7f8ca]" started-at="2022-07-01T14:26:56 EDT" name="tearDownTestContext" finished-at="2022-07-01T14:26:56 EDT" duration-ms="0" status="PASS">
           <reporter-output>
           </reporter-output>
         </test-method> <!-- tearDownTestContext -->
-        <test-method signature="simple()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXSignatureParserTest at 4944252c]" started-at="2022-06-08T10:36:16 EDT" name="simple" finished-at="2022-06-08T10:36:17 EDT" duration-ms="20" status="PASS">
+        <test-method signature="singleKey()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 57d7f8ca]" started-at="2022-07-01T14:26:56 EDT" name="singleKey" finished-at="2022-07-01T14:26:56 EDT" duration-ms="59" status="PASS">
           <reporter-output>
           </reporter-output>
-        </test-method> <!-- simple -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXSignatureParserTest at 4944252c]" started-at="2022-06-08T10:36:17 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:17 EDT" duration-ms="1" status="PASS">
+        </test-method> <!-- singleKey -->
+        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest at 57d7f8ca]" started-at="2022-07-01T14:26:56 EDT" name="tearDownTestContext" finished-at="2022-07-01T14:26:56 EDT" duration-ms="1" status="PASS">
           <reporter-output>
           </reporter-output>
         </test-method> <!-- tearDownTestContext -->
-        <test-method signature="values()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXSignatureParserTest at 4944252c]" started-at="2022-06-08T10:36:17 EDT" name="values" finished-at="2022-06-08T10:36:17 EDT" duration-ms="44" status="PASS">
-          <reporter-output>
-          </reporter-output>
-        </test-method> <!-- values -->
-        <test-method is-config="true" signature="tearDownTestContext()[pri:0, instance:org.opensaml.spring.trust.StaticPKIXSignatureParserTest at 4944252c]" started-at="2022-06-08T10:36:17 EDT" name="tearDownTestContext" finished-at="2022-06-08T10:36:17 EDT" duration-ms="1" status="PASS">
+      </class> <!-- org.opensaml.spring.trust.StaticExplicitKeyFactoryBeanTest -->
+      <class name="org.opensaml.spring.credential.BasicX509CredentialFactoryBeanTest">
+        <test-method signature="bean()[pri:0, instance:org.opensaml.spring.credential.BasicX509CredentialFactoryBeanTest at 505fc5a4]" started-at="2022-07-01T14:26:56 EDT" name="bean" finished-at="2022-07-01T14:26:56 EDT" duration-ms="152" status="PASS">
           <reporter-output>
           </reporter-output>
-        </test-method> <!-- tearDownTestContext -->
-      </class> <!-- org.opensaml.spring.trust.StaticPKIXSignatureParserTest -->
+        </test-method> <!-- bean -->
+      </class> <!-- org.opensaml.spring.credential.BasicX509CredentialFactoryBeanTest -->
     </test> <!-- Default test -->
   </suite> <!-- Default suite -->
 </testng-results>
diff --git a/opensaml-storage-api/.classpath b/opensaml-storage-api/.classpath
index 77be441ed..8c2ac107c 100644
--- a/opensaml-storage-api/.classpath
+++ b/opensaml-storage-api/.classpath
@@ -32,6 +32,7 @@
 	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
 		<attributes>
 			<attribute name="maven.pomderived" value="true"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
 		</attributes>
 	</classpathentry>
 	<classpathentry kind="output" path="target/classes"/>
diff --git a/opensaml-storage-api/.project b/opensaml-storage-api/.project
index f2eb3de06..1188543d3 100644
--- a/opensaml-storage-api/.project
+++ b/opensaml-storage-api/.project
@@ -1,23 +1,41 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-    <name>opensaml-storage-api</name>
-    <comment></comment>
-    <projects>
-    </projects>
-    <buildSpec>
-        <buildCommand>
-            <name>org.eclipse.jdt.core.javabuilder</name>
-        </buildCommand>
-        <buildCommand>
-            <name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
-        </buildCommand>
-        <buildCommand>
-            <name>org.eclipse.m2e.core.maven2Builder</name>
-        </buildCommand>
-    </buildSpec>
-    <natures>
-        <nature>org.eclipse.jdt.core.javanature</nature>
-        <nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
-        <nature>org.eclipse.m2e.core.maven2Nature</nature>
-    </natures>
-</projectDescription>
\ No newline at end of file
+	<name>opensaml-storage-api</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.wst.common.project.facet.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.validation.validationbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
+	</natures>
+</projectDescription>
diff --git a/opensaml-storage-api/.settings/org.eclipse.wst.common.component b/opensaml-storage-api/.settings/org.eclipse.wst.common.component
new file mode 100644
index 000000000..79f602947
--- /dev/null
+++ b/opensaml-storage-api/.settings/org.eclipse.wst.common.component
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
+    <wb-module deploy-name="opensaml-storage-api">
+        <wb-resource deploy-path="/" source-path="/src/main/java"/>
+        <wb-resource deploy-path="/" source-path="/src/main/resources"/>
+    </wb-module>
+</project-modules>
diff --git a/opensaml-storage-api/.settings/org.eclipse.wst.common.project.facet.core.xml b/opensaml-storage-api/.settings/org.eclipse.wst.common.project.facet.core.xml
new file mode 100644
index 000000000..9ba61b70c
--- /dev/null
+++ b/opensaml-storage-api/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+  <installed facet="java" version="17"/>
+  <installed facet="jst.utility" version="1.0"/>
+</faceted-project>
diff --git a/opensaml-storage-impl/.classpath b/opensaml-storage-impl/.classpath
index 77be441ed..8c2ac107c 100644
--- a/opensaml-storage-impl/.classpath
+++ b/opensaml-storage-impl/.classpath
@@ -32,6 +32,7 @@
 	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
 		<attributes>
 			<attribute name="maven.pomderived" value="true"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
 		</attributes>
 	</classpathentry>
 	<classpathentry kind="output" path="target/classes"/>
diff --git a/opensaml-storage-impl/.project b/opensaml-storage-impl/.project
index 94ba85ac2..af2293e36 100644
--- a/opensaml-storage-impl/.project
+++ b/opensaml-storage-impl/.project
@@ -5,6 +5,11 @@
 	<projects>
 	</projects>
 	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.wst.common.project.facet.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 		<buildCommand>
 			<name>org.eclipse.jdt.core.javabuilder</name>
 			<arguments>
@@ -25,11 +30,18 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.validation.validationbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.springframework.ide.eclipse.core.springnature</nature>
 		<nature>org.eclipse.jdt.core.javanature</nature>
 		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
 		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
 	</natures>
 </projectDescription>
diff --git a/opensaml-storage-impl/.settings/org.eclipse.wst.common.component b/opensaml-storage-impl/.settings/org.eclipse.wst.common.component
new file mode 100644
index 000000000..1af0866c6
--- /dev/null
+++ b/opensaml-storage-impl/.settings/org.eclipse.wst.common.component
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
+    <wb-module deploy-name="opensaml-storage-impl">
+        <wb-resource deploy-path="/" source-path="/src/main/java"/>
+        <wb-resource deploy-path="/" source-path="/src/main/resources"/>
+    </wb-module>
+</project-modules>
diff --git a/opensaml-storage-impl/.settings/org.eclipse.wst.common.project.facet.core.xml b/opensaml-storage-impl/.settings/org.eclipse.wst.common.project.facet.core.xml
new file mode 100644
index 000000000..9ba61b70c
--- /dev/null
+++ b/opensaml-storage-impl/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+  <installed facet="java" version="17"/>
+  <installed facet="jst.utility" version="1.0"/>
+</faceted-project>
diff --git a/opensaml-xmlsec-api/.classpath b/opensaml-xmlsec-api/.classpath
index 77be441ed..8c2ac107c 100644
--- a/opensaml-xmlsec-api/.classpath
+++ b/opensaml-xmlsec-api/.classpath
@@ -32,6 +32,7 @@
 	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
 		<attributes>
 			<attribute name="maven.pomderived" value="true"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
 		</attributes>
 	</classpathentry>
 	<classpathentry kind="output" path="target/classes"/>
diff --git a/opensaml-xmlsec-api/.project b/opensaml-xmlsec-api/.project
index e8b9746ff..fb48bc1ae 100644
--- a/opensaml-xmlsec-api/.project
+++ b/opensaml-xmlsec-api/.project
@@ -5,6 +5,11 @@
 	<projects>
 	</projects>
 	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.wst.common.project.facet.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 		<buildCommand>
 			<name>org.eclipse.jdt.core.javabuilder</name>
 			<arguments>
@@ -20,10 +25,17 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.validation.validationbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.m2e.core.maven2Nature</nature>
 		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
 		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
 	</natures>
 </projectDescription>
diff --git a/opensaml-xmlsec-api/.settings/org.eclipse.wst.common.component b/opensaml-xmlsec-api/.settings/org.eclipse.wst.common.component
new file mode 100644
index 000000000..6e7682521
--- /dev/null
+++ b/opensaml-xmlsec-api/.settings/org.eclipse.wst.common.component
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
+    <wb-module deploy-name="opensaml-xmlsec-api">
+        <wb-resource deploy-path="/" source-path="/src/main/java"/>
+        <wb-resource deploy-path="/" source-path="/src/main/resources"/>
+    </wb-module>
+</project-modules>
diff --git a/opensaml-xmlsec-api/.settings/org.eclipse.wst.common.project.facet.core.xml b/opensaml-xmlsec-api/.settings/org.eclipse.wst.common.project.facet.core.xml
new file mode 100644
index 000000000..9ba61b70c
--- /dev/null
+++ b/opensaml-xmlsec-api/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+  <installed facet="java" version="17"/>
+  <installed facet="jst.utility" version="1.0"/>
+</faceted-project>
diff --git a/opensaml-xmlsec-impl/.classpath b/opensaml-xmlsec-impl/.classpath
index 77be441ed..8c2ac107c 100644
--- a/opensaml-xmlsec-impl/.classpath
+++ b/opensaml-xmlsec-impl/.classpath
@@ -32,6 +32,7 @@
 	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
 		<attributes>
 			<attribute name="maven.pomderived" value="true"/>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
 		</attributes>
 	</classpathentry>
 	<classpathentry kind="output" path="target/classes"/>
diff --git a/opensaml-xmlsec-impl/.project b/opensaml-xmlsec-impl/.project
index cd8ef9240..572d9ca39 100644
--- a/opensaml-xmlsec-impl/.project
+++ b/opensaml-xmlsec-impl/.project
@@ -5,6 +5,11 @@
 	<projects>
 	</projects>
 	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.wst.common.project.facet.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 		<buildCommand>
 			<name>org.eclipse.jdt.core.javabuilder</name>
 			<arguments>
@@ -20,10 +25,17 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.validation.validationbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.m2e.core.maven2Nature</nature>
 		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
 		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
 	</natures>
 </projectDescription>
diff --git a/opensaml-xmlsec-impl/.settings/org.eclipse.wst.common.component b/opensaml-xmlsec-impl/.settings/org.eclipse.wst.common.component
new file mode 100644
index 000000000..f1178b3dc
--- /dev/null
+++ b/opensaml-xmlsec-impl/.settings/org.eclipse.wst.common.component
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
+    <wb-module deploy-name="opensaml-xmlsec-impl">
+        <wb-resource deploy-path="/" source-path="/src/main/java"/>
+        <wb-resource deploy-path="/" source-path="/src/main/resources"/>
+    </wb-module>
+</project-modules>
diff --git a/opensaml-xmlsec-impl/.settings/org.eclipse.wst.common.project.facet.core.xml b/opensaml-xmlsec-impl/.settings/org.eclipse.wst.common.project.facet.core.xml
new file mode 100644
index 000000000..9ba61b70c
--- /dev/null
+++ b/opensaml-xmlsec-impl/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+  <installed facet="java" version="17"/>
+  <installed facet="jst.utility" version="1.0"/>
+</faceted-project>

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list