You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by co...@apache.org on 2015/07/07 17:18:47 UTC
cxf git commit: An efficiency improvement when reconciling encrypted
and signed refs
Repository: cxf
Updated Branches:
refs/heads/master f3cfadb6e -> 4ddc8d5b3
An efficiency improvement when reconciling encrypted and signed refs
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/4ddc8d5b
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/4ddc8d5b
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/4ddc8d5b
Branch: refs/heads/master
Commit: 4ddc8d5b349e7ab78d5562ee002fc7baef33b5f1
Parents: f3cfadb
Author: Colm O hEigeartaigh <co...@apache.org>
Authored: Tue Jul 7 15:37:09 2015 +0100
Committer: Colm O hEigeartaigh <co...@apache.org>
Committed: Tue Jul 7 15:37:23 2015 +0100
----------------------------------------------------------------------
.../ws/security/wss4j/CryptoCoverageUtil.java | 38 ++++++++++++--------
1 file changed, 24 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/4ddc8d5b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/CryptoCoverageUtil.java
----------------------------------------------------------------------
diff --git a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/CryptoCoverageUtil.java b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/CryptoCoverageUtil.java
index c2dba48..31e0319 100644
--- a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/CryptoCoverageUtil.java
+++ b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/CryptoCoverageUtil.java
@@ -69,21 +69,31 @@ public final class CryptoCoverageUtil {
final List<WSDataRef> encryptedSignedRefs = new LinkedList<>();
- for (WSDataRef encryptedRef : encryptedRefs) {
- for (WSDataRef signedRef : signedRefs) {
- if (signedRef.getProtectedElement() == encryptedRef.getEncryptedElement()) {
+ for (WSDataRef signedRef : signedRefs) {
+ Element protectedElement = signedRef.getProtectedElement();
+ if (protectedElement != null
+ && ("EncryptedData".equals(protectedElement.getLocalName())
+ && WSConstants.ENC_NS.equals(protectedElement.getNamespaceURI())
+ || WSConstants.ENCRYPTED_HEADER.equals(protectedElement.getLocalName())
+ && WSConstants.WSSE11_NS.equals(protectedElement.getNamespaceURI())
+ || WSConstants.ENCRYPED_ASSERTION_LN.equals(protectedElement.getLocalName())
+ && WSConstants.SAML2_NS.equals(protectedElement.getNamespaceURI()))) {
+ for (WSDataRef encryptedRef : encryptedRefs) {
+ if (protectedElement == encryptedRef.getEncryptedElement()) {
- final WSDataRef encryptedSignedRef = new WSDataRef();
- encryptedSignedRef.setWsuId(signedRef.getWsuId());
-
- encryptedSignedRef.setContent(false);
- encryptedSignedRef.setName(encryptedRef.getName());
- encryptedSignedRef.setProtectedElement(encryptedRef
- .getProtectedElement());
-
- encryptedSignedRef.setXpath(encryptedRef.getXpath());
-
- encryptedSignedRefs.add(encryptedSignedRef);
+ final WSDataRef encryptedSignedRef = new WSDataRef();
+ encryptedSignedRef.setWsuId(signedRef.getWsuId());
+
+ encryptedSignedRef.setContent(false);
+ encryptedSignedRef.setName(encryptedRef.getName());
+ encryptedSignedRef.setProtectedElement(encryptedRef
+ .getProtectedElement());
+
+ encryptedSignedRef.setXpath(encryptedRef.getXpath());
+
+ encryptedSignedRefs.add(encryptedSignedRef);
+ break;
+ }
}
}
}