aboutsummaryrefslogtreecommitdiff
path: root/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/webservice/binding/TransformerUtils.java
diff options
context:
space:
mode:
Diffstat (limited to 'moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/webservice/binding/TransformerUtils.java')
-rw-r--r--moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/webservice/binding/TransformerUtils.java521
1 files changed, 0 insertions, 521 deletions
diff --git a/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/webservice/binding/TransformerUtils.java b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/webservice/binding/TransformerUtils.java
deleted file mode 100644
index 676c95c..0000000
--- a/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/webservice/binding/TransformerUtils.java
+++ /dev/null
@@ -1,521 +0,0 @@
-package at.gv.egovernment.moa.spss.server.webservice.binding;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.security.cert.CertificateEncodingException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import javax.xml.bind.JAXBElement;
-
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-import at.gv.egiz.moasig.MetaInfoType;
-import at.gv.egiz.moasig.PublicAuthorityType;
-import at.gv.egiz.moasig.QualifiedCertificate;
-import at.gv.egiz.moasig.SecureSignatureCreationDevice;
-import at.gv.egovernment.moa.spss.MOAApplicationException;
-import at.gv.egovernment.moa.spss.api.SPSSFactory;
-import at.gv.egovernment.moa.spss.api.cmsverify.CMSContent;
-import at.gv.egovernment.moa.spss.api.cmsverify.CMSDataObject;
-import at.gv.egovernment.moa.spss.api.common.Content;
-import at.gv.egovernment.moa.spss.api.common.MetaInfo;
-import at.gv.egovernment.moa.spss.api.common.XMLDataObjectAssociation;
-import at.gv.egovernment.moa.spss.api.xmlsign.CreateSignatureEnvironmentProfile;
-import at.gv.egovernment.moa.spss.api.xmlsign.CreateSignatureInfo;
-import at.gv.egovernment.moa.spss.api.xmlsign.CreateSignatureLocation;
-import at.gv.egovernment.moa.spss.api.xmlsign.CreateTransformsInfo;
-import at.gv.egovernment.moa.spss.api.xmlsign.CreateTransformsInfoProfile;
-import at.gv.egovernment.moa.spss.api.xmlsign.DataObjectInfo;
-import at.gv.egovernment.moa.spss.api.xmlsign.SingleSignatureInfo;
-import iaik.utils.RFC2253NameParser;
-import iaik.utils.RFC2253NameParserException;
-
-public class TransformerUtils {
-
- /** The factory to create API objects. */
- private SPSSFactory factory;
-
- /**
- * Create a new <code>CreateXMLSignatureRequestParser</code>.
- */
- public TransformerUtils() {
- this.factory = SPSSFactory.getInstance();
- }
-
- public SingleSignatureInfo buildSingleSignatureInfo(
- at.gv.egiz.moasig.CreateXMLSignatureRequestType.SingleSignatureInfo singleSignatureInfo)
- throws MOAApplicationException {
-
- List dataObjectInfos = new ArrayList();
-
- Iterator<at.gv.egiz.moasig.CreateXMLSignatureRequestType.SingleSignatureInfo.DataObjectInfo> dataObjectInfoIterator = singleSignatureInfo
- .getDataObjectInfo().iterator();
-
- while (dataObjectInfoIterator.hasNext()) {
- dataObjectInfos.add(buildDataObjectInfo(dataObjectInfoIterator.next()));
- }
-
- at.gv.egiz.moasig.CreateXMLSignatureRequestType.SingleSignatureInfo.CreateSignatureInfo createSignatureInfoWeb = singleSignatureInfo
- .getCreateSignatureInfo();
-
- CreateSignatureInfo createSignatureInfo = buildCreateSignatureInfo(createSignatureInfoWeb);
-
- boolean securityLayerConform = singleSignatureInfo.isSecurityLayerConformity();
-
- return factory.createSingleSignatureInfo(dataObjectInfos, createSignatureInfo, securityLayerConform);
- }
-
- public DataObjectInfo buildDataObjectInfo(
- at.gv.egiz.moasig.CreateXMLSignatureRequestType.SingleSignatureInfo.DataObjectInfo dataObjectInfo)
- throws MOAApplicationException {
- String structure = dataObjectInfo.getStructure();
- boolean childOfManifest = dataObjectInfo.isChildOfManifest();
-
- Content dataObject = buildContent(dataObjectInfo.getDataObject());
-
- CreateTransformsInfoProfile createTransformsInfoProfile = parseCreateTransformsInfoProfile(
- dataObjectInfo.getCreateTransformsInfoProfile());
-
- return factory.createDataObjectInfo(structure, childOfManifest, dataObject, createTransformsInfoProfile);
- }
-
- public CreateSignatureInfo buildCreateSignatureInfo(
- at.gv.egiz.moasig.CreateXMLSignatureRequestType.SingleSignatureInfo.CreateSignatureInfo createSignatureInfo)
- throws MOAApplicationException {
- if (createSignatureInfo == null) {
- return null;
- } else {
- Content environment = buildContent(createSignatureInfo.getCreateSignatureEnvironment());
- CreateSignatureEnvironmentProfile environmentProfile = parseCreateSignatureEnvironmentProfile(
- createSignatureInfo);
- return factory.createCreateSignatureInfo(environment, environmentProfile);
- }
- }
-
- public CreateSignatureEnvironmentProfile parseCreateSignatureEnvironmentProfile(
- at.gv.egiz.moasig.CreateXMLSignatureRequestType.SingleSignatureInfo.CreateSignatureInfo createSignatureInfo)
- throws MOAApplicationException {
- if (createSignatureInfo.getCreateSignatureEnvironmentProfile() != null) {
- return parseCreateSignatureEnvironmentProfile(createSignatureInfo.getCreateSignatureEnvironmentProfile());
- } else {
- String profileID = createSignatureInfo.getCreateSignatureEnvironmentProfileID();
- return factory.createCreateSignatureEnvironmentProfile(profileID);
- }
- }
-
- public CreateTransformsInfoProfile parseCreateTransformsInfoProfile(
- at.gv.egiz.moasig.CreateXMLSignatureRequestType.SingleSignatureInfo.DataObjectInfo dataObjectInfo)
- throws MOAApplicationException {
- if (dataObjectInfo.getCreateTransformsInfoProfile() != null) {
- at.gv.egiz.moasig.CreateTransformsInfoProfile createTransformsInfoProfile = dataObjectInfo
- .getCreateTransformsInfoProfile();
- return parseCreateTransformsInfoProfile(createTransformsInfoProfile);
- } else {
- String profileID = dataObjectInfo.getCreateTransformsInfoProfileID();
- return factory.createCreateTransformsInfoProfile(profileID);
- }
- }
-
- /**
- * Parse a <code>CreateTransformsInfoProfile</code> DOM element.
- *
- * @param profileElem
- * The <code>CreateTransformsInfoProfile</code> element to parse.
- * @return The <code>CreateTransformsInfoProfile</code> API object
- * containing the data from the <code>profileElem</code>.
- * @throws MOAApplicationException
- * An error occurred parsing the DOM element.
- */
- public CreateTransformsInfoProfile parseCreateTransformsInfoProfile(
- at.gv.egiz.moasig.CreateTransformsInfoProfile createTransformsInfoProfile) throws MOAApplicationException {
- if(createTransformsInfoProfile == null) {
- return null;
- }
-
- CreateTransformsInfo createTransformsInfo = parseCreateTransformsInfo(
- createTransformsInfoProfile.getCreateTransformsInfo());
- List supplements = parseSupplements(createTransformsInfoProfile.getSupplement());
- return factory.createCreateTransformsInfoProfile(createTransformsInfo, supplements);
- }
-
- /**
- * Parse a <code>XMLDataObjectAssociationType</code> kind of DOM element.
- *
- * @param assocElem
- * The <code>XMLDataObjectAssociationType</code> kind of DOM
- * elmeent to parse.
- * @return The <code>XMLDataObjectAssociation</code> API object containing
- * the data from the <code>XMLDataObjectAssociationType</code> DOM
- * element.
- * @throws MOAApplicationException
- */
- public XMLDataObjectAssociation parseXMLDataObjectAssociation(
- at.gv.egiz.moasig.XMLDataObjectAssociationType xmlDataObjectAssociationType)
- throws MOAApplicationException {
-
- MetaInfo metaInfo = parseMetaInfo(xmlDataObjectAssociationType.getMetaInfo());
-
- Content content = buildContent(xmlDataObjectAssociationType.getContent());
-
- return factory.createXMLDataObjectAssociation(metaInfo, content);
- }
-
- /**
- * Parse a <code>CreateSignatureEnvironmentProfile</code> DOM element.
- *
- * @param profileElem
- * The <code>CreateSignatureEnvironmentProfile</code> DOM element
- * to parse.
- * @return The <code>CreateSignatureEnvironmentProfile</code> API object
- * containing the data from the <code>profileElem</code>.
- * @throws MOAApplicationException
- */
- public CreateSignatureEnvironmentProfile parseCreateSignatureEnvironmentProfile(
- at.gv.egiz.moasig.CreateSignatureEnvironmentProfile createSignatureEnvironmentProfile)
- throws MOAApplicationException {
-
- CreateSignatureLocation createSignatureLocation = parseCreateSignatureLocation(
- createSignatureEnvironmentProfile.getCreateSignatureLocation());
- List supplements = parseSupplements(createSignatureEnvironmentProfile.getSupplement());
-
- return factory.createCreateSignatureEnvironmentProfile(createSignatureLocation, supplements);
- }
-
- /**
- * Parse a <code>CreateSignatureLocation</code> DOM element contained in a
- * <code>CreateSignatureEnvironmentProfile</code>.
- *
- * @param profileElem
- * The <code>CreateSignatureEnvironmentProfile</code> DOM element
- * containing the <code>CreateSignatureLocation</code>.
- * @return The <code>CreateSignatureLocation</code> API object containing
- * the data from the <code>CreateSignatureLocation</code> DOM
- * element.
- */
- private CreateSignatureLocation parseCreateSignatureLocation(
- at.gv.egiz.moasig.CreateSignatureLocationType createSignatureLocationType) {
-
- String xPathExpression = createSignatureLocationType.getValue();
- Map namespaceDeclarations = new HashMap();// DOMUtils.getNamespaceDeclarations(locationElem);
- int index = createSignatureLocationType.getIndex().intValue();
- // Integer.parseInt(indexStr);
-
- return factory.createCreateSignatureLocation(xPathExpression, index, namespaceDeclarations);
- }
-
- /**
- * Parse all <code>Supplement</code> DOM elements contained in a given
- * parent DOM element.
- *
- * @param supplementsParentElem
- * The DOM element being the parent of the
- * <code>Supplement</code>s.
- * @return A <code>List</code> of <code>Supplement</code> API objects
- * containing the data from the <code>Supplement</code> DOM
- * elements.
- * @throws MOAApplicationException
- */
- private List parseSupplements(List<at.gv.egiz.moasig.XMLDataObjectAssociationType> supplementsList)
- throws MOAApplicationException {
- List supplements = new ArrayList();
- Iterator<at.gv.egiz.moasig.XMLDataObjectAssociationType> supplementsIterator = supplementsList.iterator();
-
- while (supplementsIterator.hasNext()) {
- at.gv.egiz.moasig.XMLDataObjectAssociationType xmlDataObjectAssociationType = supplementsIterator.next();
- XMLDataObjectAssociation supplement = parseXMLDataObjectAssociation(xmlDataObjectAssociationType);
- supplements.add(supplement);
- }
- return supplements;
- }
-
- /**
- * Parse the <code>CreateTransformsInfo</code> DOM element contained in a
- * <code>CreateTransformsInfoProfile</code>.
- *
- * @param profileElem
- * The <code>CreateTransformsInfoProfile</code> DOM element
- * containing the <code>CreateTransformsInfo</code>.
- * @return The <code>CreateTransformsInfo</code> API object containinig the
- * data from the <code>CreateTransformsInfo</code> DOM element.
- * @throws MOAApplicationException
- * An error occurred parsing the
- * <code>CreateTransformsInfo</code> DOM element.
- */
- public CreateTransformsInfo parseCreateTransformsInfo(at.gv.egiz.moasig.TransformsInfoType transformsInfoType)
- throws MOAApplicationException {
- MetaInfo finalDataMetaInfo = null;
- List transforms = null;
- if (transformsInfoType != null) {
- if (transformsInfoType.getMoaTransforms() != null) {
- if (transformsInfoType.getMoaTransforms() != null) {
- // Transform Parser with MoaTransformsType
- at.gv.egovernment.moa.spss.server.webservice.binding.TransformParser parser = new at.gv.egovernment.moa.spss.server.webservice.binding.TransformParser();
- transforms = parser.parseTransforms(transformsInfoType.getMoaTransforms());
- }
- }
-
- finalDataMetaInfo = parseMetaInfo(transformsInfoType.getFinalDataMetaInfo());
- }
- return factory.createCreateTransformsInfo(transforms, finalDataMetaInfo);
- }
-
- public Content buildContent(at.gv.egiz.moasig.DataObjectInfoType.DataObject dataObject)
- throws MOAApplicationException {
- String referenceURI = dataObject.getReference();
- if (dataObject.getBase64Content() != null) {
- return factory.createContent(new ByteArrayInputStream(dataObject.getBase64Content()), referenceURI);
- } else if (dataObject.getLocRefContent() != null) {
- String locationReferenceURI = dataObject.getLocRefContent();
- return factory.createContent(locationReferenceURI, referenceURI);
- } else {
- return factory.createContent(referenceURI);
- }
- }
-
- public Content buildContent(at.gv.egiz.moasig.ContentOptionalRefType contentBaseType)
- throws MOAApplicationException {
-
- String referenceURI = contentBaseType.getReference();
-
- if (contentBaseType.getBase64Content() != null) {
- return factory.createContent(new ByteArrayInputStream(contentBaseType.getBase64Content()), referenceURI);
- } else if (contentBaseType.getLocRefContent() != null) {
- String locationReferenceURI = contentBaseType.getLocRefContent();
- return factory.createContent(locationReferenceURI, referenceURI);
- } else {
- return factory.createContent(referenceURI);
- }
- }
-
- public MetaInfo parseMetaInfo(at.gv.egiz.moasig.FinalDataMetaInfoType metaInfoElem) {
- SPSSFactory factory = SPSSFactory.getInstance();
-
- String mimeType = metaInfoElem.getMimeType();
- String description = metaInfoElem.getDescription();
- String type = metaInfoElem.getType();
- // TODO: any type not supported
-
- return factory.createMetaInfo(mimeType, description, null, type);
- }
-
- public MetaInfo parseMetaInfo(at.gv.egiz.moasig.MetaInfoType metaInfoElem) {
- SPSSFactory factory = SPSSFactory.getInstance();
-
- String mimeType = metaInfoElem.getMimeType();
- String description = metaInfoElem.getDescription();
- // TODO: any and type not supported
-
- return factory.createMetaInfo(mimeType, description, null, null);
- }
-
- public at.gv.egiz.moasig.KeyInfoType buildSignerInfo(at.gv.egovernment.moa.spss.api.common.SignerInfo signerInfo)
- throws MOAApplicationException {
- at.gv.egiz.moasig.KeyInfoType infoType = new at.gv.egiz.moasig.KeyInfoType();
-
- at.gv.egiz.moasig.X509DataType x509DataType = new at.gv.egiz.moasig.X509DataType();
-
- at.gv.egiz.moasig.ObjectFactory of = new at.gv.egiz.moasig.ObjectFactory();
-
- // Set Issuer
-
- at.gv.egiz.moasig.X509IssuerSerialType x509IssuerSerialType = new at.gv.egiz.moasig.X509IssuerSerialType();
-
- x509IssuerSerialType.setX509IssuerName(signerInfo.getSignerCertificate().getIssuerDN().getName());
- x509IssuerSerialType.setX509SerialNumber(signerInfo.getSignerCertificate().getSerialNumber());
-
- x509DataType.getX509IssuerSerialOrX509SKIOrX509SubjectName()
- .add(of.createX509DataTypeX509IssuerSerial(x509IssuerSerialType));
-
- // Set Subject
- try {
- RFC2253NameParser parser = new RFC2253NameParser(
- signerInfo.getSignerCertificate().getSubjectDN().getName());
- String subjectRfc2253 = parser.parse().getRFC2253String();
- x509DataType.getX509IssuerSerialOrX509SKIOrX509SubjectName()
- .add(of.createX509DataTypeX509SubjectName(subjectRfc2253));
- } catch (RFC2253NameParserException e) {
- x509DataType.getX509IssuerSerialOrX509SKIOrX509SubjectName().add(
- of.createX509DataTypeX509SubjectName(signerInfo.getSignerCertificate().getSubjectDN().getName()));
- }
-
- // Set Certificate
- try {
- x509DataType.getX509IssuerSerialOrX509SKIOrX509SubjectName()
- .add(of.createX509DataTypeX509Certificate(signerInfo.getSignerCertificate().getEncoded()));
- } catch (CertificateEncodingException e) {
- throw new MOAApplicationException("2245", null, e);
- }
-
- // Qualified Cert
-
- if (signerInfo.isQualifiedCertificate()) {
- QualifiedCertificate qualifiedCertificate = of.createQualifiedCertificate();
- if ("TLS".compareToIgnoreCase(signerInfo.getQCSource()) == 0) {
- qualifiedCertificate.setSource(signerInfo.getQCSource());
- }
- x509DataType.getX509IssuerSerialOrX509SKIOrX509SubjectName().add(qualifiedCertificate);
- }
-
- // Public Authority
-
- if (signerInfo.isPublicAuthority()) {
- PublicAuthorityType publicAuthorityType = of.createPublicAuthorityType();
-
- if (signerInfo.getPublicAuhtorityID() != null) {
- publicAuthorityType.setCode(signerInfo.getPublicAuhtorityID());
- }
-
- JAXBElement<PublicAuthorityType> publicAuthority = of.createPublicAuthority(publicAuthorityType);
- x509DataType.getX509IssuerSerialOrX509SKIOrX509SubjectName().add(publicAuthority);
- }
-
- // ssCD
-
- if (signerInfo.isSSCD()) {
- SecureSignatureCreationDevice sscd = of.createSecureSignatureCreationDevice();
- sscd.setSource(signerInfo.getSSCDSource());
- x509DataType.getX509IssuerSerialOrX509SKIOrX509SubjectName().add(sscd);
- }
-
- if (signerInfo.getIssuerCountryCode() != null) {
- x509DataType.getX509IssuerSerialOrX509SKIOrX509SubjectName()
- .add(of.createIssuingCountry(signerInfo.getIssuerCountryCode()));
- }
-
- return infoType;
- }
-
- public at.gv.egiz.moasig.CheckResultType buildCheckResult(
- at.gv.egovernment.moa.spss.api.common.CheckResult checkResult) {
- at.gv.egiz.moasig.CheckResultType checkResultType = new at.gv.egiz.moasig.CheckResultType();
- checkResultType.setCode(BigInteger.valueOf(checkResult.getCode()));
-
- if (checkResult.getInfo() != null) {
- at.gv.egiz.moasig.AnyChildrenType anyInfos = new at.gv.egiz.moasig.AnyChildrenType();
-
- for (int idx = 0; idx < checkResult.getInfo().getLength(); idx++) {
- Node node = checkResult.getInfo().item(idx);
- if (node instanceof Element) {
- anyInfos.getContent().add((Element) node);
- }
- }
-
- checkResultType.setInfo(anyInfos);
- }
- return checkResultType;
- }
-
- /**
- * Parse a the <code>DataObject</code> DOM element contained in a given
- * <code>VerifyCMSSignatureRequest</code> DOM element.
- *
- * @param requestElem
- * The <code>VerifyCMSSignatureRequest</code> DOM element to
- * parse.
- * @return The <code>CMSDataObject</code> API object containing the data
- * from the <code>DataObject</code> DOM element.
- */
- public CMSDataObject parseDataObject(at.gv.egiz.moasig.CMSDataObjectRequiredMetaType cmsDataObject) {
-
- if (cmsDataObject != null) {
- MetaInfo metaInfo = null;
-
- MetaInfoType metaInfoType = cmsDataObject.getMetaInfo();
-
- if (metaInfoType != null) {
- metaInfo = this.parseMetaInfo(metaInfoType);
- }
-
- at.gv.egiz.moasig.CMSContentBaseType cmsContent = cmsDataObject.getContent();
-
- CMSContent content = parseContent(cmsContent);
-
- BigDecimal excludeByteRangeFrom = null;
-
- if (cmsDataObject.getFrom() != null) {
- excludeByteRangeFrom = new BigDecimal(cmsDataObject.getFrom());
- }
-
- BigDecimal excludeByteRangeTo = null;
- if (cmsDataObject.getTo() != null) {
- excludeByteRangeTo = new BigDecimal(cmsDataObject.getTo());
- }
-
- return factory.createCMSDataObject(metaInfo, content, excludeByteRangeFrom, excludeByteRangeTo);
-
- } else {
- return null;
- }
-
- }
-
- /**
- * Parse a the <code>DataObject</code> DOM element contained in a given
- * <code>VerifyCMSSignatureRequest</code> DOM element.
- *
- * @param requestElem
- * The <code>VerifyCMSSignatureRequest</code> DOM element to
- * parse.
- * @return The <code>CMSDataObject</code> API object containing the data
- * from the <code>DataObject</code> DOM element.
- */
- public CMSDataObject parseDataObject(at.gv.egiz.moasig.CMSDataObjectOptionalMetaType cmsDataObject) {
-
- if (cmsDataObject != null) {
- MetaInfo metaInfo = null;
-
- MetaInfoType metaInfoType = cmsDataObject.getMetaInfo();
-
- if (metaInfoType != null) {
- metaInfo = this.parseMetaInfo(metaInfoType);
- }
-
- at.gv.egiz.moasig.CMSContentBaseType cmsContent = cmsDataObject.getContent();
-
- CMSContent content = parseContent(cmsContent);
-
- BigDecimal excludeByteRangeFrom = null;
-
- if (cmsDataObject.getFrom() != null) {
- excludeByteRangeFrom = new BigDecimal(cmsDataObject.getFrom());
- }
-
- BigDecimal excludeByteRangeTo = null;
- if (cmsDataObject.getTo() != null) {
- excludeByteRangeTo = new BigDecimal(cmsDataObject.getTo());
- }
-
- return factory.createCMSDataObject(metaInfo, content, excludeByteRangeFrom, excludeByteRangeTo);
-
- } else {
- return null;
- }
-
- }
-
- /**
- * Parse the content contained in a <code>CMSContentBaseType</code> kind of
- * DOM element.
- *
- * @param contentElem
- * The <code>CMSContentBaseType</code> kind of element to parse.
- * @return A <code>CMSDataObject</code> API object containing the data from
- * the given DOM element.
- */
- public CMSContent parseContent(at.gv.egiz.moasig.CMSContentBaseType cmsContent) {
-
- if (cmsContent.getBase64Content() != null) {
- InputStream binaryContent = new ByteArrayInputStream(cmsContent.getBase64Content());
- return factory.createCMSContent(binaryContent);
- } else {
- return factory.createCMSContent(cmsContent.getReference());
- }
- }
-}