You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wss4j-dev@ws.apache.org by co...@apache.org on 2009/08/21 15:43:43 UTC
svn commit: r806549 [2/2] - in /webservices/wss4j/trunk:
src/org/apache/ws/security/ src/org/apache/ws/security/action/
src/org/apache/ws/security/components/crypto/
src/org/apache/ws/security/handler/ src/org/apache/ws/security/message/
src/org/apache...
Modified: webservices/wss4j/trunk/src/org/apache/ws/security/saml/WSSecSignatureSAML.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/saml/WSSecSignatureSAML.java?rev=806549&r1=806548&r2=806549&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/saml/WSSecSignatureSAML.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/saml/WSSecSignatureSAML.java Fri Aug 21 13:43:42 2009
@@ -27,26 +27,13 @@
import org.apache.ws.security.WSEncryptionPart;
import org.apache.ws.security.WSSecurityException;
import org.apache.ws.security.components.crypto.Crypto;
-import org.apache.ws.security.message.EnvelopeIdResolver;
import org.apache.ws.security.message.WSSecHeader;
import org.apache.ws.security.message.WSSecSignature;
import org.apache.ws.security.message.token.Reference;
import org.apache.ws.security.message.token.SecurityTokenReference;
import org.apache.ws.security.message.token.X509Security;
-import org.apache.ws.security.transform.STRTransform;
import org.apache.ws.security.util.WSSecurityUtil;
-import org.apache.xml.security.algorithms.SignatureAlgorithm;
-import org.apache.xml.security.exceptions.XMLSecurityException;
-import org.apache.xml.security.keys.KeyInfo;
-import org.apache.xml.security.keys.content.X509Data;
-import org.apache.xml.security.keys.content.x509.XMLX509Certificate;
-import org.apache.xml.security.signature.XMLSignature;
-import org.apache.xml.security.signature.XMLSignatureException;
-import org.apache.xml.security.transforms.TransformationException;
-import org.apache.xml.security.transforms.Transforms;
-import org.apache.xml.security.transforms.params.InclusiveNamespaces;
-import org.apache.xml.security.utils.Constants;
-import org.apache.xml.security.utils.XMLUtils;
+
import org.opensaml.SAMLAssertion;
import org.opensaml.SAMLException;
import org.opensaml.SAMLObject;
@@ -58,14 +45,25 @@
import java.security.cert.X509Certificate;
import java.util.Iterator;
import java.util.List;
-import java.util.Set;
import java.util.Vector;
+import javax.xml.crypto.XMLStructure;
+import javax.xml.crypto.dom.DOMStructure;
+import javax.xml.crypto.dsig.SignatureMethod;
+import javax.xml.crypto.dsig.SignedInfo;
+import javax.xml.crypto.dsig.XMLSignContext;
+import javax.xml.crypto.dsig.XMLSignatureFactory;
+import javax.xml.crypto.dsig.dom.DOMSignContext;
+import javax.xml.crypto.dsig.keyinfo.KeyInfoFactory;
+import javax.xml.crypto.dsig.spec.C14NMethodParameterSpec;
+import javax.xml.crypto.dsig.spec.ExcC14NParameterSpec;
+
public class WSSecSignatureSAML extends WSSecSignature {
private static Log log = LogFactory.getLog(WSSecSignatureSAML.class.getName());
private boolean senderVouches = false;
private SecurityTokenReference secRefSaml = null;
+ private String secRefID = null;
private Element samlToken = null;
private Crypto userCrypto = null;
private Crypto issuerCrypto = null;
@@ -117,15 +115,29 @@
WSEncryptionPart encP =
new WSEncryptionPart(WSConstants.ELEM_BODY, soapNamespace, "Content");
parts.add(encP);
+ } else {
+ for (int i = 0; i < parts.size(); i++) {
+ WSEncryptionPart part = (WSEncryptionPart)parts.get(i);
+ if ("STRTransform".equals(part.getName()) && part.getId() == null) {
+ part.setId(strUri);
+ }
+ }
}
- addReferencesToSign(parts, secHeader);
-
+
//
- // The order to prepend is: - signature Element - BinarySecurityToken
- // (depends on mode) - SecurityTokenRefrence (depends on mode) - SAML
- // token
+ // Add the STRTransform for the SecurityTokenReference to the SAML assertion
+ // if it exists
//
- prependToHeader(secHeader);
+ if (secRefID != null) {
+ WSEncryptionPart encP =
+ new WSEncryptionPart("STRTransform", soapNamespace, "Content");
+ encP.setId(secRefID);
+ parts.add(encP);
+ }
+
+ List referenceList = addReferencesToSign(parts, secHeader);
+
+ prependSAMLElementsToHeader(secHeader);
//
// if we have a BST prepend it in front of the Signature according to
@@ -134,10 +146,8 @@
if (bstToken != null) {
prependBSTElementToHeader(secHeader);
}
-
- prependSAMLElementsToHeader(secHeader);
-
- computeSignature();
+
+ computeSignature(referenceList, secHeader, samlToken);
return doc;
}
@@ -184,6 +194,9 @@
document = doc;
issuerKeyName = iKeyName;
issuerKeyPW = iKeyPW;
+
+ keyInfoFactory = KeyInfoFactory.getInstance("DOM");
+ signatureFactory = XMLSignatureFactory.getInstance("DOM");
//
// Get some information about the SAML token content. This controls how
@@ -245,11 +258,12 @@
}
Element e = samlSubj.getKeyInfo();
try {
- KeyInfo ki = new KeyInfo(e, null);
+ org.apache.xml.security.keys.KeyInfo ki =
+ new org.apache.xml.security.keys.KeyInfo(e, null);
if (ki.containsX509Data()) {
- X509Data data = ki.itemX509Data(0);
- XMLX509Certificate certElem = null;
+ org.apache.xml.security.keys.content.X509Data data = ki.itemX509Data(0);
+ org.apache.xml.security.keys.content.x509.XMLX509Certificate certElem = null;
if (data != null && data.containsCertificate()) {
certElem = data.itemCertificate(0);
}
@@ -261,7 +275,7 @@
}
// TODO: get alias name for cert, check against username set by
// caller
- } catch (XMLSecurityException e3) {
+ } catch (Exception e3) {
throw new WSSecurityException(
WSSecurityException.FAILURE,
"invalidSAMLsecurity",
@@ -282,9 +296,9 @@
String pubKeyAlgo = certs[0].getPublicKey().getAlgorithm();
log.debug("automatic sig algo detection: " + pubKeyAlgo);
if (pubKeyAlgo.equalsIgnoreCase("DSA")) {
- sigAlgo = XMLSignature.ALGO_ID_SIGNATURE_DSA;
+ sigAlgo = WSConstants.DSA;
} else if (pubKeyAlgo.equalsIgnoreCase("RSA")) {
- sigAlgo = XMLSignature.ALGO_ID_SIGNATURE_RSA;
+ sigAlgo = WSConstants.RSA;
} else {
throw new WSSecurityException(
WSSecurityException.FAILURE,
@@ -296,52 +310,26 @@
}
}
sig = null;
- if (canonAlgo.equals(WSConstants.C14N_EXCL_OMIT_COMMENTS)) {
- Element canonElem =
- XMLUtils.createElementInSignatureSpace(doc, Constants._TAG_CANONICALIZATIONMETHOD);
-
- canonElem.setAttribute(Constants._ATT_ALGORITHM, canonAlgo);
-
- if (wssConfig.isWsiBSPCompliant()) {
- Set prefixes = getInclusivePrefixes(secHeader.getSecurityHeader(), false);
-
- InclusiveNamespaces inclusiveNamespaces =
- new InclusiveNamespaces(doc, prefixes);
-
- canonElem.appendChild(inclusiveNamespaces.getElement());
- }
- try {
- SignatureAlgorithm signatureAlgorithm = new SignatureAlgorithm(doc, sigAlgo);
- sig = new XMLSignature(doc, null, signatureAlgorithm.getElement(), canonElem);
- } catch (XMLSecurityException e) {
- log.error("", e);
- throw new WSSecurityException(
- WSSecurityException.FAILED_SIGNATURE, "noXMLSig", null, e
- );
- }
- } else {
- try {
- sig = new XMLSignature(doc, null, sigAlgo, canonAlgo);
- } catch (XMLSecurityException e) {
- log.error("", e);
- throw new WSSecurityException(
- WSSecurityException.FAILED_SIGNATURE, "noXMLSig", null, e
- );
- }
+
+ try {
+ C14NMethodParameterSpec c14nSpec = null;
+ if (wssConfig.isWsiBSPCompliant() && canonAlgo.equals(WSConstants.C14N_EXCL_OMIT_COMMENTS)) {
+ List prefixes = getInclusivePrefixes(secHeader.getSecurityHeader(), false);
+ c14nSpec = new ExcC14NParameterSpec(prefixes);
+ }
+
+ c14nMethod = signatureFactory.newCanonicalizationMethod(canonAlgo, c14nSpec);
+ } catch (Exception ex) {
+ log.error("", ex);
+ throw new WSSecurityException(
+ WSSecurityException.FAILED_SIGNATURE, "noXMLSig", null, ex
+ );
}
- sig.addResourceResolver(EnvelopeIdResolver.getInstance());
- String sigUri = wssConfig.getIdAllocator().createId("Signature-", sig);
- sig.setId(sigUri);
-
- keyInfo = sig.getKeyInfo();
keyInfoUri = wssConfig.getIdAllocator().createSecureId("KeyId-", keyInfo);
- keyInfo.setId(keyInfoUri);
-
secRef = new SecurityTokenReference(doc);
strUri = wssConfig.getIdAllocator().createSecureId("STRId-", secRef);
secRef.setID(strUri);
-
certUri = wssConfig.getIdAllocator().createSecureId("CertId-", certs[0]);
//
@@ -352,13 +340,11 @@
// created STR to the signature and use STR Transform during the
// signature
//
- Transforms transforms = null;
try {
if (senderVouches) {
secRefSaml = new SecurityTokenReference(doc);
- String strSamlUri =
- wssConfig.getIdAllocator().createSecureId("STRSAMLId-", secRefSaml);
- secRefSaml.setID(strSamlUri);
+ secRefID = wssConfig.getIdAllocator().createSecureId("STRSAMLId-", secRefSaml);
+ secRefSaml.setID(secRefID);
if (WSConstants.X509_KEY_IDENTIFIER == keyIdentifierType) {
Element keyId = doc.createElementNS(WSConstants.WSSE_NS, "wsse:KeyIdentifier");
@@ -374,19 +360,10 @@
ref.setValueType(WSConstants.WSS_SAML_KI_VALUE_TYPE);
secRefSaml.setReference(ref);
}
-
- Element ctx = createSTRParameter(doc);
- transforms = new Transforms(doc);
- transforms.addTransform(STRTransform.TRANSFORM_URI, ctx);
- sig.addDocument("#" + strSamlUri, transforms);
}
- } catch (TransformationException e1) {
+ } catch (Exception ex) {
throw new WSSecurityException(
- WSSecurityException.FAILED_SIGNATURE, "noXMLSig", null, e1
- );
- } catch (XMLSignatureException e1) {
- throw new WSSecurityException(
- WSSecurityException.FAILED_SIGNATURE, "noXMLSig", null, e1
+ WSSecurityException.FAILED_SIGNATURE, "noXMLSig", null, ex
);
}
@@ -433,12 +410,11 @@
throw new WSSecurityException(WSSecurityException.FAILURE, "unsupportedKeyId");
}
}
- keyInfo.addUnknownElement(secRef.getElement());
-
- Element keyInfoElement = keyInfo.getElement();
- keyInfoElement.setAttributeNS(
- WSConstants.XMLNS_NS, "xmlns:" + WSConstants.SIG_PREFIX, WSConstants.SIG_NS
- );
+ XMLStructure structure = new DOMStructure(secRef.getElement());
+ keyInfo =
+ keyInfoFactory.newKeyInfo(
+ java.util.Collections.singletonList(structure), keyInfoUri
+ );
try {
samlToken = (Element) assertion.toDOM(doc);
@@ -473,152 +449,71 @@
WSSecurityUtil.prependChildElement(secHeader.getSecurityHeader(), samlToken);
}
- /**
- * This method adds references to the Signature.
- *
- * The added references are signed when calling
- * <code>computeSignature()</code>. This method can be called several
- * times to add references as required. <code>addReferencesToSign()</code>
- * can be called anytime after <code>prepare</code>.
- *
- * @param references
- * A list containing <code>WSEncryptionPart</code> objects
- * that define the parts to sign.
- * @param secHeader
- * Used to compute namespaces to be inserted by
- * InclusiveNamespaces to be WSI compliant.
- * @throws WSSecurityException
- */
- public void addReferencesToSign(List references, WSSecHeader secHeader)
- throws WSSecurityException {
- Transforms transforms = null;
-
- Element envelope = document.getDocumentElement();
- for (int part = 0; part < parts.size(); part++) {
- WSEncryptionPart encPart = (WSEncryptionPart) references.get(part);
-
- String idToSign = encPart.getId();
-
- String elemName = encPart.getName();
- String nmSpace = encPart.getNamespace();
-
- //
- // Set up the elements to sign. There are two reserved element
- // names: "Token" and "STRTransform" "Token": Setup the Signature to
- // either sign the information that points to the security token or
- // the token itself. If its a direct reference sign the token,
- // otherwise sign the KeyInfo Element. "STRTransform": Setup the
- // ds:Reference to use STR Transform
- //
- transforms = new Transforms(document);
- try {
- if (idToSign != null) {
- Element toSignById =
- WSSecurityUtil.findElementById(
- document.getDocumentElement(), idToSign, WSConstants.WSU_NS, false
- );
- if (toSignById == null) {
- toSignById =
- WSSecurityUtil.findElementById(
- document.getDocumentElement(), idToSign, null, false
- );
- }
- transforms.addTransform(Transforms.TRANSFORM_C14N_EXCL_OMIT_COMMENTS);
- if (wssConfig.isWsiBSPCompliant()) {
- transforms.item(0).getElement().appendChild(
- new InclusiveNamespaces(
- document,
- getInclusivePrefixes(toSignById)
- ).getElement());
- }
- sig.addDocument("#" + idToSign, transforms);
- } else if (elemName.equals("Token")) {
- transforms.addTransform(Transforms.TRANSFORM_C14N_EXCL_OMIT_COMMENTS);
- if (keyIdentifierType == WSConstants.BST_DIRECT_REFERENCE) {
- if (wssConfig.isWsiBSPCompliant()) {
- transforms.item(0).getElement().appendChild(
- new InclusiveNamespaces(
- document,
- getInclusivePrefixes(secHeader.getSecurityHeader())
- ).getElement());
- }
- sig.addDocument("#" + certUri, transforms);
- } else {
- if (wssConfig.isWsiBSPCompliant()) {
- transforms.item(0).getElement().appendChild(
- new InclusiveNamespaces(
- document,
- getInclusivePrefixes(keyInfo.getElement())
- ).getElement());
- }
- sig.addDocument("#" + keyInfoUri, transforms);
- }
- } else if (elemName.equals("STRTransform")) { // STRTransform
- Element ctx = createSTRParameter(document);
- transforms.addTransform(STRTransform.TRANSFORM_URI, ctx);
- sig.addDocument("#" + strUri, transforms);
- } else {
- Element body =
- (Element) WSSecurityUtil.findElement(envelope, elemName, nmSpace);
- if (body == null) {
- throw new WSSecurityException(
- WSSecurityException.FAILURE, "noEncElement",
- new Object[] { nmSpace + ", " + elemName }
- );
- }
- transforms.addTransform(Transforms.TRANSFORM_C14N_EXCL_OMIT_COMMENTS);
- if (wssConfig.isWsiBSPCompliant()) {
- transforms.item(0).getElement().appendChild(
- new InclusiveNamespaces(
- document,
- getInclusivePrefixes(body)
- ).getElement());
- }
- sig.addDocument("#" + setWsuId(body), transforms);
- }
- } catch (TransformationException e1) {
- throw new WSSecurityException(
- WSSecurityException.FAILED_SIGNATURE, "noXMLSig", null, e1
- );
- } catch (XMLSignatureException e1) {
- throw new WSSecurityException(
- WSSecurityException.FAILED_SIGNATURE, "noXMLSig", null, e1
- );
- }
- }
- }
-
+
/**
* Compute the Signature over the references.
*
* After references are set this method computes the Signature for them.
- * This method can be called anytime after the references were set. See
+ * This method can be called any time after the references were set. See
* <code>addReferencesToSign()</code>.
*
* @throws WSSecurityException
*/
- public void computeSignature() throws WSSecurityException {
+ public void computeSignature(List referenceList, WSSecHeader secHeader, Element assertion)
+ throws WSSecurityException {
boolean remove = WSDocInfoStore.store(wsDocInfo);
-
try {
+ java.security.Key key;
if (senderVouches) {
- sig.sign(issuerCrypto.getPrivateKey(issuerKeyName, issuerKeyPW));
+ key = issuerCrypto.getPrivateKey(issuerKeyName, issuerKeyPW);
} else {
- sig.sign(userCrypto.getPrivateKey(user, password));
+ key = userCrypto.getPrivateKey(user, password);
}
- signatureValue = sig.getSignatureValue();
- } catch (XMLSignatureException e1) {
- throw new WSSecurityException(
- WSSecurityException.FAILED_SIGNATURE, null, null, e1
- );
- } catch (Exception e1) {
+ SignatureMethod signatureMethod =
+ signatureFactory.newSignatureMethod(sigAlgo, null);
+ SignedInfo signedInfo =
+ signatureFactory.newSignedInfo(c14nMethod, signatureMethod, referenceList);
+
+ sig = signatureFactory.newXMLSignature(
+ signedInfo,
+ keyInfo,
+ null,
+ wssConfig.getIdAllocator().createId("SIG-", null),
+ null);
+
+ org.w3c.dom.Element securityHeaderElement = secHeader.getSecurityHeader();
+ //
+ // Prepend the signature element to the security header (after the assertion)
+ //
+ XMLSignContext signContext = null;
+ if (assertion != null && assertion.getNextSibling() != null) {
+ signContext =
+ new DOMSignContext(key, securityHeaderElement, assertion.getNextSibling());
+ } else {
+ signContext = new DOMSignContext(key, securityHeaderElement);
+ }
+ signContext.putNamespacePrefix(WSConstants.SIG_NS, WSConstants.SIG_PREFIX);
+ if (WSConstants.C14N_EXCL_OMIT_COMMENTS.equals(canonAlgo)) {
+ signContext.putNamespacePrefix(
+ WSConstants.C14N_EXCL_OMIT_COMMENTS,
+ WSConstants.C14N_EXCL_OMIT_COMMENTS_PREFIX
+ );
+ }
+ sig.sign(signContext);
+
+ signatureValue = sig.getSignatureValue().getValue();
+ } catch (Exception ex) {
+ log.error(ex);
throw new WSSecurityException(
- WSSecurityException.FAILED_SIGNATURE, null, null, e1
+ WSSecurityException.FAILED_SIGNATURE, null, null, ex
);
} finally {
if (remove) {
WSDocInfoStore.delete(wsDocInfo);
}
}
+
}
+
+
}
Added: webservices/wss4j/trunk/src/org/apache/ws/security/transform/STRApacheTransform.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/transform/STRApacheTransform.java?rev=806549&view=auto
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/transform/STRApacheTransform.java (added)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/transform/STRApacheTransform.java Fri Aug 21 13:43:42 2009
@@ -0,0 +1,65 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.ws.security.transform;
+
+import org.jcp.xml.dsig.internal.dom.ApacheTransform;
+import org.jcp.xml.dsig.internal.dom.DOMUtils;
+
+import org.w3c.dom.Element;
+
+import java.security.InvalidAlgorithmParameterException;
+
+import javax.xml.crypto.MarshalException;
+import javax.xml.crypto.XMLCryptoContext;
+import javax.xml.crypto.XMLStructure;
+import javax.xml.crypto.dsig.spec.TransformParameterSpec;
+
+
+/**
+ * Class STRApacheTransform.
+ */
+public class STRApacheTransform extends ApacheTransform {
+
+ public static final String TRANSFORM_URI =
+ "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#STR-Transform";
+
+ private Element elem;
+
+ public void init(TransformParameterSpec params)
+ throws InvalidAlgorithmParameterException {
+
+ this.params = params;
+ }
+
+ public void init(XMLStructure parent, XMLCryptoContext context)
+ throws InvalidAlgorithmParameterException {
+
+ super.init(parent, context);
+ elem = transformElem;
+ }
+
+ public void marshalParams(XMLStructure parent, XMLCryptoContext context)
+ throws MarshalException {
+
+ super.marshalParams(parent, context);
+ DOMUtils.appendChild(transformElem, elem);
+ }
+
+}
Propchange: webservices/wss4j/trunk/src/org/apache/ws/security/transform/STRApacheTransform.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: webservices/wss4j/trunk/src/org/apache/ws/security/transform/STRApacheTransform.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: webservices/wss4j/trunk/src/org/apache/ws/security/transform/STRTransform.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/transform/STRTransform.java?rev=806549&r1=806548&r2=806549&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/transform/STRTransform.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/transform/STRTransform.java Fri Aug 21 13:43:42 2009
@@ -46,6 +46,7 @@
import java.security.cert.CertificateEncodingException;
import java.security.cert.X509Certificate;
+
/**
* Class STRTransform
*
@@ -87,6 +88,7 @@
protected String engineGetURI() {
return STRTransform.TRANSFORM_URI;
}
+
/**
* Method enginePerformTransform
@@ -198,7 +200,7 @@
//
// Alert: Hacks ahead According to WSS spec an Apex node must
- // contain a default namespace. If none is availabe in the first
+ // contain a default namespace. If none is available in the first
// node of the c14n output (this is the apex element) then we do
// some editing to insert an empty default namespace
//
@@ -234,7 +236,13 @@
log.debug("last result: ");
log.debug(bf1);
}
- return new XMLSignatureInput(bf1.getBytes());
+ XMLSignatureInput output = new XMLSignatureInput(bf1.getBytes());
+ //
+ // HACK-2 - Need to fool the ApacheTransform class that this XMLSignatureInput
+ // returns a node-set
+ //
+ output.setNodeSet(true);
+ return output;
}
// End of HACK
catch (WSSecurityException ex) {
@@ -324,7 +332,7 @@
String prefix =
WSSecurityUtil.setNamespace(secRefE, WSConstants.WSSE_NS, WSConstants.WSSE_PREFIX);
Element elem = doc.createElementNS(WSConstants.WSSE_NS, prefix + ":BinarySecurityToken");
- elem.setAttribute("ValueType", X509Security.X509_V3_TYPE);
+ elem.setAttributeNS(null, "ValueType", X509Security.X509_V3_TYPE);
Text certText = doc.createTextNode(Base64.encode(data)); // no line wrap
elem.appendChild(certText);
return elem;
Modified: webservices/wss4j/trunk/src/org/apache/ws/security/util/WSSecurityUtil.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/util/WSSecurityUtil.java?rev=806549&r1=806548&r2=806549&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/util/WSSecurityUtil.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/util/WSSecurityUtil.java Fri Aug 21 13:43:42 2009
@@ -31,7 +31,6 @@
import org.apache.ws.security.WSSConfig;
import org.apache.ws.security.handler.WSHandlerConstants;
import org.apache.xml.security.algorithms.JCEMapper;
-import org.apache.xml.security.signature.XMLSignature;
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -149,18 +148,18 @@
/**
* Gets a direct child with specified localname and namespace. <p/>
*
- * @param fNode the node where to start the search
+ * @param parentNode the node where to start the search
* @param localName local name of the child to get
* @param namespace the namespace of the child to get
* @return the node or <code>null</code> if not such node found
*/
public static Element getDirectChildElement(
- Node fNode,
+ Node parentNode,
String localName,
String namespace
) {
for (
- Node currentChild = fNode.getFirstChild();
+ Node currentChild = parentNode.getFirstChild();
currentChild != null;
currentChild = currentChild.getNextSibling()
) {
@@ -950,15 +949,15 @@
return 24;
} else if (algorithm.equals(WSConstants.AES_256)) {
return 32;
- } else if (XMLSignature.ALGO_ID_MAC_HMAC_SHA1.equals(algorithm)) {
+ } else if (WSConstants.HMAC_SHA1.equals(algorithm)) {
return 20;
- } else if (XMLSignature.ALGO_ID_MAC_HMAC_SHA256.equals(algorithm)) {
+ } else if (WSConstants.HMAC_SHA256.equals(algorithm)) {
return 32;
- } else if (XMLSignature.ALGO_ID_MAC_HMAC_SHA384.equals(algorithm)) {
+ } else if (WSConstants.HMAC_SHA384.equals(algorithm)) {
return 48;
- } else if (XMLSignature.ALGO_ID_MAC_HMAC_SHA512.equals(algorithm)) {
+ } else if (WSConstants.HMAC_SHA512.equals(algorithm)) {
return 64;
- } else if (XMLSignature.ALGO_ID_MAC_HMAC_NOT_RECOMMENDED_MD5.equals(algorithm)) {
+ } else if (WSConstants.HMAC_MD5.equals(algorithm)) {
return 16;
} else {
throw new WSSecurityException(
Modified: webservices/wss4j/trunk/test/wssec/TestWSSecurityNew6.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/test/wssec/TestWSSecurityNew6.java?rev=806549&r1=806548&r2=806549&view=diff
==============================================================================
--- webservices/wss4j/trunk/test/wssec/TestWSSecurityNew6.java (original)
+++ webservices/wss4j/trunk/test/wssec/TestWSSecurityNew6.java Fri Aug 21 13:43:42 2009
@@ -104,8 +104,22 @@
secHeader.insertSecurityHeader(doc);
Document encryptedDoc = encrypt.build(doc, crypto, secHeader);
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("After Encryption....");
+ String outputString =
+ org.apache.ws.security.util.XMLUtils.PrettyDocumentToString(encryptedDoc);
+ LOG.debug(outputString);
+ }
+
Document encryptedSignedDoc = sign.build(encryptedDoc, crypto, secHeader);
- LOG.info("After Encryption....");
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("After Signing....");
+ String outputString =
+ org.apache.ws.security.util.XMLUtils.PrettyDocumentToString(encryptedSignedDoc);
+ LOG.debug(outputString);
+ }
verify(encryptedSignedDoc);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: wss4j-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: wss4j-dev-help@ws.apache.org