|
|
|
@ -1,5 +1,5 @@ |
|
|
|
/* |
|
|
|
/* |
|
|
|
* Copyright 2002-2024 the original author or authors. |
|
|
|
* Copyright 2002-2025 the original author or authors. |
|
|
|
* |
|
|
|
* |
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
* you may not use this file except in compliance with the License. |
|
|
|
* you may not use this file except in compliance with the License. |
|
|
|
@ -482,7 +482,6 @@ final class OpenSaml4Template implements OpenSamlOperations { |
|
|
|
|
|
|
|
|
|
|
|
private void decryptResponse(Response response) { |
|
|
|
private void decryptResponse(Response response) { |
|
|
|
Collection<Assertion> decrypteds = new ArrayList<>(); |
|
|
|
Collection<Assertion> decrypteds = new ArrayList<>(); |
|
|
|
Collection<EncryptedAssertion> encrypteds = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int count = 0; |
|
|
|
int count = 0; |
|
|
|
int size = response.getEncryptedAssertions().size(); |
|
|
|
int size = response.getEncryptedAssertions().size(); |
|
|
|
@ -492,7 +491,6 @@ final class OpenSaml4Template implements OpenSamlOperations { |
|
|
|
try { |
|
|
|
try { |
|
|
|
Assertion decrypted = this.decrypter.decrypt(encrypted); |
|
|
|
Assertion decrypted = this.decrypter.decrypt(encrypted); |
|
|
|
if (decrypted != null) { |
|
|
|
if (decrypted != null) { |
|
|
|
encrypteds.add(encrypted); |
|
|
|
|
|
|
|
decrypteds.add(decrypted); |
|
|
|
decrypteds.add(decrypted); |
|
|
|
} |
|
|
|
} |
|
|
|
count++; |
|
|
|
count++; |
|
|
|
@ -502,7 +500,6 @@ final class OpenSaml4Template implements OpenSamlOperations { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
response.getEncryptedAssertions().removeAll(encrypteds); |
|
|
|
|
|
|
|
response.getAssertions().addAll(decrypteds); |
|
|
|
response.getAssertions().addAll(decrypteds); |
|
|
|
|
|
|
|
|
|
|
|
// Re-marshall the response so that any ID attributes within the decrypted
|
|
|
|
// Re-marshall the response so that any ID attributes within the decrypted
|
|
|
|
@ -534,7 +531,6 @@ final class OpenSaml4Template implements OpenSamlOperations { |
|
|
|
NameID decrypted = (NameID) this.decrypter.decrypt(d.getEncryptedID()); |
|
|
|
NameID decrypted = (NameID) this.decrypter.decrypt(d.getEncryptedID()); |
|
|
|
if (decrypted != null) { |
|
|
|
if (decrypted != null) { |
|
|
|
d.setNameID(decrypted); |
|
|
|
d.setNameID(decrypted); |
|
|
|
d.setEncryptedID(null); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
catch (DecryptionException ex) { |
|
|
|
catch (DecryptionException ex) { |
|
|
|
@ -548,12 +544,10 @@ final class OpenSaml4Template implements OpenSamlOperations { |
|
|
|
|
|
|
|
|
|
|
|
private void decryptAttributes(AttributeStatement statement) { |
|
|
|
private void decryptAttributes(AttributeStatement statement) { |
|
|
|
Collection<Attribute> decrypteds = new ArrayList<>(); |
|
|
|
Collection<Attribute> decrypteds = new ArrayList<>(); |
|
|
|
Collection<EncryptedAttribute> encrypteds = new ArrayList<>(); |
|
|
|
|
|
|
|
for (EncryptedAttribute encrypted : statement.getEncryptedAttributes()) { |
|
|
|
for (EncryptedAttribute encrypted : statement.getEncryptedAttributes()) { |
|
|
|
try { |
|
|
|
try { |
|
|
|
Attribute decrypted = this.decrypter.decrypt(encrypted); |
|
|
|
Attribute decrypted = this.decrypter.decrypt(encrypted); |
|
|
|
if (decrypted != null) { |
|
|
|
if (decrypted != null) { |
|
|
|
encrypteds.add(encrypted); |
|
|
|
|
|
|
|
decrypteds.add(decrypted); |
|
|
|
decrypteds.add(decrypted); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
@ -561,7 +555,6 @@ final class OpenSaml4Template implements OpenSamlOperations { |
|
|
|
throw new Saml2Exception(ex); |
|
|
|
throw new Saml2Exception(ex); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
statement.getEncryptedAttributes().removeAll(encrypteds); |
|
|
|
|
|
|
|
statement.getAttributes().addAll(decrypteds); |
|
|
|
statement.getAttributes().addAll(decrypteds); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -572,7 +565,6 @@ final class OpenSaml4Template implements OpenSamlOperations { |
|
|
|
NameID decrypted = (NameID) this.decrypter.decrypt(subject.getEncryptedID()); |
|
|
|
NameID decrypted = (NameID) this.decrypter.decrypt(subject.getEncryptedID()); |
|
|
|
if (decrypted != null) { |
|
|
|
if (decrypted != null) { |
|
|
|
subject.setNameID(decrypted); |
|
|
|
subject.setNameID(decrypted); |
|
|
|
subject.setEncryptedID(null); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
catch (final DecryptionException ex) { |
|
|
|
catch (final DecryptionException ex) { |
|
|
|
@ -586,7 +578,6 @@ final class OpenSaml4Template implements OpenSamlOperations { |
|
|
|
NameID decrypted = (NameID) this.decrypter.decrypt(sc.getEncryptedID()); |
|
|
|
NameID decrypted = (NameID) this.decrypter.decrypt(sc.getEncryptedID()); |
|
|
|
if (decrypted != null) { |
|
|
|
if (decrypted != null) { |
|
|
|
sc.setNameID(decrypted); |
|
|
|
sc.setNameID(decrypted); |
|
|
|
sc.setEncryptedID(null); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
catch (final DecryptionException ex) { |
|
|
|
catch (final DecryptionException ex) { |
|
|
|
@ -603,7 +594,6 @@ final class OpenSaml4Template implements OpenSamlOperations { |
|
|
|
NameID decrypted = (NameID) this.decrypter.decrypt(request.getEncryptedID()); |
|
|
|
NameID decrypted = (NameID) this.decrypter.decrypt(request.getEncryptedID()); |
|
|
|
if (decrypted != null) { |
|
|
|
if (decrypted != null) { |
|
|
|
request.setNameID(decrypted); |
|
|
|
request.setNameID(decrypted); |
|
|
|
request.setEncryptedID(null); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
catch (DecryptionException ex) { |
|
|
|
catch (DecryptionException ex) { |
|
|
|
|