[java-identity-provider] branch main updated: IDP-2317 - Validation of X.509 client certificate chain breaks
Scott Cantor
cantor.2 at osu.edu
Thu Aug 22 16:49:34 UTC 2024
This is an automated email from the git hooks/post-receive script.
scantor pushed a commit to branch main
in repository java-identity-provider.
View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=de91c013ad8a2679d86144dda0b61f7583ec5b67
The following commit(s) were added to refs/heads/main by this push:
new de91c013a IDP-2317 - Validation of X.509 client certificate chain breaks
de91c013a is described below
commit de91c013ad8a2679d86144dda0b61f7583ec5b67
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Thu Aug 22 12:49:13 2024 -0400
IDP-2317 - Validation of X.509 client certificate chain breaks
https://shibboleth.atlassian.net/browse/IDP-2317
---
.../authn/impl/X509CertificateCredentialValidator.java | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/X509CertificateCredentialValidator.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/X509CertificateCredentialValidator.java
index 9a36bf3b9..da3951941 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/X509CertificateCredentialValidator.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/X509CertificateCredentialValidator.java
@@ -16,6 +16,8 @@ package net.shibboleth.idp.authn.impl;
import java.security.cert.Certificate;
import java.security.cert.X509Certificate;
+import java.util.ArrayList;
+import java.util.Collection;
import java.util.function.Function;
import javax.annotation.Nonnull;
@@ -124,12 +126,13 @@ public class X509CertificateCredentialValidator extends AbstractCredentialValida
try {
final BasicX509Credential cred = new BasicX509Credential((X509Certificate) cert);
if (!certContext.getIntermediates().isEmpty()) {
- cred.getEntityCertificateChain().add((X509Certificate) certContext.getCertificate());
- for (final Certificate extra : certContext.getIntermediates()) {
- if (extra instanceof X509Certificate) {
- cred.getEntityCertificateChain().add((X509Certificate) extra);
- }
- }
+ final Collection<X509Certificate> chain = new ArrayList<>();
+ chain.add((X509Certificate) cert);
+ certContext.getIntermediates().stream()
+ .filter(X509Certificate.class::isInstance)
+ .map(X509Certificate.class::cast)
+ .forEach(chain::add);
+ cred.setEntityCertificateChain(chain);
}
assert trustEngine != null;
if (trustEngine.validate(cred, new CriteriaSet())) {
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list