Skip to content

Commit 20778d8

Browse files
anderson.martinsanderson.martins
authored andcommitted
EQUALS-3902 Permitir o uso de multiplos fingerprint de certificados do
IdP na validação de assinatura
1 parent ea3e51a commit 20778d8

File tree

1 file changed

+6
-3
lines changed
  • core/src/main/java/com/onelogin/saml2/util

1 file changed

+6
-3
lines changed

core/src/main/java/com/onelogin/saml2/util/Util.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -921,10 +921,13 @@ public static Boolean validateSignNode(Node signNode, X509Certificate cert, Stri
921921
res = signature.checkSignatureValue(cert);
922922
} else {
923923
KeyInfo keyInfo = signature.getKeyInfo();
924-
if (keyInfo != null && keyInfo.containsX509Data()) {
924+
if (fingerprint != null && keyInfo != null && keyInfo.containsX509Data()) {
925925
X509Certificate providedCert = keyInfo.getX509Certificate();
926-
if (fingerprint.equals(calculateX509Fingerprint(providedCert, alg))) {
927-
res = signature.checkSignatureValue(providedCert);
926+
String calculatedFingerprint = calculateX509Fingerprint(providedCert, alg);
927+
for (String fingerprintStr : fingerprint.split(",")) {
928+
if (calculatedFingerprint.equals(fingerprintStr.trim())) {
929+
res = signature.checkSignatureValue(providedCert);
930+
}
928931
}
929932
}
930933
}

0 commit comments

Comments
 (0)