Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
Description
PolicyBasedResultsValidator uses wsu:Id of signed elements to validate that headers were signed. If header was encrypted before signing, wsu:Id is id on EncryptedHeader element, which was detached from header by WSS4J and replaced with the decrypted header. Consequently the check fails and validator incorrectly throws an exception.
Also RampartUtil excludes child text nodes when converting soap header blocks, i.e. a header block with a single child text node would be incorrectly converted to an empty header block. See attached patch for painless fix to both problems.