|
From: Pelle B. <pe...@us...> - 2004-03-20 17:29:41
|
Update of /cvsroot/neuclear/neuclear-xmlsig/src/java/org/neuclear/xml/transforms In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19580/src/java/org/neuclear/xml/transforms Modified Files: XPathTransform.java Log Message: The problem with Enveloped signatures has now been fixed. It was a problem in the way transforms work. I have bandaided it, but in the future if better support for transforms need to be made, we need to rethink it a bit. Perhaps using the new crypto channel's in neuclear-commons. Index: XPathTransform.java =================================================================== RCS file: /cvsroot/neuclear/neuclear-xmlsig/src/java/org/neuclear/xml/transforms/XPathTransform.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** XPathTransform.java 8 Mar 2004 23:51:03 -0000 1.5 --- XPathTransform.java 20 Mar 2004 17:19:42 -0000 1.6 *************** *** 60,63 **** --- 60,71 ---- public final Object transformNode(final Object in) { + if (in instanceof Element) { + Element copy = ((Element) in).createCopy(); + return transform(copy); + } + return transform(in); + } + + private final Object transform(final Object in) { // XPath needs a document. So if element doesnt have one we add it. if (in instanceof Element) { *************** *** 78,82 **** while (iter.hasNext()) { final Node node = (Node) iter.next(); ! if (transformNode(node) == null) iter.remove(); } --- 86,90 ---- while (iter.hasNext()) { final Node node = (Node) iter.next(); ! if (transform(node) == null) iter.remove(); } |