Author: coheigea
Date: Mon Dec 9 15:52:33 2013
New Revision: 1549599
URL: http://svn.apache.org/r1549599
Log:
Try to find a secure part by Id first. Required for a use-case of
signing/encrypting two BinarySecurityTokens (Kerberos SignedSupportingToken +
Asymmetric ProtectTokens)
Modified:
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/EncryptOutputProcessor.java
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/WSSSignatureOutputProcessor.java
Modified:
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/EncryptOutputProcessor.java
URL:
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/EncryptOutputProcessor.java?rev=1549599&r1=1549598&r2=1549599&view=diff
==============================================================================
---
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/EncryptOutputProcessor.java
(original)
+++
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/EncryptOutputProcessor.java
Mon Dec 9 15:52:33 2013
@@ -128,6 +128,43 @@ public class EncryptOutputProcessor exte
outputProcessorChain.processEvent(xmlSecEvent);
}
+
+ @Override
+ protected SecurePart securePartMatches(XMLSecStartElement
xmlSecStartElement, Map<Object, SecurePart> secureParts) {
+
+ if (xmlSecStartElement.getOnElementDeclaredAttributes().size() >= 0) {
+ Attribute attribute =
xmlSecStartElement.getAttributeByName(WSSConstants.ATT_wsu_Id);
+ if (attribute != null) {
+ SecurePart securePart = secureParts.get(attribute.getValue());
+ if (securePart != null) {
+ return securePart;
+ }
+ }
+ attribute =
xmlSecStartElement.getAttributeByName(WSSConstants.ATT_NULL_Id);
+ if (attribute != null) {
+ SecurePart securePart = secureParts.get(attribute.getValue());
+ if (securePart != null) {
+ return securePart;
+ }
+ }
+ attribute =
xmlSecStartElement.getAttributeByName(WSSConstants.ATT_NULL_ID);
+ if (attribute != null) {
+ SecurePart securePart = secureParts.get(attribute.getValue());
+ if (securePart != null) {
+ return securePart;
+ }
+ }
+ attribute =
xmlSecStartElement.getAttributeByName(WSSConstants.ATT_NULL_AssertionID);
+ if (attribute != null) {
+ SecurePart securePart = secureParts.get(attribute.getValue());
+ if (securePart != null) {
+ return securePart;
+ }
+ }
+ }
+
+ return secureParts.get(xmlSecStartElement.getName());
+ }
@Override
public void doFinalInternal(OutputProcessorChain outputProcessorChain)
throws XMLSecurityException {
Modified:
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/WSSSignatureOutputProcessor.java
URL:
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/WSSSignatureOutputProcessor.java?rev=1549599&r1=1549598&r2=1549599&view=diff
==============================================================================
---
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/WSSSignatureOutputProcessor.java
(original)
+++
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/WSSSignatureOutputProcessor.java
Mon Dec 9 15:52:33 2013
@@ -250,41 +250,39 @@ public class WSSSignatureOutputProcessor
@Override
protected SecurePart securePartMatches(XMLSecStartElement
xmlSecStartElement, Map<Object, SecurePart> secureParts) {
- SecurePart securePart = secureParts.get(xmlSecStartElement.getName());
- if (securePart == null) {
- if (xmlSecStartElement.getOnElementDeclaredAttributes().size() ==
0) {
- return null;
- }
+
+ if (xmlSecStartElement.getOnElementDeclaredAttributes().size() >= 0) {
Attribute attribute =
xmlSecStartElement.getAttributeByName(WSSConstants.ATT_wsu_Id);
if (attribute != null) {
- securePart = secureParts.get(attribute.getValue());
+ SecurePart securePart = secureParts.get(attribute.getValue());
if (securePart != null) {
return securePart;
}
}
attribute =
xmlSecStartElement.getAttributeByName(WSSConstants.ATT_NULL_Id);
if (attribute != null) {
- securePart = secureParts.get(attribute.getValue());
+ SecurePart securePart = secureParts.get(attribute.getValue());
if (securePart != null) {
return securePart;
}
}
attribute =
xmlSecStartElement.getAttributeByName(WSSConstants.ATT_NULL_ID);
if (attribute != null) {
- securePart = secureParts.get(attribute.getValue());
+ SecurePart securePart = secureParts.get(attribute.getValue());
if (securePart != null) {
return securePart;
}
}
attribute =
xmlSecStartElement.getAttributeByName(WSSConstants.ATT_NULL_AssertionID);
if (attribute != null) {
- securePart = secureParts.get(attribute.getValue());
+ SecurePart securePart = secureParts.get(attribute.getValue());
if (securePart != null) {
return securePart;
}
}
}
- return securePart;
+
+ return secureParts.get(xmlSecStartElement.getName());
}
class InternalWSSSignatureOutputProcessor extends
InternalSignatureOutputProcessor {