You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@santuario.apache.org by mu...@apache.org on 2007/07/24 22:45:43 UTC
svn commit: r559201 -
/xml/security/branches/stax_jsr105/src/com/r_bg/stax/XMLSignatureWorker.java
Author: mullan
Date: Tue Jul 24 13:45:42 2007
New Revision: 559201
URL: http://svn.apache.org/viewvc?view=rev&rev=559201
Log:
Add ManifestWorker, SignaturePropertiesWorker which are implementations of
Manifest and SignatureProperties.
Modified:
xml/security/branches/stax_jsr105/src/com/r_bg/stax/XMLSignatureWorker.java
Modified: xml/security/branches/stax_jsr105/src/com/r_bg/stax/XMLSignatureWorker.java
URL: http://svn.apache.org/viewvc/xml/security/branches/stax_jsr105/src/com/r_bg/stax/XMLSignatureWorker.java?view=diff&rev=559201&r1=559200&r2=559201
==============================================================================
--- xml/security/branches/stax_jsr105/src/com/r_bg/stax/XMLSignatureWorker.java (original)
+++ xml/security/branches/stax_jsr105/src/com/r_bg/stax/XMLSignatureWorker.java Tue Jul 24 13:45:42 2007
@@ -20,18 +20,7 @@
import javax.xml.crypto.MarshalException;
import javax.xml.crypto.XMLCryptoContext;
import javax.xml.crypto.XMLStructure;
-import javax.xml.crypto.dsig.CanonicalizationMethod;
-import javax.xml.crypto.dsig.DigestMethod;
-import javax.xml.crypto.dsig.Reference;
-import javax.xml.crypto.dsig.SignatureMethod;
-import javax.xml.crypto.dsig.SignedInfo;
-import javax.xml.crypto.dsig.Transform;
-import javax.xml.crypto.dsig.TransformException;
-import javax.xml.crypto.dsig.XMLObject;
-import javax.xml.crypto.dsig.XMLSignContext;
-import javax.xml.crypto.dsig.XMLSignature;
-import javax.xml.crypto.dsig.XMLSignatureException;
-import javax.xml.crypto.dsig.XMLValidateContext;
+import javax.xml.crypto.dsig.*;
import javax.xml.crypto.dsig.keyinfo.KeyInfo;
import javax.xml.crypto.dsig.keyinfo.KeyName;
import javax.xml.crypto.dsig.keyinfo.KeyValue;
@@ -522,10 +511,95 @@
}
}
+class SignaturePropertiesWorker implements StaxWorker, SignatureProperties {
+ private String id;
+ private List<SignatureProperty> props = new ArrayList<SignatureProperty>();
+
+ public StaxWorker read(XMLStreamReader reader) {
+ switch (reader.getEventType()) {
+ case XMLStreamReader.START_ELEMENT:
+ if(Constants.DS_URI.equals(reader.getNamespaceURI())) {
+ String name = reader.getLocalName();
+ if (name.equals("SignatureProperties") ) {
+ id = reader.getAttributeValue(null, "Id");
+ } else if (name.equals("SignatureProperty")) {
+ final String id = reader.getAttributeValue(null, "Id");
+ final String target = reader.getAttributeValue(null, "Target");
+ props.add(new SignatureProperty() {
+ public String getId() {
+ return id;
+ }
+ public String getTarget() {
+ return target;
+ }
+ public List getContent() {
+ // FIXME
+ return null;
+ }
+ public boolean isFeatureSupported(String feature) {
+ return false;
+ }
+ });
+ }
+ }
+ break;
+ }
+ return null;
+ }
+ public StaxWatcher remove() {
+ return null;
+ }
+ public String getId() {
+ return id;
+ }
+ public List getProperties() {
+ return Collections.unmodifiableList(props);
+ }
+ public boolean isFeatureSupported(String feature) {
+ return false;
+ }
+}
+
+class ManifestWorker implements StaxWorker, Manifest {
+ private String id;
+ private List<Reference> refs = new ArrayList<Reference>();
+
+ public StaxWorker read(XMLStreamReader reader) {
+ switch (reader.getEventType()) {
+ case XMLStreamReader.START_ELEMENT:
+ if(Constants.DS_URI.equals(reader.getNamespaceURI())) {
+ String name = reader.getLocalName();
+ if (name.equals("Manifest") ) {
+ id = reader.getAttributeValue(null, "Id");
+ } else if (name.equals("Reference")) {
+ ReferenceWorker rw = new ReferenceWorker();
+ refs.add(rw);
+ return rw;
+ }
+ }
+ break;
+ }
+ return null;
+ }
+ public StaxWatcher remove() {
+ return null;
+ }
+ public String getId() {
+ return id;
+ }
+ public List getReferences() {
+ return Collections.unmodifiableList(refs);
+ }
+ public boolean isFeatureSupported(String feature) {
+ return false;
+ }
+}
+
class XMLObjectWorker implements StaxWorker, XMLObject {
private String id;
private String mimeType;
private String encoding;
+ private List<XMLStructure> content = new ArrayList<XMLStructure>();
public StaxWorker read(XMLStreamReader reader) {
switch (reader.getEventType()) {
@@ -536,42 +610,43 @@
id = reader.getAttributeValue(null, "Id");
mimeType = reader.getAttributeValue(null, "MimeType");
encoding = reader.getAttributeValue(null, "Encoding");
+ } else if (name.equals("Manifest")) {
+ ManifestWorker mw = new ManifestWorker();
+ content.add(mw);
+ return mw;
+ } else if (name.equals("SignatureProperties")) {
+ SignaturePropertiesWorker spw = new SignaturePropertiesWorker();
+ content.add(spw);
+ return spw;
}
}
break;
}
return null;
}
-
public StaxWatcher remove() {
return null;
}
-
public List getContent() {
- return null;
+ return Collections.unmodifiableList(content);
}
-
public String getId() {
return id;
}
-
public String getMimeType() {
return mimeType;
}
-
public String getEncoding() {
return encoding;
}
-
public boolean isFeatureSupported(String feature) {
return false;
}
}
public class XMLSignatureWorker implements StaxWorker,XMLSignature {
- SignedInfoWorker si;
+ private SignedInfoWorker si;
private SignatureValueWorker sv;
- private XMLObjectWorker xo;
private KeyInfoWorker ki;
private String id;
private List<XMLObject> xmlObjects = new ArrayList<XMLObject>();
@@ -593,7 +668,7 @@
return sv;
}
if (name.equals("Object")) {
- xo=new XMLObjectWorker();
+ XMLObjectWorker xo=new XMLObjectWorker();
xmlObjects.add(xo);
return xo;
}