Author: coheigea
Date: Wed Jan 29 15:26:26 2014
New Revision: 1562477
URL: http://svn.apache.org/r1562477
Log:
Add outbound support for streaming Signatures with no KeyInfo Elements
Modified:
cxf/trunk/rt/rs/security/xml/src/main/java/org/apache/cxf/rs/security/xml/XmlSecOutInterceptor.java
Modified:
cxf/trunk/rt/rs/security/xml/src/main/java/org/apache/cxf/rs/security/xml/XmlSecOutInterceptor.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/rs/security/xml/src/main/java/org/apache/cxf/rs/security/xml/XmlSecOutInterceptor.java?rev=1562477&r1=1562476&r2=1562477&view=diff
==============================================================================
---
cxf/trunk/rt/rs/security/xml/src/main/java/org/apache/cxf/rs/security/xml/XmlSecOutInterceptor.java
(original)
+++
cxf/trunk/rt/rs/security/xml/src/main/java/org/apache/cxf/rs/security/xml/XmlSecOutInterceptor.java
Wed Jan 29 15:26:26 2014
@@ -88,6 +88,7 @@ public class XmlSecOutInterceptor implem
private boolean encryptRequest;
private List<QName> elementsToSign = new ArrayList<QName>();
private List<QName> elementsToEncrypt = new ArrayList<QName>();
+ private boolean keyInfoMustBeAvailable = true;
public XmlSecOutInterceptor() {
setPhase(Phase.PRE_STREAM);
@@ -282,8 +283,12 @@ public class XmlSecOutInterceptor implem
? Constants.ALGO_ID_DIGEST_SHA1 :
sigProps.getSignatureDigestAlgo();
properties.setSignatureDigestAlgorithm(digestAlgo);
- properties.setSignatureKeyIdentifier(
- convertKeyIdentifier(sigProps.getSignatureKeyIdType()));
+ if (this.keyInfoMustBeAvailable) {
+ properties.setSignatureKeyIdentifier(
+ convertKeyIdentifier(sigProps.getSignatureKeyIdType()));
+ } else {
+
properties.setSignatureKeyIdentifier(SecurityTokenConstants.KeyIdentifier_NoKeyInfo);
+ }
String c14nMethod = "http://www.w3.org/TR/2001/REC-xml-c14n-20010315";
if (sigProps.getSignatureC14Method() != null) {
@@ -369,6 +374,10 @@ public class XmlSecOutInterceptor implem
encryptionProperties.setEncryptionDigestAlgo(algo);
}
+ public void setKeyInfoMustBeAvailable(boolean use) {
+ this.keyInfoMustBeAvailable = use;
+ }
+
public void setSignatureProperties(SignatureProperties props) {
this.sigProps = props;
}