From 9149618d9049d470d0423c4e896ab6c127eb6c02 Mon Sep 17 00:00:00 2001 From: gregor Date: Thu, 20 Nov 2003 08:44:42 +0000 Subject: Erstellt. git-svn-id: https://joinup.ec.europa.eu/svn/moa-idspss/trunk@59 d688527b-c9ab-4aba-bd8d-4036d912da1d --- spss.slinterface/.classpath | 22 + spss.slinterface/.project | 18 + spss.slinterface/.tomcatplugin | 10 + spss.slinterface/WEB-INF/lib/axis-ant.jar | Bin 0 -> 385010 bytes spss.slinterface/WEB-INF/lib/axis.jar | Bin 0 -> 1235721 bytes spss.slinterface/WEB-INF/lib/commons-discovery.jar | Bin 0 -> 71442 bytes .../WEB-INF/lib/commons-fileupload-1.0.jar | Bin 0 -> 22379 bytes spss.slinterface/WEB-INF/lib/commons-logging.jar | Bin 0 -> 31605 bytes spss.slinterface/WEB-INF/lib/jaxrpc.jar | Bin 0 -> 35759 bytes spss.slinterface/WEB-INF/lib/log4j-1.2.7.jar | Bin 0 -> 350677 bytes spss.slinterface/WEB-INF/lib/saaj.jar | Bin 0 -> 18501 bytes spss.slinterface/WEB-INF/lib/wsdl4j.jar | Bin 0 -> 113853 bytes spss.slinterface/WEB-INF/lib/xalan-2.5.1.jar | Bin 0 -> 2907319 bytes .../WEB-INF/lib/xerces-2.4.0/xercesImpl-2.4.0.jar | Bin 0 -> 927669 bytes .../lib/xerces-2.4.0/xmlParserAPIs-2.4.0.jar | Bin 0 -> 123705 bytes .../moa/spss/slinterface/Constants.java | 55 +++ .../spss/slinterface/filters/RequestWrapper.java | 57 +++ .../spss/slinterface/filters/ResponseWrapper.java | 44 ++ .../moa/spss/slinterface/filters/SL2MOAFilter.java | 341 ++++++++++++++++ .../slinterface/filters/ServletInputStream.java | 55 +++ .../slinterface/filters/ServletOutputStream.java | 50 +++ .../slinterface/listeners/ContextListener.java | 153 +++++++ .../spss/slinterface/moainvoker/MOAInvoker.java | 92 +++++ .../moa/spss/slinterface/servlets/MOAServlet.java | 111 +++++ spss.slinterface/WEB-INF/web.xml | 39 ++ .../res/resources/properties/init.properties | 7 + .../res/resources/schemas/Core.20020225.xsd | 399 ++++++++++++++++++ .../res/resources/schemas/Core.20020831.xsd | 153 +++++++ .../res/resources/schemas/Core.20031231.xsd | 58 +++ .../res/resources/schemas/MOA-SPSS-1.2.xsd | 445 +++++++++++++++++++++ .../res/resources/simpleVerReq.moa.xml | 29 ++ spss.slinterface/res/resources/simpleVerReq.xml | 100 +++++ .../res/resources/stylesheets/moa2sl.xsl | 96 +++++ .../resources/stylesheets/simpleVerReq.sl11.xml | 100 +++++ .../stylesheets/simpleVerReq.sl12.locref.moa.xml | 1 + .../stylesheets/simpleVerReq.sl12.locref.xml | 20 + .../res/resources/stylesheets/sl2moa.xsl | 218 ++++++++++ .../stylesheets/verifyresponse.moa.sl.xml | 25 ++ .../resources/stylesheets/verifyresponse.moa.xml | 46 +++ spss.slinterface/res/resources/test.xml | 2 + spss.slinterface/res/resources/test.xsl | 14 + spss.slinterface/test/forms/simpleForm.html | 25 ++ 42 files changed, 2785 insertions(+) create mode 100644 spss.slinterface/.classpath create mode 100644 spss.slinterface/.project create mode 100644 spss.slinterface/.tomcatplugin create mode 100644 spss.slinterface/WEB-INF/lib/axis-ant.jar create mode 100644 spss.slinterface/WEB-INF/lib/axis.jar create mode 100644 spss.slinterface/WEB-INF/lib/commons-discovery.jar create mode 100644 spss.slinterface/WEB-INF/lib/commons-fileupload-1.0.jar create mode 100644 spss.slinterface/WEB-INF/lib/commons-logging.jar create mode 100644 spss.slinterface/WEB-INF/lib/jaxrpc.jar create mode 100644 spss.slinterface/WEB-INF/lib/log4j-1.2.7.jar create mode 100644 spss.slinterface/WEB-INF/lib/saaj.jar create mode 100644 spss.slinterface/WEB-INF/lib/wsdl4j.jar create mode 100644 spss.slinterface/WEB-INF/lib/xalan-2.5.1.jar create mode 100644 spss.slinterface/WEB-INF/lib/xerces-2.4.0/xercesImpl-2.4.0.jar create mode 100644 spss.slinterface/WEB-INF/lib/xerces-2.4.0/xmlParserAPIs-2.4.0.jar create mode 100644 spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/Constants.java create mode 100644 spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/filters/RequestWrapper.java create mode 100644 spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/filters/ResponseWrapper.java create mode 100644 spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/filters/SL2MOAFilter.java create mode 100644 spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/filters/ServletInputStream.java create mode 100644 spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/filters/ServletOutputStream.java create mode 100644 spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/listeners/ContextListener.java create mode 100644 spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/moainvoker/MOAInvoker.java create mode 100644 spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/servlets/MOAServlet.java create mode 100644 spss.slinterface/WEB-INF/web.xml create mode 100644 spss.slinterface/res/resources/properties/init.properties create mode 100644 spss.slinterface/res/resources/schemas/Core.20020225.xsd create mode 100644 spss.slinterface/res/resources/schemas/Core.20020831.xsd create mode 100644 spss.slinterface/res/resources/schemas/Core.20031231.xsd create mode 100644 spss.slinterface/res/resources/schemas/MOA-SPSS-1.2.xsd create mode 100644 spss.slinterface/res/resources/simpleVerReq.moa.xml create mode 100644 spss.slinterface/res/resources/simpleVerReq.xml create mode 100644 spss.slinterface/res/resources/stylesheets/moa2sl.xsl create mode 100644 spss.slinterface/res/resources/stylesheets/simpleVerReq.sl11.xml create mode 100644 spss.slinterface/res/resources/stylesheets/simpleVerReq.sl12.locref.moa.xml create mode 100644 spss.slinterface/res/resources/stylesheets/simpleVerReq.sl12.locref.xml create mode 100644 spss.slinterface/res/resources/stylesheets/sl2moa.xsl create mode 100644 spss.slinterface/res/resources/stylesheets/verifyresponse.moa.sl.xml create mode 100644 spss.slinterface/res/resources/stylesheets/verifyresponse.moa.xml create mode 100644 spss.slinterface/res/resources/test.xml create mode 100644 spss.slinterface/res/resources/test.xsl create mode 100644 spss.slinterface/test/forms/simpleForm.html (limited to 'spss.slinterface') diff --git a/spss.slinterface/.classpath b/spss.slinterface/.classpath new file mode 100644 index 000000000..3ef5766d8 --- /dev/null +++ b/spss.slinterface/.classpath @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/spss.slinterface/.project b/spss.slinterface/.project new file mode 100644 index 000000000..aec5cc99a --- /dev/null +++ b/spss.slinterface/.project @@ -0,0 +1,18 @@ + + + MOA SPSS SL-Interface + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + com.sysdeo.eclipse.tomcat.tomcatnature + + diff --git a/spss.slinterface/.tomcatplugin b/spss.slinterface/.tomcatplugin new file mode 100644 index 000000000..2e649ba5e --- /dev/null +++ b/spss.slinterface/.tomcatplugin @@ -0,0 +1,10 @@ + + + / + false + true + false + false + + /moa-spss-sl + diff --git a/spss.slinterface/WEB-INF/lib/axis-ant.jar b/spss.slinterface/WEB-INF/lib/axis-ant.jar new file mode 100644 index 000000000..9cb30a98a Binary files /dev/null and b/spss.slinterface/WEB-INF/lib/axis-ant.jar differ diff --git a/spss.slinterface/WEB-INF/lib/axis.jar b/spss.slinterface/WEB-INF/lib/axis.jar new file mode 100644 index 000000000..869ee16f5 Binary files /dev/null and b/spss.slinterface/WEB-INF/lib/axis.jar differ diff --git a/spss.slinterface/WEB-INF/lib/commons-discovery.jar b/spss.slinterface/WEB-INF/lib/commons-discovery.jar new file mode 100644 index 000000000..b88554847 Binary files /dev/null and b/spss.slinterface/WEB-INF/lib/commons-discovery.jar differ diff --git a/spss.slinterface/WEB-INF/lib/commons-fileupload-1.0.jar b/spss.slinterface/WEB-INF/lib/commons-fileupload-1.0.jar new file mode 100644 index 000000000..1ca4a9cd3 Binary files /dev/null and b/spss.slinterface/WEB-INF/lib/commons-fileupload-1.0.jar differ diff --git a/spss.slinterface/WEB-INF/lib/commons-logging.jar b/spss.slinterface/WEB-INF/lib/commons-logging.jar new file mode 100644 index 000000000..b99c9375a Binary files /dev/null and b/spss.slinterface/WEB-INF/lib/commons-logging.jar differ diff --git a/spss.slinterface/WEB-INF/lib/jaxrpc.jar b/spss.slinterface/WEB-INF/lib/jaxrpc.jar new file mode 100644 index 000000000..5f6a56f02 Binary files /dev/null and b/spss.slinterface/WEB-INF/lib/jaxrpc.jar differ diff --git a/spss.slinterface/WEB-INF/lib/log4j-1.2.7.jar b/spss.slinterface/WEB-INF/lib/log4j-1.2.7.jar new file mode 100644 index 000000000..1595a56ef Binary files /dev/null and b/spss.slinterface/WEB-INF/lib/log4j-1.2.7.jar differ diff --git a/spss.slinterface/WEB-INF/lib/saaj.jar b/spss.slinterface/WEB-INF/lib/saaj.jar new file mode 100644 index 000000000..f2242abe5 Binary files /dev/null and b/spss.slinterface/WEB-INF/lib/saaj.jar differ diff --git a/spss.slinterface/WEB-INF/lib/wsdl4j.jar b/spss.slinterface/WEB-INF/lib/wsdl4j.jar new file mode 100644 index 000000000..820abd082 Binary files /dev/null and b/spss.slinterface/WEB-INF/lib/wsdl4j.jar differ diff --git a/spss.slinterface/WEB-INF/lib/xalan-2.5.1.jar b/spss.slinterface/WEB-INF/lib/xalan-2.5.1.jar new file mode 100644 index 000000000..44d4d094d Binary files /dev/null and b/spss.slinterface/WEB-INF/lib/xalan-2.5.1.jar differ diff --git a/spss.slinterface/WEB-INF/lib/xerces-2.4.0/xercesImpl-2.4.0.jar b/spss.slinterface/WEB-INF/lib/xerces-2.4.0/xercesImpl-2.4.0.jar new file mode 100644 index 000000000..99cc23f2a Binary files /dev/null and b/spss.slinterface/WEB-INF/lib/xerces-2.4.0/xercesImpl-2.4.0.jar differ diff --git a/spss.slinterface/WEB-INF/lib/xerces-2.4.0/xmlParserAPIs-2.4.0.jar b/spss.slinterface/WEB-INF/lib/xerces-2.4.0/xmlParserAPIs-2.4.0.jar new file mode 100644 index 000000000..6ba4ff805 Binary files /dev/null and b/spss.slinterface/WEB-INF/lib/xerces-2.4.0/xmlParserAPIs-2.4.0.jar differ diff --git a/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/Constants.java b/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/Constants.java new file mode 100644 index 000000000..c6ea9e88d --- /dev/null +++ b/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/Constants.java @@ -0,0 +1,55 @@ +/* + * Created on 18.11.2003 + * + * (c) Stabsstelle IKT-Strategie des Bundes + */ +package at.gv.egovernment.moa.spss.slinterface; + +/** + * @author Gregor Karlinger (mailto:gregor.karlinger@cio.gv.at) + */ +public class Constants +{ + // System properties + public static final String SP_INIT_PROPS_LOC_ = + "at.gv.egovernment.moa.spss.slinterface.PropertiesLocation"; + + // Init properties + public static final String IP_SL2MOA_STYLESHEET_ = "location.stylesheet.sl2moa"; + public static final String IP_MOA2SL_STYLESHEET_ = "location.stylesheet.moa2sl"; + public static final String IP_SL_SCHEMA_ = "location.schema.sl"; + public static final String IP_MOA_SCHEMA_ = "location.schema.moa"; + public static final String IP_SP_ENDPOINT_ = "service.endpoint.sp"; + + // Logging hierarchies + + public static final String LH_BASE_ = "slinterface"; + public static final String LH_LISTENERS_ = LH_BASE_ + ".listeners"; + public static final String LH_FILTERS_ = LH_BASE_ + ".filters"; + public static final String LH_SERVLETS_ = LH_BASE_ + ".servlets"; + + // Web service context parameters + + public static final String WSCP_INIT_PROPS_ = "initProperties"; + public static final String WSCP_SL2MOA_TRANSFORMER_ = "sl2MoaTransformer"; + public static final String WSCP_MOA2SL_TRANSFORMER_ = "moa2SlTransformer"; + public static final String WSCP_XMLPARSER_ = "xmlParser"; + + // Security-Layer constants + + public static final String SLC_NAME_HTTP_REQUEST_ = "http-security-layer-request"; + public static final String SLC_NAME_XML_REQUEST_ = "XMLRequest"; + public static final String SLC_NAME_DATA_URL_ = "DataURL"; + public static final String SLC_NAME_STYLESHEET_URL_ = "StylesheetURL"; + public static final String SLC_NAME_REDIRECT_URL_ = "RedirectURL"; + + // Namespace URIs + + public static final String NSURI_SL_11_ = "http://www.buergerkarte.at/namespaces/securitylayer/20020831#"; + public static final String NSURI_SL_12_ = "http://www.buergerkarte.at/namespaces/securitylayer/20031231#"; + public static final String NSURI_MOA_12_ = "http://reference.e-government.gv.at/namespace/moa/20020822#"; + + // MOA invoker constants + + public static final String MI_SP_QNAME_ = "SignatureVerification"; +} diff --git a/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/filters/RequestWrapper.java b/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/filters/RequestWrapper.java new file mode 100644 index 000000000..a6652a56e --- /dev/null +++ b/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/filters/RequestWrapper.java @@ -0,0 +1,57 @@ +/* + * Created on 19.11.2003 + * + * (c) Stabsstelle IKT-Strategie des Bundes + */ +package at.gv.egovernment.moa.spss.slinterface.filters; + +import java.io.ByteArrayInputStream; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletRequestWrapper; + +/** + * @author Gregor Karlinger (mailto:gregor.karlinger@cio.gv.at) + */ +public class RequestWrapper extends HttpServletRequestWrapper +{ + + private ServletInputStream inputStream_; + + /* ---------------------------------------------------------------------------------------------------- */ + + /** + * Generates a request wrapper around a particular request. + * + * @param request The request to be wrapped. + * + * @param inputStream The new inputstream, which will be returned by method {@link #getInputStream}, and + * whose length will be returned by method {@link #getContentLength}. + */ + public RequestWrapper(HttpServletRequest request, ByteArrayInputStream inputStream) + { + super(request); + inputStream_ = new ServletInputStream(inputStream); + } + + /* ---------------------------------------------------------------------------------------------------- */ + + /** + * @see #RequestWrapper(HttpServletRequest, ByteArrayInputStream) + */ + public javax.servlet.ServletInputStream getInputStream() + { + return inputStream_; + } + + /* ---------------------------------------------------------------------------------------------------- */ + + /** + * @see #RequestWrapper(HttpServletRequest, ByteArrayInputStream) + */ + public int getContentLength() + { + return inputStream_.getContentLength(); + } + +} diff --git a/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/filters/ResponseWrapper.java b/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/filters/ResponseWrapper.java new file mode 100644 index 000000000..420723abb --- /dev/null +++ b/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/filters/ResponseWrapper.java @@ -0,0 +1,44 @@ +/* + * Created on 18.11.2003 + * + * (c) Stabsstelle IKT-Strategie des Bundes + */ +package at.gv.egovernment.moa.spss.slinterface.filters; + +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpServletResponseWrapper; + +/** + * @author Gregor Karlinger (mailto:gregor.karlinger@cio.gv.at) + */ +public class ResponseWrapper extends HttpServletResponseWrapper +{ + private ServletOutputStream outputStream_; + + /* ---------------------------------------------------------------------------------------------------- */ + + public ResponseWrapper(HttpServletResponse response) + { + super(response); + outputStream_ = new ServletOutputStream(); + } + + /* ---------------------------------------------------------------------------------------------------- */ + + public javax.servlet.ServletOutputStream getOutputStream() + { + return outputStream_; + } + + /* ---------------------------------------------------------------------------------------------------- */ + + /** + * Returns the wrapped response as a byte array. + * + * @return the response as a byte array. + */ + public byte[] toByteArray() + { + return outputStream_.toByteArray(); + } +} diff --git a/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/filters/SL2MOAFilter.java b/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/filters/SL2MOAFilter.java new file mode 100644 index 000000000..4632c80f5 --- /dev/null +++ b/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/filters/SL2MOAFilter.java @@ -0,0 +1,341 @@ +/* + * Created on 18.11.2003 + * + * (c) Stabsstelle IKT-Strategie des Bundes + */ +package at.gv.egovernment.moa.spss.slinterface.filters; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.CharArrayReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.Reader; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Properties; + +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletContext; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerConfigurationException; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; +import javax.xml.transform.stream.StreamSource; + +import org.apache.commons.fileupload.DiskFileUpload; +import org.apache.commons.fileupload.FileItem; +import org.apache.commons.fileupload.FileUpload; +import org.apache.commons.fileupload.FileUploadException; +import org.apache.log4j.Logger; +import org.apache.xerces.parsers.DOMParser; +import org.w3c.dom.Document; +import org.xml.sax.InputSource; + +import at.gv.egovernment.moa.spss.slinterface.Constants; + +/** + * @author Gregor Karlinger (mailto:gregor.karlinger@cio.gv.at) + */ +public class SL2MOAFilter implements Filter +{ + private static Logger logger_ = Logger.getLogger(Constants.LH_FILTERS_); + + private FilterConfig config_; + private SLRequest slRequest_; + + /* ---------------------------------------------------------------------------------------------------- */ + + /** + * @see javax.servlet.Filter#init(javax.servlet.FilterConfig) + */ + public void init(FilterConfig config) throws ServletException + { + // Store filter configuration + config_ = config; + + slRequest_ = new SLRequest(); + + // Initialize stylesheet transform SL2MOA + ServletContext context = config_.getServletContext(); + Transformer sl2MoaTransformer = (Transformer) context.getAttribute(Constants.WSCP_SL2MOA_TRANSFORMER_); + if (sl2MoaTransformer == null) + { + initTransformer(context, Constants.IP_SL2MOA_STYLESHEET_); + } + + // Initialize stylesheet transform MOA2SL + Transformer moa2SlTransformer = (Transformer) context.getAttribute(Constants.WSCP_MOA2SL_TRANSFORMER_); + if (moa2SlTransformer == null) + { + initTransformer(context, Constants.IP_MOA2SL_STYLESHEET_); + } + + } + + /* ---------------------------------------------------------------------------------------------------- */ + + /* + * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, + * javax.servlet.FilterChain) + */ + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) + throws IOException, ServletException + { + // Check if request is HTTP-POST + checkHttpPost((HttpServletRequest) request); + + // Get SL request from content of request + parseRequest((HttpServletRequest) request); + + // Schema validate SL request + CharArrayReader slXmlRequestCAR = new CharArrayReader(slRequest_.xmlRequest_.toCharArray()); + Document slXMLRequestDoc = parseSlXmlRequest(slXmlRequestCAR); + + // Transform SL request into a MOA SPSS request + Transformer sl2MoaTransformer = + (Transformer) config_.getServletContext().getAttribute(Constants.WSCP_SL2MOA_TRANSFORMER_); + DOMSource slXMLRequestDS = new DOMSource(slXMLRequestDoc); + ByteArrayOutputStream moaRequestBOS = new ByteArrayOutputStream(); + StreamResult moaRequestResult = new StreamResult(moaRequestBOS); + try + { + sl2MoaTransformer.transform(slXMLRequestDS, moaRequestResult); + } + catch (TransformerException e) + { + String message = "Transforming SL XML request into MOA XML request failed."; + logger_.error(message, e); + throw new ServletException(message, e); + } + logger_.debug("MOA XML Request:\n" + moaRequestBOS.toString()); + ByteArrayInputStream moaRequestIS = new ByteArrayInputStream(moaRequestBOS.toByteArray()); + + // Invoke MOA SPSS + RequestWrapper requestWrapper = new RequestWrapper((HttpServletRequest) request, moaRequestIS); + ResponseWrapper responseWrapper = new ResponseWrapper((HttpServletResponse) response); + chain.doFilter(requestWrapper, responseWrapper); + + // Prepare response to client + response.setContentType("text/xml"); + + // Transform MOA response into a SL response and send SL response back to client + Transformer moa2SlTransformer = + (Transformer) config_.getServletContext().getAttribute(Constants.WSCP_MOA2SL_TRANSFORMER_); + ServletOutputStream moaResponseSOS = (ServletOutputStream) responseWrapper.getOutputStream(); + ByteArrayInputStream moaResponseBIS = new ByteArrayInputStream(moaResponseSOS.toByteArray()); + StreamSource moaResponseSource = new StreamSource(moaResponseBIS); + StreamResult slResponseResult = new StreamResult(response.getOutputStream()); + try + { + moa2SlTransformer.transform(moaResponseSource, slResponseResult); + } + catch (TransformerException e) + { + String message = "Transforming MOA XML response into SL XML response failed."; + logger_.error(message, e); + throw new ServletException(message, e); + } + } + + /* ---------------------------------------------------------------------------------------------------- */ + + /** + * @see javax.servlet.Filter#destroy() + */ + public void destroy() + { + // Nothing to do here at the moment. + } + + /* ---------------------------------------------------------------------------------------------------- */ + + private void initTransformer(ServletContext context, String initPropStylesheetLoc) throws ServletException + { + String stylesheetName = + (Constants.IP_SL2MOA_STYLESHEET_.equals(initPropStylesheetLoc)) + ? "sl2Moa" + : "moa2Sl"; + + String contextAttrName = + (Constants.IP_SL2MOA_STYLESHEET_.equals(initPropStylesheetLoc)) + ? Constants.WSCP_SL2MOA_TRANSFORMER_ + : Constants.WSCP_MOA2SL_TRANSFORMER_; + + TransformerFactory transformerFactory = TransformerFactory.newInstance(); + Properties initProps = (Properties) context.getAttribute(Constants.WSCP_INIT_PROPS_); + String stylesheetLoc = initProps.getProperty(initPropStylesheetLoc); + InputStream stylesheetIS = context.getResourceAsStream(stylesheetLoc); + if (stylesheetIS == null) + { + String message = + "Cannot load " + stylesheetName + " stylesheet from location \"" + stylesheetLoc + "\"."; + logger_.error(message); + throw new ServletException(message); + } + Transformer transformer; + try + { + StreamSource stylesheetSS = new StreamSource(stylesheetIS); + transformer = transformerFactory.newTransformer(stylesheetSS); + } + catch (TransformerConfigurationException e) + { + String message = "Cannot create XSLT transformer with " + stylesheetName + " stylesheet."; + logger_.error(message, e); + throw new ServletException(message, e); + } + context.setAttribute(contextAttrName, transformer); + } + /* ---------------------------------------------------------------------------------------------------- */ + + /** + * Parses the http request. + */ + private void parseRequest(HttpServletRequest request) throws IOException + { + // Check if request URL ends with "http-security-layer-request" + // @TODO Don't know if this check is sufficient - spec says request URL must have this value as path + String requestURI = request.getRequestURI(); + if (!requestURI.endsWith(Constants.SLC_NAME_HTTP_REQUEST_)) + { + String message = "Request does not end with \"" + Constants.SLC_NAME_HTTP_REQUEST_ + "\"."; + logger_.error(message); + throw new IOException(message); + } + + if (FileUpload.isMultipartContent(request)) + { + // Request is encoded as mulitpart/form-data + List items; + try + { + DiskFileUpload upload = new DiskFileUpload(); + items = upload.parseRequest(request); + } + catch (FileUploadException e) + { + String message = "Cannot parse multipart/form-data request."; + logger_.error(message); + throw new IOException(message); + } + + Iterator itemsIt = items.iterator(); + while (itemsIt.hasNext()) + { + FileItem currItem = (FileItem) itemsIt.next(); + String currItemName = currItem.getFieldName(); + if (Constants.SLC_NAME_XML_REQUEST_.equals(currItemName)) + slRequest_.xmlRequest_ = currItem.getString(); + else if (Constants.SLC_NAME_DATA_URL_.equals(currItemName)) + slRequest_.dataUrl_ = currItem.getString(); + else if (Constants.SLC_NAME_STYLESHEET_URL_.equals(currItemName)) + slRequest_.stylesheetUrl_ = currItem.getString(); + else if (Constants.SLC_NAME_REDIRECT_URL_.equals(currItemName)) + slRequest_.redirectUrl_ = currItem.getString(); + else + continue; // @TODO Do not evaluate other params at the moment + } + } + else + { + // Request is encoded as application/x-www-form-urlencoded + Map paramsMap = request.getParameterMap(); + Iterator paramNames = paramsMap.keySet().iterator(); + while (paramNames.hasNext()) + { + String currName = (String) paramNames.next(); + String[] currValues = (String[]) paramsMap.get(currName); + if (Constants.SLC_NAME_XML_REQUEST_.equals(currName)) + slRequest_.xmlRequest_ = currValues[0]; + else if (Constants.SLC_NAME_DATA_URL_.equals(currName)) + slRequest_.dataUrl_ = currValues[0]; + else if (Constants.SLC_NAME_STYLESHEET_URL_.equals(currName)) + slRequest_.stylesheetUrl_ = currValues[0]; + else if (Constants.SLC_NAME_REDIRECT_URL_.equals(currName)) + slRequest_.redirectUrl_ = currValues[0]; + else + continue; // @TODO Do not evaluate other params at the moment + } + } + + if (slRequest_.xmlRequest_ == null || slRequest_.dataUrl_ == null || + slRequest_.stylesheetUrl_ != null || slRequest_.redirectUrl_ != null) + { + // @TODO Only combindation of XMLRequest and StylesheetURL allowed at the moment + String message = "Currently only (XMLRequest + DataURL) is supported."; + logger_.error(message); + throw new IOException(message); + } + } + + /* ---------------------------------------------------------------------------------------------------- */ + + private Document parseSlXmlRequest(Reader slXmlRequest) throws ServletException + { + // Parse sl request + InputSource slXMLRequestIS = new InputSource(slXmlRequest); + Document slXmlRequestDoc = null; + try + { + DOMParser xmlParser = (DOMParser) config_.getServletContext().getAttribute(Constants.WSCP_XMLPARSER_); + xmlParser.parse(slXMLRequestIS); + slXmlRequestDoc = xmlParser.getDocument(); + } + catch (Exception e) + { + String message = "Parsing Security-Layer request failed."; + logger_.error(message, e); + throw new ServletException(message, e); + } + + // Check if namespace is correct + String namespaceURI = slXmlRequestDoc.getDocumentElement().getNamespaceURI(); + if (!Constants.NSURI_SL_11_.equals(namespaceURI) && !Constants.NSURI_SL_12_.equals(namespaceURI)) + { + String message = "XML request has invalid namespace: \"" + namespaceURI + "\"."; + logger_.error(message); + throw new ServletException(message); + } + + return slXmlRequestDoc; + } + + /* ---------------------------------------------------------------------------------------------------- */ + + private void checkHttpPost(HttpServletRequest request) throws ServletException + { + String method = request.getMethod(); + if (!"POST".equals(method)) + { + String message = "HTTP method \"" + method + "\" not supported. Must be \"POST\"."; + logger_.error(message); + throw new ServletException(message); + } + } + + /* ---------------------------------------------------------------------------------------------------- */ + + /** + * Helper class, representing the fields of a Security-Layer request. + * + * @author Gregor Karlinger (mailto:gregor.karlinger@cio.gv.at) + */ + class SLRequest + { + public String xmlRequest_; + public String dataUrl_; + public String stylesheetUrl_; + public String redirectUrl_; + } +} diff --git a/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/filters/ServletInputStream.java b/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/filters/ServletInputStream.java new file mode 100644 index 000000000..b0609c2f8 --- /dev/null +++ b/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/filters/ServletInputStream.java @@ -0,0 +1,55 @@ +/* + * Created on 19.11.2003 + * + * (c) Stabsstelle IKT-Strategie des Bundes + */ +package at.gv.egovernment.moa.spss.slinterface.filters; + +import java.io.ByteArrayInputStream; +import java.io.IOException; + +/** + * @author Gregor Karlinger (mailto:gregor.karlinger@cio.gv.at) + */ +public class ServletInputStream extends javax.servlet.ServletInputStream +{ + private ByteArrayInputStream inputStream_; + private int length_; + + /* ---------------------------------------------------------------------------------------------------- */ + + /** + * Generates a new ServletInputStram from the specified stream. + * + * @param inputStream See above. + */ + public ServletInputStream(ByteArrayInputStream inputStream) + { + super(); + inputStream_ = inputStream; + length_ = inputStream_.available(); + } + + /* ---------------------------------------------------------------------------------------------------- */ + + /** + * Reads a single byte from the underlying ByteArrayInputStream. + * + * @see java.io.InputStream#read() + */ + public int read() throws IOException + { + return inputStream_.read(); + } + + /* ---------------------------------------------------------------------------------------------------- */ + + /** + * Gets the length of the content from this input stream. This equals to the number of bytes which where + * available at the time of creating this ServletInputStream. + */ + public int getContentLength() + { + return length_; + } +} diff --git a/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/filters/ServletOutputStream.java b/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/filters/ServletOutputStream.java new file mode 100644 index 000000000..b790ee55c --- /dev/null +++ b/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/filters/ServletOutputStream.java @@ -0,0 +1,50 @@ +/* + * Created on 18.11.2003 + * + * (c) Stabsstelle IKT-Strategie des Bundes + */ +package at.gv.egovernment.moa.spss.slinterface.filters; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; + +/** + * @author Gregor Karlinger (mailto:gregor.karlinger@cio.gv.at) + */ +public class ServletOutputStream extends javax.servlet.ServletOutputStream +{ + private ByteArrayOutputStream outputStream_; + + /* ---------------------------------------------------------------------------------------------------- */ + + /** + * Default constructor. + */ + public ServletOutputStream() + { + super(); + outputStream_ = new ByteArrayOutputStream(); + } + + /* ---------------------------------------------------------------------------------------------------- */ + + /** + * @see java.io.OutputStream#write(int) + */ + public void write(int b) throws IOException + { + outputStream_.write(b); + } + + /* ---------------------------------------------------------------------------------------------------- */ + + /** + * Returns the content of this stream as a byte array. + * + * @return the content of this stream as a byte array. + */ + public byte[] toByteArray() + { + return outputStream_.toByteArray(); + } +} diff --git a/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/listeners/ContextListener.java b/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/listeners/ContextListener.java new file mode 100644 index 000000000..5b32a482b --- /dev/null +++ b/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/listeners/ContextListener.java @@ -0,0 +1,153 @@ +/* + * Created on 18.11.2003 + * + * (c) Stabsstelle IKT-Strategie des Bundes + */ +package at.gv.egovernment.moa.spss.slinterface.listeners; + +import java.io.IOException; +import java.io.InputStream; +import java.util.Properties; + +import javax.servlet.ServletContext; +import javax.servlet.ServletContextEvent; +import javax.servlet.ServletContextListener; + +import org.apache.log4j.Logger; +import org.apache.xerces.parsers.DOMParser; +import org.apache.xerces.parsers.XMLGrammarPreparser; +import org.apache.xerces.util.SymbolTable; +import org.apache.xerces.util.XMLGrammarPoolImpl; +import org.apache.xerces.xni.grammars.XMLGrammarDescription; +import org.apache.xerces.xni.grammars.XMLGrammarPool; +import org.apache.xerces.xni.parser.XMLInputSource; +import org.xml.sax.SAXException; + +import at.gv.egovernment.moa.spss.slinterface.Constants; + +/** + * @author Gregor Karlinger (mailto:gregor.karlinger@cio.gv.at) + */ +public class ContextListener implements ServletContextListener +{ + private static final String SAX_NAMESPACES_FEATURE = "http://xml.org/sax/features/namespaces"; + private static final String SAX_VALIDATION_FEATURE = "http://xml.org/sax/features/validation"; + + private static final String XERCES_SCHEMA_VALIDATION_FEATURE = + "http://apache.org/xml/features/validation/schema"; + private static final String XERCES_NORMALIZED_VALUE_FEATURE = + "http://apache.org/xml/features/validation/schema/normalized-value"; + private static final String XERCES_INCLUDE_IGNORABLE_WHITESPACE_FEATURE = + "http://apache.org/xml/features/dom/include-ignorable-whitespace"; + private static final String XERCES_CREATE_ENTITY_REF_NODES_FEATURE = + "http://apache.org/xml/features/dom/create-entity-ref-nodes"; + + private static final int BIG_PRIME = 2039; + + private static Logger logger_ = Logger.getLogger(Constants.LH_LISTENERS_); + + /** + * Initializes the web application. + * + * @see javax.servlet.ServletContextListener#contextInitialized(javax.servlet.ServletContextEvent) + */ + public void contextInitialized(ServletContextEvent event) + { + logger_.debug("Context is being initialized."); + + ServletContext context = event.getServletContext(); + + String initPropsLoc = System.getProperty(Constants.SP_INIT_PROPS_LOC_); + if (initPropsLoc == null) + { + logger_.error("System property \"" + Constants.SP_INIT_PROPS_LOC_ + "\" not set."); + return; + } + + // Load init properties + try + { + InputStream initPropsIS = context.getResourceAsStream(initPropsLoc); + Properties initProps = new Properties(); + initProps.load(initPropsIS); + context.setAttribute(Constants.WSCP_INIT_PROPS_, initProps); + } + catch (IOException e) + { + logger_.error("Cannot load initialization properties from location \"" + initPropsLoc + "\".", e); + } + + // Initialize XML parser + SymbolTable symbolTable = new SymbolTable(BIG_PRIME); + XMLGrammarPool grammarPool = new XMLGrammarPoolImpl(); + + XMLGrammarPreparser preparser = new XMLGrammarPreparser(symbolTable); + preparser.registerPreparser(XMLGrammarDescription.XML_SCHEMA, null); + preparser.setProperty(org.apache.xerces.impl.Constants.XERCES_PROPERTY_PREFIX + + org.apache.xerces.impl.Constants.XMLGRAMMAR_POOL_PROPERTY, grammarPool); + preparser.setFeature(SAX_NAMESPACES_FEATURE, true); + preparser.setFeature(SAX_VALIDATION_FEATURE, true); + + Properties initProps = (Properties) context.getAttribute(Constants.WSCP_INIT_PROPS_); + String slSchemaLoc = initProps.getProperty(Constants.IP_SL_SCHEMA_); + preparseSchema(context, preparser, slSchemaLoc); + String moaSchemaLoc = initProps.getProperty(Constants.IP_MOA_SCHEMA_); + preparseSchema(context, preparser, moaSchemaLoc); + + DOMParser xmlParser = new DOMParser(symbolTable, grammarPool); + try + { + xmlParser.setFeature(SAX_NAMESPACES_FEATURE, true); + xmlParser.setFeature(SAX_VALIDATION_FEATURE, true); + xmlParser.setFeature(XERCES_SCHEMA_VALIDATION_FEATURE, true); + xmlParser.setFeature(XERCES_NORMALIZED_VALUE_FEATURE, false); + xmlParser.setFeature(XERCES_INCLUDE_IGNORABLE_WHITESPACE_FEATURE, true); + xmlParser.setFeature(XERCES_CREATE_ENTITY_REF_NODES_FEATURE, false); + } + catch (SAXException e) + { + String message = "Initialization of XML parser failed."; + logger_.error(message, e); + } + context.setAttribute(Constants.WSCP_XMLPARSER_, xmlParser); + } + + /* ---------------------------------------------------------------------------------------------------- */ + + /** + * Does some clean up at finalization of the web application. + * + * @see javax.servlet.ServletContextListener#contextDestroyed(javax.servlet.ServletContextEvent) + */ + public void contextDestroyed(ServletContextEvent event) + { + // Remove init properties from web service context + Properties initProps = (Properties) event.getServletContext().getAttribute(Constants.WSCP_INIT_PROPS_); + if (initProps != null) event.getServletContext().removeAttribute(Constants.WSCP_INIT_PROPS_); + } + + /* ---------------------------------------------------------------------------------------------------- */ + + private void preparseSchema(ServletContext context, XMLGrammarPreparser preparser, String schemaLoc) + { + InputStream schemaIS = context.getResourceAsStream(schemaLoc); + if (schemaIS == null) + { + String message = "Cannot load schema from location \"" + schemaLoc + "\"."; + logger_.error(message); + } + try + { + String schemaSystemId = context.getResource(schemaLoc).toExternalForm(); + preparser.preparseGrammar(XMLGrammarDescription.XML_SCHEMA, + new XMLInputSource(null, schemaSystemId, null, schemaIS, null)); + } + catch (Exception e) + { + String message = "Parsing schema loaded from location \"" + schemaLoc + "\" failed."; + logger_.error(message, e); + } + } + + +} diff --git a/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/moainvoker/MOAInvoker.java b/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/moainvoker/MOAInvoker.java new file mode 100644 index 000000000..e89d255f0 --- /dev/null +++ b/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/moainvoker/MOAInvoker.java @@ -0,0 +1,92 @@ +/* + * Created on 19.11.2003 + * + * (c) Stabsstelle IKT-Strategie des Bundes + */ +package at.gv.egovernment.moa.spss.slinterface.moainvoker; + +import java.io.IOException; +import java.io.OutputStream; +import java.rmi.RemoteException; +import java.util.Vector; + +import javax.xml.namespace.QName; +import javax.xml.rpc.Call; +import javax.xml.rpc.Service; +import javax.xml.rpc.ServiceException; +import javax.xml.rpc.ServiceFactory; + +import org.apache.axis.message.SOAPBodyElement; +import org.apache.xml.serialize.OutputFormat; +import org.apache.xml.serialize.XMLSerializer; +import org.w3c.dom.Document; + +import at.gv.egovernment.moa.spss.slinterface.Constants; + +/** + * @author Gregor Karlinger (mailto:gregor.karlinger@cio.gv.at) + */ +public class MOAInvoker +{ + /** + * Invokes MOA SP. + * + * @param request The XML request to be sent to MOA SP. + * + * @param endpoint The endpoint of the SOAP service where to send the XML request to. + * + * @return the XML response from the service. + * + * @throws Exception if getting the XML response from the SOAP response body fails. + * + * @throws RemoteException if MOA SP signals an error. + * + * @throws ServiceException if the SOAP client invoking MOA SP signals an error. + */ + public static Document invokeSP(Document request, String endpoint) + throws Exception, RemoteException, ServiceException + { + QName serviceQName = new QName(Constants.MI_SP_QNAME_); + return invoke(request, endpoint, serviceQName); + } + + /* ---------------------------------------------------------------------------------------------------- */ + + private static Document invoke(Document request, String endpoint, QName serviceQName) throws Exception + { + // Instantiate AXIS service + Service service = ServiceFactory.newInstance().createService(serviceQName); + + // Create and configure service call + Call call = service.createCall(); + call.setTargetEndpointAddress(endpoint); + + // Create SOAP body + SOAPBodyElement body = new SOAPBodyElement(request.getDocumentElement()); + SOAPBodyElement[] params = new SOAPBodyElement[] {body}; + + // Make call + Vector responses = (Vector) call.invoke(params); + + // Get response + SOAPBodyElement responseBody = (SOAPBodyElement) responses.get(0); + Document response = responseBody.getAsDocument(); + return response; + } + + /* ---------------------------------------------------------------------------------------------------- */ + + public static void serializeDocument(Document doc, OutputStream out) throws IOException + { + OutputFormat format = new OutputFormat(doc); + + format.setLineSeparator("\n"); + format.setIndenting(false); + format.setPreserveSpace(true); + format.setOmitXMLDeclaration(false); + format.setEncoding("UTF-8"); + + XMLSerializer serializer = new XMLSerializer(out, format); + serializer.serialize(doc); + } +} diff --git a/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/servlets/MOAServlet.java b/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/servlets/MOAServlet.java new file mode 100644 index 000000000..1ec18e5cb --- /dev/null +++ b/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/servlets/MOAServlet.java @@ -0,0 +1,111 @@ +/* + * Created on 19.11.2003 + * + * (c) Stabsstelle IKT-Strategie des Bundes + */ +package at.gv.egovernment.moa.spss.slinterface.servlets; + +import java.io.IOException; +import java.rmi.RemoteException; +import java.util.Properties; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.xml.rpc.ServiceException; + +import org.apache.log4j.Logger; +import org.apache.xerces.parsers.DOMParser; +import org.w3c.dom.Document; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; + +import at.gv.egovernment.moa.spss.slinterface.Constants; +import at.gv.egovernment.moa.spss.slinterface.moainvoker.MOAInvoker; + +/** + * @author Gregor Karlinger (mailto:gregor.karlinger@cio.gv.at) + */ +public class MOAServlet extends HttpServlet +{ + private static Logger logger_ = Logger.getLogger(Constants.LH_SERVLETS_); + + /** + * Default constructor. + */ + public MOAServlet() + { + super(); + } + + public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException + { + // Get moa request form http request + Document moaXmlRequest = null; + DOMParser xmlParser = (DOMParser) this.getServletContext().getAttribute(Constants.WSCP_XMLPARSER_); + try + { + InputSource requestIS = new InputSource(request.getInputStream()); + xmlParser.parse(requestIS); + moaXmlRequest = xmlParser.getDocument(); + } + catch (IOException ioe) + { + String message = "Getting MOA XML request from http request input failed."; + logger_.error(message, ioe); + throw new ServletException(message, ioe); + } + catch (SAXException se) + { + String message = "Parsing MOA XML request got from http request failed."; + logger_.error(message, se); + throw new ServletException(message, se); + } + + // Send request to MOA SP + Properties initProps = (Properties) this.getServletContext().getAttribute(Constants.WSCP_INIT_PROPS_); + String endPoint = initProps.getProperty(Constants.IP_SP_ENDPOINT_); + if (endPoint == null) + { + String message = "No endpoint configured for MOA SP service."; + logger_.error(message); + throw new ServletException(message); + } + Document moaXMLResponseDoc = null; + try + { + moaXMLResponseDoc = MOAInvoker.invokeSP(moaXmlRequest, endPoint); + } + catch (Exception e) + { + String message; + if (e instanceof RemoteException) + { + message = "MOA SP service indicated an error at request execution."; + } + else if (e instanceof ServiceException) + { + message = "MOA SP client indicated an error at request execution."; + } + else + { + message = "Could not create DOM Document from MOA SP service response."; + } + logger_.error(message, e); + throw new ServletException(message, e); + } + + // Write moa response to http response + try + { + MOAInvoker.serializeDocument(moaXMLResponseDoc, response.getOutputStream()); + } + catch (IOException e) + { + String message = "Writing MOA SP XML response to http response failed."; + logger_.error(message, e); + throw new ServletException(message, e); + } + } +} diff --git a/spss.slinterface/WEB-INF/web.xml b/spss.slinterface/WEB-INF/web.xml new file mode 100644 index 000000000..db502faf8 --- /dev/null +++ b/spss.slinterface/WEB-INF/web.xml @@ -0,0 +1,39 @@ + + + + + + Security-Layer-Interface to MOA SPSS + This web service provides a Security-Layer-Interface to MOA SPSS. + + + SL2MOAFilter + at.gv.egovernment.moa.spss.slinterface.filters.SL2MOAFilter + + + + SL2MOAFilter + MOAServlet + + + + at.gv.egovernment.moa.spss.slinterface.listeners.ContextListener + + + + MOAServlet + MOA Servlet + + at.gv.egovernment.moa.spss.slinterface.servlets.MOAServlet + + 0 + + + + MOAServlet + /http-security-layer-request + + + diff --git a/spss.slinterface/res/resources/properties/init.properties b/spss.slinterface/res/resources/properties/init.properties new file mode 100644 index 000000000..b0757310e --- /dev/null +++ b/spss.slinterface/res/resources/properties/init.properties @@ -0,0 +1,7 @@ +location.stylesheet.sl2moa = /WEB-INF/classes/resources/stylesheets/sl2moa.xsl +location.stylesheet.moa2sl = /WEB-INF/classes/resources/stylesheets/moa2sl.xsl + +location.schema.sl = /WEB-INF/classes/resources/schemas/Core.20031231.xsd +location.schema.moa = /WEB-INF/classes/resources/schemas/MOA-SPSS-1.2.xsd + +service.endpoint.sp = http://localhost:8080/moa-spss/services/SignatureVerification \ No newline at end of file diff --git a/spss.slinterface/res/resources/schemas/Core.20020225.xsd b/spss.slinterface/res/resources/schemas/Core.20020225.xsd new file mode 100644 index 000000000..2797cf612 --- /dev/null +++ b/spss.slinterface/res/resources/schemas/Core.20020225.xsd @@ -0,0 +1,399 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spss.slinterface/res/resources/schemas/Core.20020831.xsd b/spss.slinterface/res/resources/schemas/Core.20020831.xsd new file mode 100644 index 000000000..6ec40be63 --- /dev/null +++ b/spss.slinterface/res/resources/schemas/Core.20020831.xsd @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spss.slinterface/res/resources/schemas/Core.20031231.xsd b/spss.slinterface/res/resources/schemas/Core.20031231.xsd new file mode 100644 index 000000000..3ab0c0ddd --- /dev/null +++ b/spss.slinterface/res/resources/schemas/Core.20031231.xsd @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spss.slinterface/res/resources/schemas/MOA-SPSS-1.2.xsd b/spss.slinterface/res/resources/schemas/MOA-SPSS-1.2.xsd new file mode 100644 index 000000000..c3a746446 --- /dev/null +++ b/spss.slinterface/res/resources/schemas/MOA-SPSS-1.2.xsd @@ -0,0 +1,445 @@ + + + + + + + + + + + + + + + + + + + + Ermöglichung der Stapelsignatur durch wiederholte Angabe dieses Elements + + + + + + + + + + + + + + + + + + + Auswahl: Entweder explizite Angabe des Signaturorts sowie ggf. sinnvoller Supplements im Zshg. mit der Signaturumgebung, oder Verweis auf ein benanntes Profil + + + + + + + + + + + + + + + + + + Kardinalität 1..oo erlaubt die Antwort auf eine Stapelsignatur-Anfrage + + + + Resultat, falls die Signaturerstellung erfolgreich war + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + mit diesem Profil wird eine Menge von vertrauenswürdigen Wurzelzertifikaten spezifiziert + + + + + + + + + + + only ds:X509Data and RetrievalMethod is supported; QualifiedCertificate is included as X509Data/any;publicAuthority is included as X509Data/any + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Pro dsig:Reference-Element in der zu überprüfenden XML-Signatur muss hier ein ReferenceInfo-Element erscheinen. Die Reihenfolge der einzelnen ReferenceInfo Elemente entspricht jener der dsig:Reference Elemente in der XML-Signatur. + + + + + + + + + + mit diesem Profil wird eine Menge von vertrauenswürdigen Wurzelzertifikaten spezifiziert + + + + + + + + + + + only ds:X509Data and ds:RetrievalMethod is supported; QualifiedCertificate is included as X509Data/any; PublicAuthority is included as X509Data/any + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Auswahl: Entweder explizite Angabe EINER Transformationskette inklusive ggf. sinnvoller Supplements oder Verweis auf ein benanntes Profil + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Resultat, falls die Signaturerstellung gescheitert ist + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Ein oder mehrere Transformationswege können von der Applikation an MOA mitgeteilt werden. Die zu prüfende Signatur hat zumindest einem dieser Transformationswege zu entsprechen. Die Angabe kann explizit oder als Profilbezeichner erfolgen. + + + + + Profilbezeichner für einen Transformationsweg + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Die Angabe des Transformationsparameters (explizit oder als Hashwert) kann unterlassen werden, wenn die Applikation von der Unveränderlichkeit des Inhalts der in "Transformationsparamter", Attribut "URI" angegebenen URI ausgehen kann. + + + + Der Transformationsparameter explizit angegeben. + + + + + Der Hashwert des Transformationsparameters. + + + + + + + + + + + + + + + + + + + + + + Explizite Angabe des Transformationswegs + + + + + + + Alle impliziten Transformationsparameter, die zum Durchlaufen der oben angeführten Transformationskette bekannt sein müssen, müssen hier angeführt werden. Das Attribut "URI" bezeichnet den Transformationsparameter in exakt jener Weise, wie er in der zu überprüfenden Signatur gebraucht wird. + + + + + + + + + + + + + + + + diff --git a/spss.slinterface/res/resources/simpleVerReq.moa.xml b/spss.slinterface/res/resources/simpleVerReq.moa.xml new file mode 100644 index 000000000..de6f34ed2 --- /dev/null +++ b/spss.slinterface/res/resources/simpleVerReq.moa.xml @@ -0,0 +1,29 @@ +id('signed-data')/node()aylv7lNNes2pI022g7zfY1AOUmI=id('refetsi')/etsi:QualifyingProperties/etsi:SignedPropertiesrYJgLYFMHaAcQjIlwSpFqXp5d1A=VnwHohi/ootc3mIWh2WnInNvjA+/kJOr5bDRl5no1CMsNA+1qhoVZCErHt75gp9m +O0MPBAcl7KfvkDTbHuMR1oG1Z4RUh52cE5oQietiwHGQIeuWEJ+IGcVcnkoayz4z +2tQLkdotBhV0mCmkQjyADNn8P4H5yHNsdPq0joqy+2Q=MIIE4DCCA8igAwIBAgICGEowDQYJKoZIhvcNAQEFBQAwgZcxCzAJBgNVBAYTAkFU +MUgwRgYDVQQKEz9BLVRydXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGlt +IGVsZWt0ci4gRGF0ZW52ZXJrZWhyIEdtYkgxHjAcBgNVBAsTFWEtc2lnbi1QcmVt +aXVtLVNpZy0wMTEeMBwGA1UEAxMVYS1zaWduLVByZW1pdW0tU2lnLTAxMB4XDTAz +MDEyNzEwMTQxM1oXDTA2MDEyNzEwMTQxM1owZDELMAkGA1UEBhMCQVQxGTAXBgNV +BAMTEEdyZWdvciBLYXJsaW5nZXIxEjAQBgNVBAQTCUthcmxpbmdlcjEPMA0GA1UE +KhMGR3JlZ29yMRUwEwYDVQQFEww5MTM4OTU1NTI5MTEwgZ8wDQYJKoZIhvcNAQEB +BQADgY0AMIGJAoGBANrnnGN6wiOyq/rskasBf/Tz4grEKI+NBAuDgO5aqObNDBAe +PISMQ2nFNX2nzoSNx7j7esl4KdgySmJkZWs/nErpE5fB8lHOfrPRD61dodS+Nhwi +RWlm+I+ua+mOwR18fg/Cwt3YpXZihzZ+ju7eFlxRifHtKJCLOld6IvdFdFCtAgMB +AAGjggHqMIIB5jATBgNVHSMEDDAKgAhA1/OeG4c6zDA+BggrBgEFBQcBAwEB/wQv +MC0wCAYGBACORgEBMBUGBgQAjkYBAjALEwNFVVICAQACAQAwCgYIKwYBBQUHCwEw +fQYIKwYBBQUHAQEEcTBvMEIGCCsGAQUFBzAChjZodHRwOi8vd3d3LmEtdHJ1c3Qu +YXQvY2VydHMvYS1zaWduLVByZW1pdW0tU2lnLTAxYS5jcnQwKQYIKwYBBQUHMAGG +HWh0dHA6Ly93d3cuYS10cnVzdC5hdDo4Mi9vY3NwME8GA1UdIARIMEYwRAYGKigA +EQELMDowOAYIKwYBBQUHAgEWLGh0dHA6Ly93d3cuYS10cnVzdC5hdC9kb2NzL2Nw +L2Etc2lnbi1QcmVtaXVtMGoGA1UdHwRjMGEwX6BdoFuGWWxkYXA6Ly9sZGFwLmEt +dHJ1c3QuYXQvb3U9YS1zaWduLVByZW1pdW0tU2lnLTAxLG89QS1UcnVzdCxjPUFU +P2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3Q/MBEGA1UdDgQKBAhOYExavdLCITAO +BgNVHQ8BAf8EBAMCBsAwJQYDVR0RBB4wHIEaZ3JlZ29yLmthcmxpbmdlckBjaW8u +Z3YuYXQwCQYDVR0TBAIwADANBgkqhkiG9w0BAQUFAAOCAQEAL+A2+Z5gQvn6SnZe +sLvVVVB1crHe7NI/Om2rEwha4PfEk2pV9UdOg7C1XSzRu9jCNXIAuUSIpxTtAoJH +sCk82S+iuEEgyVaXU/zFcbgT/k7opHXHswEC6ab2SQnyOlugyG+o7e9nRwAQTzzj +ryICr3KACQcVwCpLKCgsU6gYQL1bi/c5vk4rnDYquSm1U34+xIl77CefZN/peGU4 +26vUzGma30wHBepLX5M+NXT7ILRzRk4i8oyOccIzOMi/iwAODJmgSSMcYjUgAngE +oGYK9ngWu7Rr1gvy4lvOwpGGRpz2MP3nU9H2IfKk36n6hhVpc3EC6aF02RdIBD+x +8VxVsA==Das ist ein Test.2003-08-14T12:53:27Zwl/zuayZxKuYlH2G2FQCTcosSSg=CN=a-sign-Premium-Sig-01,OU=a-sign-Premium-Sig-01,O=A-Trust Ges. f. Sicherheitssysteme im elektr. Datenverkehr GmbH,C=AT6218text/plainTrustProfile1 \ No newline at end of file diff --git a/spss.slinterface/res/resources/simpleVerReq.xml b/spss.slinterface/res/resources/simpleVerReq.xml new file mode 100644 index 000000000..78180c2c3 --- /dev/null +++ b/spss.slinterface/res/resources/simpleVerReq.xml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + id('signed-data')/node() + + + + aylv7lNNes2pI022g7zfY1AOUmI= + + + + + id('refetsi')/etsi:QualifyingProperties/etsi:SignedProperties + + + + rYJgLYFMHaAcQjIlwSpFqXp5d1A= + + + VnwHohi/ootc3mIWh2WnInNvjA+/kJOr5bDRl5no1CMsNA+1qhoVZCErHt75gp9m +O0MPBAcl7KfvkDTbHuMR1oG1Z4RUh52cE5oQietiwHGQIeuWEJ+IGcVcnkoayz4z +2tQLkdotBhV0mCmkQjyADNn8P4H5yHNsdPq0joqy+2Q= + + + MIIE4DCCA8igAwIBAgICGEowDQYJKoZIhvcNAQEFBQAwgZcxCzAJBgNVBAYTAkFU +MUgwRgYDVQQKEz9BLVRydXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGlt +IGVsZWt0ci4gRGF0ZW52ZXJrZWhyIEdtYkgxHjAcBgNVBAsTFWEtc2lnbi1QcmVt +aXVtLVNpZy0wMTEeMBwGA1UEAxMVYS1zaWduLVByZW1pdW0tU2lnLTAxMB4XDTAz +MDEyNzEwMTQxM1oXDTA2MDEyNzEwMTQxM1owZDELMAkGA1UEBhMCQVQxGTAXBgNV +BAMTEEdyZWdvciBLYXJsaW5nZXIxEjAQBgNVBAQTCUthcmxpbmdlcjEPMA0GA1UE +KhMGR3JlZ29yMRUwEwYDVQQFEww5MTM4OTU1NTI5MTEwgZ8wDQYJKoZIhvcNAQEB +BQADgY0AMIGJAoGBANrnnGN6wiOyq/rskasBf/Tz4grEKI+NBAuDgO5aqObNDBAe +PISMQ2nFNX2nzoSNx7j7esl4KdgySmJkZWs/nErpE5fB8lHOfrPRD61dodS+Nhwi +RWlm+I+ua+mOwR18fg/Cwt3YpXZihzZ+ju7eFlxRifHtKJCLOld6IvdFdFCtAgMB +AAGjggHqMIIB5jATBgNVHSMEDDAKgAhA1/OeG4c6zDA+BggrBgEFBQcBAwEB/wQv +MC0wCAYGBACORgEBMBUGBgQAjkYBAjALEwNFVVICAQACAQAwCgYIKwYBBQUHCwEw +fQYIKwYBBQUHAQEEcTBvMEIGCCsGAQUFBzAChjZodHRwOi8vd3d3LmEtdHJ1c3Qu +YXQvY2VydHMvYS1zaWduLVByZW1pdW0tU2lnLTAxYS5jcnQwKQYIKwYBBQUHMAGG +HWh0dHA6Ly93d3cuYS10cnVzdC5hdDo4Mi9vY3NwME8GA1UdIARIMEYwRAYGKigA +EQELMDowOAYIKwYBBQUHAgEWLGh0dHA6Ly93d3cuYS10cnVzdC5hdC9kb2NzL2Nw +L2Etc2lnbi1QcmVtaXVtMGoGA1UdHwRjMGEwX6BdoFuGWWxkYXA6Ly9sZGFwLmEt +dHJ1c3QuYXQvb3U9YS1zaWduLVByZW1pdW0tU2lnLTAxLG89QS1UcnVzdCxjPUFU +P2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3Q/MBEGA1UdDgQKBAhOYExavdLCITAO +BgNVHQ8BAf8EBAMCBsAwJQYDVR0RBB4wHIEaZ3JlZ29yLmthcmxpbmdlckBjaW8u +Z3YuYXQwCQYDVR0TBAIwADANBgkqhkiG9w0BAQUFAAOCAQEAL+A2+Z5gQvn6SnZe +sLvVVVB1crHe7NI/Om2rEwha4PfEk2pV9UdOg7C1XSzRu9jCNXIAuUSIpxTtAoJH +sCk82S+iuEEgyVaXU/zFcbgT/k7opHXHswEC6ab2SQnyOlugyG+o7e9nRwAQTzzj +ryICr3KACQcVwCpLKCgsU6gYQL1bi/c5vk4rnDYquSm1U34+xIl77CefZN/peGU4 +26vUzGma30wHBepLX5M+NXT7ILRzRk4i8oyOccIzOMi/iwAODJmgSSMcYjUgAngE +oGYK9ngWu7Rr1gvy4lvOwpGGRpz2MP3nU9H2IfKk36n6hhVpc3EC6aF02RdIBD+x +8VxVsA== + + + Das ist ein Test. + + + + + 2003-08-14T12:53:27Z + + + + + wl/zuayZxKuYlH2G2FQCTcosSSg= + + + CN=a-sign-Premium-Sig-01,OU=a-sign-Premium-Sig-01,O=A-Trust Ges. f. Sicherheitssysteme im elektr. Datenverkehr GmbH,C=AT + 6218 + + + + + + + + + + text/plain + + + + + + + + + /dsig:Signature + + diff --git a/spss.slinterface/res/resources/stylesheets/moa2sl.xsl b/spss.slinterface/res/resources/stylesheets/moa2sl.xsl new file mode 100644 index 000000000..2e3a09655 --- /dev/null +++ b/spss.slinterface/res/resources/stylesheets/moa2sl.xsl @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + default + default + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spss.slinterface/res/resources/stylesheets/simpleVerReq.sl11.xml b/spss.slinterface/res/resources/stylesheets/simpleVerReq.sl11.xml new file mode 100644 index 000000000..78180c2c3 --- /dev/null +++ b/spss.slinterface/res/resources/stylesheets/simpleVerReq.sl11.xml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + id('signed-data')/node() + + + + aylv7lNNes2pI022g7zfY1AOUmI= + + + + + id('refetsi')/etsi:QualifyingProperties/etsi:SignedProperties + + + + rYJgLYFMHaAcQjIlwSpFqXp5d1A= + + + VnwHohi/ootc3mIWh2WnInNvjA+/kJOr5bDRl5no1CMsNA+1qhoVZCErHt75gp9m +O0MPBAcl7KfvkDTbHuMR1oG1Z4RUh52cE5oQietiwHGQIeuWEJ+IGcVcnkoayz4z +2tQLkdotBhV0mCmkQjyADNn8P4H5yHNsdPq0joqy+2Q= + + + MIIE4DCCA8igAwIBAgICGEowDQYJKoZIhvcNAQEFBQAwgZcxCzAJBgNVBAYTAkFU +MUgwRgYDVQQKEz9BLVRydXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGlt +IGVsZWt0ci4gRGF0ZW52ZXJrZWhyIEdtYkgxHjAcBgNVBAsTFWEtc2lnbi1QcmVt +aXVtLVNpZy0wMTEeMBwGA1UEAxMVYS1zaWduLVByZW1pdW0tU2lnLTAxMB4XDTAz +MDEyNzEwMTQxM1oXDTA2MDEyNzEwMTQxM1owZDELMAkGA1UEBhMCQVQxGTAXBgNV +BAMTEEdyZWdvciBLYXJsaW5nZXIxEjAQBgNVBAQTCUthcmxpbmdlcjEPMA0GA1UE +KhMGR3JlZ29yMRUwEwYDVQQFEww5MTM4OTU1NTI5MTEwgZ8wDQYJKoZIhvcNAQEB +BQADgY0AMIGJAoGBANrnnGN6wiOyq/rskasBf/Tz4grEKI+NBAuDgO5aqObNDBAe +PISMQ2nFNX2nzoSNx7j7esl4KdgySmJkZWs/nErpE5fB8lHOfrPRD61dodS+Nhwi +RWlm+I+ua+mOwR18fg/Cwt3YpXZihzZ+ju7eFlxRifHtKJCLOld6IvdFdFCtAgMB +AAGjggHqMIIB5jATBgNVHSMEDDAKgAhA1/OeG4c6zDA+BggrBgEFBQcBAwEB/wQv +MC0wCAYGBACORgEBMBUGBgQAjkYBAjALEwNFVVICAQACAQAwCgYIKwYBBQUHCwEw +fQYIKwYBBQUHAQEEcTBvMEIGCCsGAQUFBzAChjZodHRwOi8vd3d3LmEtdHJ1c3Qu +YXQvY2VydHMvYS1zaWduLVByZW1pdW0tU2lnLTAxYS5jcnQwKQYIKwYBBQUHMAGG +HWh0dHA6Ly93d3cuYS10cnVzdC5hdDo4Mi9vY3NwME8GA1UdIARIMEYwRAYGKigA +EQELMDowOAYIKwYBBQUHAgEWLGh0dHA6Ly93d3cuYS10cnVzdC5hdC9kb2NzL2Nw +L2Etc2lnbi1QcmVtaXVtMGoGA1UdHwRjMGEwX6BdoFuGWWxkYXA6Ly9sZGFwLmEt +dHJ1c3QuYXQvb3U9YS1zaWduLVByZW1pdW0tU2lnLTAxLG89QS1UcnVzdCxjPUFU +P2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3Q/MBEGA1UdDgQKBAhOYExavdLCITAO +BgNVHQ8BAf8EBAMCBsAwJQYDVR0RBB4wHIEaZ3JlZ29yLmthcmxpbmdlckBjaW8u +Z3YuYXQwCQYDVR0TBAIwADANBgkqhkiG9w0BAQUFAAOCAQEAL+A2+Z5gQvn6SnZe +sLvVVVB1crHe7NI/Om2rEwha4PfEk2pV9UdOg7C1XSzRu9jCNXIAuUSIpxTtAoJH +sCk82S+iuEEgyVaXU/zFcbgT/k7opHXHswEC6ab2SQnyOlugyG+o7e9nRwAQTzzj +ryICr3KACQcVwCpLKCgsU6gYQL1bi/c5vk4rnDYquSm1U34+xIl77CefZN/peGU4 +26vUzGma30wHBepLX5M+NXT7ILRzRk4i8oyOccIzOMi/iwAODJmgSSMcYjUgAngE +oGYK9ngWu7Rr1gvy4lvOwpGGRpz2MP3nU9H2IfKk36n6hhVpc3EC6aF02RdIBD+x +8VxVsA== + + + Das ist ein Test. + + + + + 2003-08-14T12:53:27Z + + + + + wl/zuayZxKuYlH2G2FQCTcosSSg= + + + CN=a-sign-Premium-Sig-01,OU=a-sign-Premium-Sig-01,O=A-Trust Ges. f. Sicherheitssysteme im elektr. Datenverkehr GmbH,C=AT + 6218 + + + + + + + + + + text/plain + + + + + + + + + /dsig:Signature + + diff --git a/spss.slinterface/res/resources/stylesheets/simpleVerReq.sl12.locref.moa.xml b/spss.slinterface/res/resources/stylesheets/simpleVerReq.sl12.locref.moa.xml new file mode 100644 index 000000000..65e4f5de2 --- /dev/null +++ b/spss.slinterface/res/resources/stylesheets/simpleVerReq.sl12.locref.moa.xml @@ -0,0 +1 @@ +2003-03-24T12:41:54+01:00http://anywhere.com/signature.xml/dsig:Signaturetext/xmldescriptionhttp://anywhere.com/supplement.xmlTrustProfile1 \ No newline at end of file diff --git a/spss.slinterface/res/resources/stylesheets/simpleVerReq.sl12.locref.xml b/spss.slinterface/res/resources/stylesheets/simpleVerReq.sl12.locref.xml new file mode 100644 index 000000000..25194465d --- /dev/null +++ b/spss.slinterface/res/resources/stylesheets/simpleVerReq.sl12.locref.xml @@ -0,0 +1,20 @@ + + + + 2003-03-24T12:41:54+01:00 + + + http://anywhere.com/signature.xml + + /dsig:Signature + + + + text/xml + description + + + http://anywhere.com/supplement.xml + + + diff --git a/spss.slinterface/res/resources/stylesheets/sl2moa.xsl b/spss.slinterface/res/resources/stylesheets/sl2moa.xsl new file mode 100644 index 000000000..a2c43527f --- /dev/null +++ b/spss.slinterface/res/resources/stylesheets/sl2moa.xsl @@ -0,0 +1,218 @@ + + + + + TrustProfile1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + default + + + + + + + + + + + + + + + + + + + + + + + + default + + + + + + + + + + + + + + + + + + + + + + + + + + + + + default + + + + + + + + + + + + + + + + + default + + + + + + + diff --git a/spss.slinterface/res/resources/stylesheets/verifyresponse.moa.sl.xml b/spss.slinterface/res/resources/stylesheets/verifyresponse.moa.sl.xml new file mode 100644 index 000000000..8033f8dae --- /dev/null +++ b/spss.slinterface/res/resources/stylesheets/verifyresponse.moa.sl.xml @@ -0,0 +1,25 @@ +CN=Isolde B\C3\BCrgerin,OU=Insitute for Applied Information Processing and Communications,O=GRAZ UNIVERSITY OF TECHNOLOGY,C=ATCN=IAIK Test CA,OU=IAIK Test CA,OU=Insitute for Applied Information Processing and Communications,O=GRAZ UNIVERSITY OF TECHNOLOGY,C=AT1044289238331MIID1zCCA0SgAwIBAgIGAPMkfTU7MAkGBSsOAwIdBQAwgawxCzAJBgNVBAYTAkFU +MSYwJAYDVQQKEx1HUkFaIFVOSVZFUlNJVFkgT0YgVEVDSE5PTE9HWTFHMEUGA1UE +CxM+SW5zaXR1dGUgZm9yIEFwcGxpZWQgSW5mb3JtYXRpb24gUHJvY2Vzc2luZyBh +bmQgQ29tbXVuaWNhdGlvbnMxFTATBgNVBAsTDElBSUsgVGVzdCBDQTEVMBMGA1UE +AxMMSUFJSyBUZXN0IENBMB4XDTAzMDIwMzE2MjA1NVoXDTAzMTIzMDIyNTkzMFow +gZgxCzAJBgNVBAYTAkFUMSYwJAYDVQQKEx1HUkFaIFVOSVZFUlNJVFkgT0YgVEVD +SE5PTE9HWTFHMEUGA1UECxM+SW5zaXR1dGUgZm9yIEFwcGxpZWQgSW5mb3JtYXRp +b24gUHJvY2Vzc2luZyBhbmQgQ29tbXVuaWNhdGlvbnMxGDAWBgNVBAMUD0lzb2xk +ZSBC/HJnZXJpbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA53m0qng6O9zV +IAuJ22Ps91X+pddhMiA9P0QusMexQ+QEkfe43nEFIToUZ3uuoAQFd+n4MXM6D68t +ZctGU5O4W5Aq/bEjI4efIHS0EThzgNAymqmT9Z9IIEhqm/1jhQ4SXTW33y3Xn3lx +26DiTeApftuQB388YlV+Rs+rTyF9iRUCAwEAAaOCARwwggEYMAwGA1UdEwEB/wQC +MAAwDgYDVR0PAQH/BAQDAgbAMBEGCWCGSAGG+EIBAQQEAwIFIDBnBgNVHSAEYDBe +MFwGDCsGAQQBlRIBAnsBATBMMEoGCCsGAQUFBwICMD4aPFRoaXMgY2VydGlmaWNh +dGUgb25seSBtYXkgYmUgdXNlZCBmb3IgZGVtb25zdHJhdGlvbiBwdXJwb3NlczA8 +BgNVHR8ENTAzMDGgL6AthitodHRwOi8vd3d3LmlhaWsuYXQvdGVzdENBL2lhaWtf +dGVzdF9zaWcuY3JsMB0GA1UdDgQWBBQoOuoIxS8M1o/DTZkJUs0lnN5A7TAfBgNV +HSMEGDAWgBRMILBWAgz3iAqWiKUUtFHMOrXyvzAJBgUrDgMCHQUAA4GBACY81o8m +zb8YCuTMgeplySm5nAkxjsv1T5n/Hzz1cLfSDJZ0HyNTVx/GDszY+Dx28MdW+6DL +o9nWPSE/4P+k9HXJe/wEyAv44OrjvpzGGKjqoc3X8v4rzMo6MBRNluu0m3y1pktT +V/q4aiWD/nbGXdrn/AoKAvOSAQ3Qe6X+dT/11 + Text10Text212 + Text10Text212 + Text10Text21 + Text313Text \ No newline at end of file diff --git a/spss.slinterface/res/resources/stylesheets/verifyresponse.moa.xml b/spss.slinterface/res/resources/stylesheets/verifyresponse.moa.xml new file mode 100644 index 000000000..d591997ed --- /dev/null +++ b/spss.slinterface/res/resources/stylesheets/verifyresponse.moa.xml @@ -0,0 +1,46 @@ + +CN=Isolde B\C3\BCrgerin,OU=Insitute for Applied Information Processing and Communications,O=GRAZ UNIVERSITY OF TECHNOLOGY,C=ATCN=IAIK Test CA,OU=IAIK Test CA,OU=Insitute for Applied Information Processing and Communications,O=GRAZ UNIVERSITY OF TECHNOLOGY,C=AT1044289238331MIID1zCCA0SgAwIBAgIGAPMkfTU7MAkGBSsOAwIdBQAwgawxCzAJBgNVBAYTAkFU +MSYwJAYDVQQKEx1HUkFaIFVOSVZFUlNJVFkgT0YgVEVDSE5PTE9HWTFHMEUGA1UE +CxM+SW5zaXR1dGUgZm9yIEFwcGxpZWQgSW5mb3JtYXRpb24gUHJvY2Vzc2luZyBh +bmQgQ29tbXVuaWNhdGlvbnMxFTATBgNVBAsTDElBSUsgVGVzdCBDQTEVMBMGA1UE +AxMMSUFJSyBUZXN0IENBMB4XDTAzMDIwMzE2MjA1NVoXDTAzMTIzMDIyNTkzMFow +gZgxCzAJBgNVBAYTAkFUMSYwJAYDVQQKEx1HUkFaIFVOSVZFUlNJVFkgT0YgVEVD +SE5PTE9HWTFHMEUGA1UECxM+SW5zaXR1dGUgZm9yIEFwcGxpZWQgSW5mb3JtYXRp +b24gUHJvY2Vzc2luZyBhbmQgQ29tbXVuaWNhdGlvbnMxGDAWBgNVBAMUD0lzb2xk +ZSBC/HJnZXJpbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA53m0qng6O9zV +IAuJ22Ps91X+pddhMiA9P0QusMexQ+QEkfe43nEFIToUZ3uuoAQFd+n4MXM6D68t +ZctGU5O4W5Aq/bEjI4efIHS0EThzgNAymqmT9Z9IIEhqm/1jhQ4SXTW33y3Xn3lx +26DiTeApftuQB388YlV+Rs+rTyF9iRUCAwEAAaOCARwwggEYMAwGA1UdEwEB/wQC +MAAwDgYDVR0PAQH/BAQDAgbAMBEGCWCGSAGG+EIBAQQEAwIFIDBnBgNVHSAEYDBe +MFwGDCsGAQQBlRIBAnsBATBMMEoGCCsGAQUFBwICMD4aPFRoaXMgY2VydGlmaWNh +dGUgb25seSBtYXkgYmUgdXNlZCBmb3IgZGVtb25zdHJhdGlvbiBwdXJwb3NlczA8 +BgNVHR8ENTAzMDGgL6AthitodHRwOi8vd3d3LmlhaWsuYXQvdGVzdENBL2lhaWtf +dGVzdF9zaWcuY3JsMB0GA1UdDgQWBBQoOuoIxS8M1o/DTZkJUs0lnN5A7TAfBgNV +HSMEGDAWgBRMILBWAgz3iAqWiKUUtFHMOrXyvzAJBgUrDgMCHQUAA4GBACY81o8m +zb8YCuTMgeplySm5nAkxjsv1T5n/Hzz1cLfSDJZ0HyNTVx/GDszY+Dx28MdW+6DL +o9nWPSE/4P+k9HXJe/wEyAv44OrjvpzGGKjqoc3X8v4rzMo6MBRNluu0m3y1pktT +V/q4aiWD/nbGXdrn/AoKAvOSAQ3Qe6X+dT/1 + + 1 + + Text10Text21 + + + + 2 + + Text10Text21 + + + + 2 + + Text10Text21 + Text31 + + + + 3 + Text + + \ No newline at end of file diff --git a/spss.slinterface/res/resources/test.xml b/spss.slinterface/res/resources/test.xml new file mode 100644 index 000000000..a2f6a0740 --- /dev/null +++ b/spss.slinterface/res/resources/test.xml @@ -0,0 +1,2 @@ + +Inhalt diff --git a/spss.slinterface/res/resources/test.xsl b/spss.slinterface/res/resources/test.xsl new file mode 100644 index 000000000..6bb618072 --- /dev/null +++ b/spss.slinterface/res/resources/test.xsl @@ -0,0 +1,14 @@ + + + + + + + hugo + + + + ursl + + + diff --git a/spss.slinterface/test/forms/simpleForm.html b/spss.slinterface/test/forms/simpleForm.html new file mode 100644 index 000000000..120fa8073 --- /dev/null +++ b/spss.slinterface/test/forms/simpleForm.html @@ -0,0 +1,25 @@ + + + + Securitylayer Requests + + + +

Securitykapsel - HTTP-Bindung

+
+

+XMLRequest: +

+ +DataURL: +

+ +

+ +

+ + -- cgit v1.2.3