|
From: <pe...@us...> - 2004-02-19 15:40:39
|
Update of /cvsroot/neuclear/neuclear-xmlsig/src/java/org/neuclear/xml/transforms In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16698/src/java/org/neuclear/xml/transforms Modified Files: DropSignatureTransform.java XPathTransform.java Log Message: Various cleanups and corrections Index: DropSignatureTransform.java =================================================================== RCS file: /cvsroot/neuclear/neuclear-xmlsig/src/java/org/neuclear/xml/transforms/DropSignatureTransform.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** DropSignatureTransform.java 21 Nov 2003 04:44:30 -0000 1.2 --- DropSignatureTransform.java 19 Feb 2004 15:30:08 -0000 1.3 *************** *** 1,3 **** --- 1,4 ---- package org.neuclear.xml.transforms; + /** * (C) 2003 Antilles Software Ventures SA *************** *** 7,10 **** --- 8,14 ---- * $Id$ * $Log$ + * Revision 1.3 2004/02/19 15:30:08 pelle + * Various cleanups and corrections + * * Revision 1.2 2003/11/21 04:44:30 pelle * EncryptedFileStore now works. It uses the PBECipher with DES3 afair. *************** *** 35,39 **** */ - import org.dom4j.*; import org.neuclear.xml.xmlsec.XMLSecTools; import org.neuclear.xml.xmlsec.XMLSecurityException; --- 39,42 ---- *************** *** 41,45 **** import java.util.ListIterator; ! public final class DropSignatureTransform extends Transform{ public DropSignatureTransform() { super(ALGORITHM); --- 44,48 ---- import java.util.ListIterator; ! public final class DropSignatureTransform extends Transform { public DropSignatureTransform() { super(ALGORITHM); *************** *** 52,62 **** public final Object transformNode(final Object in) { ! if (in instanceof Document){ ! transformNode(((Document)in).getRootElement()); ! } else if (in instanceof Element){ ! final ListIterator iter=((Branch)in).content().listIterator(); ! while(iter.hasNext()) { ! final Node node=(Node)iter.next(); ! if ((node instanceof Element)&&(((Element)node).getQName().equals(subject)) ) iter.remove(); // else if (node instanceof Branch) { --- 55,65 ---- public final Object transformNode(final Object in) { ! if (in instanceof Document) { ! transformNode(((Document) in).getRootElement()); ! } else if (in instanceof Element) { ! final ListIterator iter = ((Branch) in).content().listIterator(); ! while (iter.hasNext()) { ! final Node node = (Node) iter.next(); ! if ((node instanceof Element) && (((Element) node).getQName().equals(SUBJECT))) iter.remove(); // else if (node instanceof Branch) { *************** *** 65,74 **** } } ! return in; } ! private static final QName subject=XMLSecTools.createQName("Signature"); ! public static final String ALGORITHM="http://www.w3.org/2000/09/xmldsig#enveloped-signature"; { ! TransformerFactory.registerTransformer(ALGORITHM,DropSignatureTransform.class); } } --- 68,79 ---- } } ! return in; } ! ! private static final QName SUBJECT = XMLSecTools.createQName("Signature"); ! public static final String ALGORITHM = "http://www.w3.org/2000/09/xmldsig#enveloped-signature"; ! { ! TransformerFactory.registerTransformer(ALGORITHM, DropSignatureTransform.class); } } Index: XPathTransform.java =================================================================== RCS file: /cvsroot/neuclear/neuclear-xmlsig/src/java/org/neuclear/xml/transforms/XPathTransform.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** XPathTransform.java 21 Nov 2003 04:44:30 -0000 1.2 --- XPathTransform.java 19 Feb 2004 15:30:08 -0000 1.3 *************** *** 1,12 **** package org.neuclear.xml.transforms; - import org.dom4j.*; - import org.neuclear.xml.xmlsec.XMLSecurityException; import org.neuclear.xml.xmlsec.XMLSecTools; - import java.util.ListIterator; - import java.util.Map; import java.util.HashMap; import java.util.List; /** --- 1,11 ---- package org.neuclear.xml.transforms; import org.neuclear.xml.xmlsec.XMLSecTools; + import org.neuclear.xml.xmlsec.XMLSecurityException; import java.util.HashMap; import java.util.List; + import java.util.ListIterator; + import java.util.Map; /** *************** *** 21,37 **** super(ALGORITHM); } public XPathTransform(final String xpath) { super(ALGORITHM); // this.xpath=xpath; setXPath(xpath); ! final Element xpElem=getElement().addElement("XPath"); xpElem.setText(xpath); ! xpElem.addAttribute("xmlns:dsig","&dsig;"); } private void setXPath(final String xpath) { // XPathFilter=DocumentHelper.createXPath(xpath); ! xpathFilter=DocumentHelper.createXPath(xpath); ! xpathFilter.setNamespaceURIs(nsmap); // try { --- 20,37 ---- super(ALGORITHM); } + public XPathTransform(final String xpath) { super(ALGORITHM); // this.xpath=xpath; setXPath(xpath); ! final Element xpElem = getElement().addElement("XPath"); xpElem.setText(xpath); ! xpElem.addAttribute("xmlns:dsig", "&dsig;"); } private void setXPath(final String xpath) { // XPathFilter=DocumentHelper.createXPath(xpath); ! xpathFilter = DocumentHelper.createXPath(xpath); ! xpathFilter.setNamespaceURIs(NSMAP); // try { *************** *** 45,52 **** public XPathTransform(final Element elem) throws XMLSecurityException { super(elem); ! final Element xpElement=elem.element("XPath"); ! if (xpElement==null) throw new XMLSecurityException("XPath Element not found in Tranform"); ! final String xpath=xpElement.getTextTrim(); setXPath(xpath); } --- 45,52 ---- public XPathTransform(final Element elem) throws XMLSecurityException { super(elem); ! final Element xpElement = elem.element("XPath"); ! if (xpElement == null) throw new XMLSecurityException("XPath Element not found in Tranform"); ! final String xpath = xpElement.getTextTrim(); setXPath(xpath); } *************** *** 54,97 **** public final Object transformNode(final Object in) { // XPath needs a document. So if element doesnt have one we add it. ! if (in instanceof Element){ ! if (((Element)in).getDocument()==null){ ! DocumentHelper.createDocument((Element)in); } } ! if ((in instanceof Node)&&!matches((Node)in)) { ! return null; } ! ListIterator iter=null; if (in instanceof List) ! iter=((List)in).listIterator(); else if (in instanceof Branch) ! iter=((Branch)in).content().listIterator(); ! if (iter!=null) { while (iter.hasNext()) { final Node node = (Node) iter.next(); ! if (transformNode(node)==null) ! iter.remove(); } } return in; } ! public final boolean matches(final Node node){ return xpathFilter.matches(node); } ! // private String xpath; private XPath xpathFilter; // private BaseXPath xp; //private XPath xpath; ! public static final String ALGORITHM="http://www.w3.org/TR/1999/REC-xpath-19991116"; { ! TransformerFactory.registerTransformer(ALGORITHM,XPathTransform.class); } ! private static final Map nsmap=new HashMap(); { ! nsmap.put("ds",XMLSecTools.XMLDSIG_NAMESPACE); } } --- 54,101 ---- public final Object transformNode(final Object in) { // XPath needs a document. So if element doesnt have one we add it. ! if (in instanceof Element) { ! if (((Element) in).getDocument() == null) { ! DocumentHelper.createDocument((Element) in); } } ! if ((in instanceof Node) && !matches((Node) in)) { ! return null; } ! ListIterator iter = null; if (in instanceof List) ! iter = ((List) in).listIterator(); else if (in instanceof Branch) ! iter = ((Branch) in).content().listIterator(); ! if (iter != null) { while (iter.hasNext()) { final Node node = (Node) iter.next(); ! if (transformNode(node) == null) ! iter.remove(); } } return in; } ! ! public final boolean matches(final Node node) { return xpathFilter.matches(node); } ! ! // private String xpath; private XPath xpathFilter; // private BaseXPath xp; //private XPath xpath; ! public static final String ALGORITHM = "http://www.w3.org/TR/1999/REC-xpath-19991116"; ! { ! TransformerFactory.registerTransformer(ALGORITHM, XPathTransform.class); } ! private static final Map NSMAP = new HashMap(); ! { ! NSMAP.put("ds", XMLSecTools.XMLDSIG_NAMESPACE); } } |