Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
The streaming code has a problem when processing a request which contains a Holder-of-key SAML Assertion with a Subject which has an EncryptedKey in the KeyInfo, and a Signature in the security header which uses HMAC + points to the SAML Assertion.
The following code in SecurityTokenFactoryImpl:
if (keyInfoType != null) {
final SecurityTokenReferenceType securityTokenReferenceType
= XMLSecurityUtils.getQNameType(keyInfoType.getContent(), WSSConstants.TAG_wsse_SecurityTokenReference);
... bypasses the EncryptedKey, and instead only returns a SecurityToken of the (encrypting) certificate. Instead it should detect that the immediate child of KeyInfo is an EncryptedKey + process this accordingly.