aboutsummaryrefslogtreecommitdiff
path: root/spss.slinterface/WEB-INF/src/at
diff options
context:
space:
mode:
author(no author) <(no author)@d688527b-c9ab-4aba-bd8d-4036d912da1d>2003-12-24 10:49:19 +0000
committer(no author) <(no author)@d688527b-c9ab-4aba-bd8d-4036d912da1d>2003-12-24 10:49:19 +0000
commit1ef210e5d19a0a9bcee9701573732eb199bea5f1 (patch)
treeef5e44076a94d8777330343550bb1d52bd767693 /spss.slinterface/WEB-INF/src/at
parent75181af53bbe97bee472e5e8923c54bbd06ac32b (diff)
downloadmoa-id-spss-tags/Build-1_2_0_D02.tar.gz
moa-id-spss-tags/Build-1_2_0_D02.tar.bz2
moa-id-spss-tags/Build-1_2_0_D02.zip
This commit was manufactured by cvs2svn to create tagtags/Build-1_2_0_D02
'Build-1_2_0_D02'. git-svn-id: https://joinup.ec.europa.eu/svn/moa-idspss/tags/Build-1_2_0_D02@92 d688527b-c9ab-4aba-bd8d-4036d912da1d
Diffstat (limited to 'spss.slinterface/WEB-INF/src/at')
-rw-r--r--spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/Constants.java66
-rw-r--r--spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/Utils.java33
-rw-r--r--spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/filters/RequestWrapper.java57
-rw-r--r--spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/filters/ResponseWrapper.java44
-rw-r--r--spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/filters/SL2MOAFilter.java332
-rw-r--r--spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/filters/ServletInputStream.java55
-rw-r--r--spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/filters/ServletOutputStream.java50
-rw-r--r--spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/listeners/ContextListener.java157
-rw-r--r--spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/moainvoker/MOAInvoker.java92
-rw-r--r--spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/servlets/MOAServlet.java111
-rw-r--r--spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/servlets/ResultServlet.java125
-rw-r--r--spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/servlets/SLRequest.java19
-rw-r--r--spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/transformers/MOA2SL.java88
-rw-r--r--spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/transformers/QName.java51
-rw-r--r--spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/transformers/SL2MOA.java88
-rw-r--r--spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/transformers/Utils.java129
16 files changed, 0 insertions, 1497 deletions
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
deleted file mode 100644
index cb37fe843..000000000
--- a/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/Constants.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * 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.sp.endpoint";
- public static final String IP_SP_TRUSTPROFILEID_ = "service.sp.trustProfileId";
-
- // 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";
- public static final String LH_TEST_ = LH_BASE_ + ".test";
-
- // 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_10_ = "http://www.buergerkarte.at/namespaces/securitylayer/20020225#";
- 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#";
- public static final String NSURI_NAMESPACES_ = "http://www.w3.org/2000/xmlns/";
- public static final String NSURI_XML_ = "http://www.w3.org/XML/1998/namespace";
-
- // Namespace prefixes
- public static final String NSPRE_SL_10_ = "sl10";
- public static final String NSPRE_SL_11_ = "sl11";
- public static final String NSPRE_SL_12_ = "sl12";
- public static final String NSPRE_MOA_12_ = "moa";
-
- // 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/Utils.java b/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/Utils.java
deleted file mode 100644
index 8c1292734..000000000
--- a/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/Utils.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Created on 25.11.2003
- *
- * (c) Stabsstelle IKT-Strategie des Bundes
- */
-package at.gv.egovernment.moa.spss.slinterface;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-/**
- * @author Gregor Karlinger (mailto:gregor.karlinger@cio.gv.at)
- */
-public class Utils
-{
- public static byte[] readFromInputStream(InputStream inputStream) throws IOException
- {
- byte[] currentBytes = new byte[500];
- int bytesRead;
- ByteArrayOutputStream result = new ByteArrayOutputStream();
- do
- {
- bytesRead = inputStream.read(currentBytes);
- if (bytesRead > 0)
- {
- result.write(currentBytes, 0, bytesRead);
- }
- }
- while (bytesRead != -1);
- return result.toByteArray();
- }
-}
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
deleted file mode 100644
index a6652a56e..000000000
--- a/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/filters/RequestWrapper.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * 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
deleted file mode 100644
index 420723abb..000000000
--- a/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/filters/ResponseWrapper.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * 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
deleted file mode 100644
index 08b8635ba..000000000
--- a/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/filters/SL2MOAFilter.java
+++ /dev/null
@@ -1,332 +0,0 @@
-/*
- * 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.OutputStream;
-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.servlet.http.HttpSession;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.TransformerFactory;
-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.Level;
-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;
-import at.gv.egovernment.moa.spss.slinterface.servlets.SLRequest;
-import at.gv.egovernment.moa.spss.slinterface.transformers.MOA2SL;
-import at.gv.egovernment.moa.spss.slinterface.transformers.SL2MOA;
-
-/**
- * @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_;
-
- /* ---------------------------------------------------------------------------------------------------- */
-
- /**
- * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
- */
- public void init(FilterConfig config) throws ServletException
- {
- // Store filter configuration
- config_ = config;
- }
-
- /* ---------------------------------------------------------------------------------------------------- */
-
- /**
- * @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
- {
- // Create session
- HttpSession session = ((HttpServletRequest) request).getSession(true);
-
- // Check if request is HTTP-POST
- checkHttpPost((HttpServletRequest) request);
-
- // Get SL request from content of request
- SLRequest slRequest = parseRequest((HttpServletRequest) request);
- session.setAttribute("slRequest", slRequest);
-
- // Schema validate SL request
- CharArrayReader slXmlRequestCAR = new CharArrayReader(slRequest.xmlRequest_.toCharArray());
- Document slXMLRequestDoc = parseSlXmlRequest(slXmlRequestCAR);
-
- // Transform SL request into a MOA SPSS request
- Properties initProps = (Properties)config_.getServletContext().getAttribute(Constants.WSCP_INIT_PROPS_);
- String trustProfileId = initProps.getProperty(Constants.IP_SP_TRUSTPROFILEID_);
- Document moaXMLRequestDoc = SL2MOA.toMoaVerifyXMLSignatureRequest(slXMLRequestDoc, trustProfileId);
- ByteArrayOutputStream moaRequestBOS = new ByteArrayOutputStream();
- MOAInvoker.serializeDocument(moaXMLRequestDoc, moaRequestBOS);
- logger_.debug("SL request transformed into MOA request:\n" + moaRequestBOS);
- 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);
-
- // Transform MOA response into a SL response
- DOMParser xmlParser = (DOMParser) config_.getServletContext().getAttribute(Constants.WSCP_XMLPARSER_);
- ServletOutputStream moaResponseSOS = (ServletOutputStream) responseWrapper.getOutputStream();
- ByteArrayInputStream moaResponseBIS = new ByteArrayInputStream(moaResponseSOS.toByteArray());
- InputSource responseSource = new InputSource(moaResponseBIS);
- Document slResponseDoc;
- try
- {
- xmlParser.parse(responseSource);
- Document moaResponseDoc = xmlParser.getDocument();
- slResponseDoc = MOA2SL.toSlVerifyXMLSignatureResponse(moaResponseDoc);
- }
- catch (SAXException e)
- {
- String message = "Transforming MOA XML response into SL XML response failed.";
- logger_.error(message, e);
- throw new ServletException(message, e);
- }
- session.setAttribute("slResponseDoc", slResponseDoc);
-
- String continueURL = ((HttpServletRequest) request).getContextPath() + "/results";
- continueURL = ((HttpServletResponse) response).encodeURL(continueURL);
- String responseStr = "<html><body><a href=\"" + continueURL + ">Und weiter geht es ...</a></body></html>";
-
- response.setContentType("text/html");
- OutputStream responseOS = response.getOutputStream();
- responseOS.write(responseStr.getBytes("UTF-8"));
- responseOS.flush();
- }
-
- /* ---------------------------------------------------------------------------------------------------- */
-
- /**
- * @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 SLRequest parseRequest(HttpServletRequest request) throws IOException
- {
- SLRequest slRequest = new SLRequest();
-
- // 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 combination of XMLRequest and DataURL allowed at the moment
- String message = "Currently only (XMLRequest + DataURL) is supported.";
- logger_.error(message);
- throw new IOException(message);
- }
-
- return slRequest;
- }
-
- /* ---------------------------------------------------------------------------------------------------- */
-
- 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);
- }
- if (logger_.getEffectiveLevel().isGreaterOrEqual(Level.DEBUG))
- {
- ByteArrayOutputStream debugOutputStream = new ByteArrayOutputStream();
- try
- {
- MOAInvoker.serializeDocument(slXmlRequestDoc, debugOutputStream);
- logger_.debug("XML-Request received:\n" + debugOutputStream);
- }
- catch (IOException e)
- {
- // No debug output if this fails
- }
- }
-
- // 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);
- }
- }
-}
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
deleted file mode 100644
index b0609c2f8..000000000
--- a/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/filters/ServletInputStream.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * 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 <code>ServletInputStram</code> 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 <code>ByteArrayInputStream</code>.
- *
- * @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 <code>ServletInputStream</code>.
- */
- 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
deleted file mode 100644
index b790ee55c..000000000
--- a/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/filters/ServletOutputStream.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * 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
deleted file mode 100644
index 0b3980a50..000000000
--- a/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/listeners/ContextListener.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * 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";
- protected static final String XERCES_DEFER_NODE_EXPANSION_ =
- "http://apache.org/xml/features/dom/defer-node-expansion";
-
- 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);
- xmlParser.setFeature(XERCES_DEFER_NODE_EXPANSION_, 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
deleted file mode 100644
index e89d255f0..000000000
--- a/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/moainvoker/MOAInvoker.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * 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
deleted file mode 100644
index 1ec18e5cb..000000000
--- a/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/servlets/MOAServlet.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * 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/src/at/gv/egovernment/moa/spss/slinterface/servlets/ResultServlet.java b/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/servlets/ResultServlet.java
deleted file mode 100644
index 67397a1ee..000000000
--- a/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/servlets/ResultServlet.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Created on 25.11.2003
- *
- * (c) Stabsstelle IKT-Strategie des Bundes
- */
-package at.gv.egovernment.moa.spss.slinterface.servlets;
-
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.URL;
-import java.net.URLConnection;
-
-import javax.servlet.ServletException;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-
-import org.apache.log4j.Logger;
-import org.w3c.dom.Document;
-
-import at.gv.egovernment.moa.spss.slinterface.Constants;
-import at.gv.egovernment.moa.spss.slinterface.Utils;
-import at.gv.egovernment.moa.spss.slinterface.moainvoker.MOAInvoker;
-
-/**
- * @author Gregor Karlinger (mailto:gregor.karlinger@cio.gv.at)
- */
-public class ResultServlet extends HttpServlet
-{
-
- private static Logger logger_ = Logger.getLogger(Constants.LH_SERVLETS_);
-
- /**
- * Default constructor.
- */
- public ResultServlet()
- {
- super();
- }
-
- public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException
- {
- // Get session
- HttpSession session = request.getSession(false);
- if (session == null)
- {
- String message = "No session available";
- logger_.error(message);
- throw new ServletException(message);
- }
-
- // Get original SL request from session
- SLRequest slRequest = (SLRequest) session.getAttribute("slRequest");
- if (slRequest == null)
- {
- String message = "Session object \"slRequest\" not available.";
- logger_.error(message);
- throw new ServletException(message);
- }
-
- // Get SL response from session
- Document slResponseDoc = (Document) session.getAttribute("slResponseDoc");
- if (slResponseDoc == null)
- {
- String message = "Session object \"slResponseDoc\" not available.";
- logger_.error(message);
- throw new ServletException(message);
- }
-
- URLConnection dataURLConn;
- try
- {
- // Open connection to DataURL
- URL dataURL = new URL(slRequest.dataUrl_);
- dataURLConn = dataURL.openConnection();
- dataURLConn.setDoOutput(true);
- OutputStream dataURLOS = dataURLConn.getOutputStream();
- MOAInvoker.serializeDocument(slResponseDoc, dataURLOS);
- dataURLOS.flush();
- }
- catch (Exception e)
- {
- String message = "Sending SL XML response to DataURL failed.";
- logger_.error(message, e);
- throw new ServletException(message, e);
- }
-
- // Forward response from DataURL to client
- forwardResponse(dataURLConn, response);
-
- session.invalidate();
- }
-
- /* ---------------------------------------------------------------------------------------------------- */
-
- private void forwardResponse(URLConnection dataURLConn, ServletResponse response) throws ServletException
- {
- // Make sure that content type of DataURL response is text/html
- String dataURLContentType = dataURLConn.getContentType();
- if (dataURLContentType == null || !dataURLContentType.startsWith("text/html"))
- {
- String message = "Unsupported content type of DataURL response: \"" + dataURLContentType + "\".";
- logger_.error(message);
- throw new ServletException(message);
- }
-
- try
- {
- InputStream dataURLIS = dataURLConn.getInputStream();
- byte[] dataURLResponse = Utils.readFromInputStream(dataURLIS);
- response.setContentType("text/html");
- OutputStream responseOS = response.getOutputStream();
- responseOS.write(dataURLResponse);
- responseOS.flush();
- }
- catch (Exception e)
- {
- String message = "Forwarding DataURL response to client failed.";
- logger_.error(message, e);
- throw new ServletException(message, e);
- }
- }
-}
diff --git a/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/servlets/SLRequest.java b/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/servlets/SLRequest.java
deleted file mode 100644
index 3c19d5ff6..000000000
--- a/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/servlets/SLRequest.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * Created on 25.11.2003
- *
- * (c) Stabsstelle IKT-Strategie des Bundes
- */
-package at.gv.egovernment.moa.spss.slinterface.servlets;
-
-/**
- * Helper class, representing the fields of a Security-Layer request.
- *
- * @author Gregor Karlinger (mailto:gregor.karlinger@cio.gv.at)
- */
-public 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/transformers/MOA2SL.java b/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/transformers/MOA2SL.java
deleted file mode 100644
index a85917d81..000000000
--- a/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/transformers/MOA2SL.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Created on 20.11.2003
- *
- * (c) Stabsstelle IKT-Strategie des Bundes
- */
-package at.gv.egovernment.moa.spss.slinterface.transformers;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NodeList;
-
-import at.gv.egovernment.moa.spss.slinterface.Constants;
-
-/**
- * @author Gregor Karlinger (mailto:gregor.karlinger@cio.gv.at)
- */
-public class MOA2SL
-{
- /**
- * Transforms an MOA VerifyXMLSignatureResponse into a SL VerifyXMLSignatureResponse.
- *
- * @param moaVerifyXMLSignatureResponse The MOA VerifyXMLSignatureResponse to be transformed.
- *
- * @return the specified response document, transformed into a SL VerifyXMLSignatureResponse. Please note
- * that <code>moaVerifyXMLSignatureResponse</code> is modified into the sl response.
- *
- * @pre moaVerifyXMLSignatureResponse is a valid instance of the SL Schema (version 1.2 or 1.1).
- */
- public static Document toSlVerifyXMLSignatureResponse(Document moaVerifyXMLSignatureResponse)
- {
- // Namespace to namespace prefix mapping
- HashMap prefixMap = new HashMap(4);
- prefixMap.put(Constants.NSURI_SL_10_, Constants.NSPRE_SL_10_);
- prefixMap.put(Constants.NSURI_SL_11_, Constants.NSPRE_SL_11_);
- prefixMap.put(Constants.NSURI_SL_12_, Constants.NSPRE_SL_12_);
- prefixMap.put(Constants.NSURI_MOA_12_, Constants.NSPRE_MOA_12_);
-
- // Namespaces to be changed
- HashMap nsTransforms = new HashMap();
- nsTransforms.put(Constants.NSURI_MOA_12_, Constants.NSURI_SL_11_);
-
- // Names to be changed
- HashMap nameTransforms = new HashMap();
- nameTransforms.put(
- new QName(Constants.NSURI_MOA_12_, "PublicAuthority"),
- new QName(Constants.NSURI_MOA_12_,"PublicAuthority"));
-
- Element verifyResponseElem = moaVerifyXMLSignatureResponse.getDocumentElement();
- verifyResponseElem.setAttributeNS(Constants.NSURI_NAMESPACES_,
- "xmlns:" + Constants.NSPRE_SL_10_, Constants.NSURI_SL_10_);
- verifyResponseElem.setAttributeNS(Constants.NSURI_NAMESPACES_,
- "xmlns:" + Constants.NSPRE_SL_11_, Constants.NSURI_SL_11_);
-
- // Convert SL request into MOA request
- verifyResponseElem =
- Utils.transformDeep(verifyResponseElem, prefixMap, nsTransforms, nameTransforms);
-
- // Add SignatureManifestCheck element (Code = 98)
- Element signatureMFCheckElem = moaVerifyXMLSignatureResponse.createElementNS(
- Constants.NSURI_SL_11_, Constants.NSPRE_SL_11_ + ":SignatureManifestCheck");
- Element smfCodeElem = moaVerifyXMLSignatureResponse.createElementNS(
- Constants.NSURI_SL_11_, Constants.NSPRE_SL_11_ + ":Code");
- signatureMFCheckElem.appendChild(smfCodeElem);
- smfCodeElem.appendChild(moaVerifyXMLSignatureResponse.createTextNode("98"));
- Element signatureCheckElem = (Element) verifyResponseElem.getElementsByTagNameNS(
- Constants.NSURI_SL_11_, "SignatureCheck").item(0);
- verifyResponseElem.insertBefore(signatureMFCheckElem, signatureCheckElem.getNextSibling());
-
- // Siblings of Certificate check must be in sl10 namespace
- nsTransforms.clear();
- nsTransforms.put(Constants.NSURI_SL_11_, Constants.NSURI_SL_10_);
- nameTransforms.clear();
- NodeList signatureCheckChildren = signatureCheckElem.getElementsByTagName("*");
- ArrayList signatureCheckChildrenList = new ArrayList(signatureCheckChildren.getLength());
- for (int i = 0; i < signatureCheckChildren.getLength(); i++)
- {
- signatureCheckChildrenList.add(signatureCheckChildren.item(i));
- }
- for (int i = 0; i < signatureCheckChildrenList.size(); i++)
- Utils.transformDeep((Element) signatureCheckChildrenList.get(i), prefixMap, nsTransforms,
- nameTransforms);
-
- return moaVerifyXMLSignatureResponse;
- }
-}
diff --git a/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/transformers/QName.java b/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/transformers/QName.java
deleted file mode 100644
index 6da0c433f..000000000
--- a/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/transformers/QName.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Created on 20.11.2003
- *
- * (c) Stabsstelle IKT-Strategie des Bundes
- */
-package at.gv.egovernment.moa.spss.slinterface.transformers;
-
-/**
- * @author Gregor Karlinger (mailto:gregor.karlinger@cio.gv.at)
- */
-public class QName
-{
- public String nsUrl_;
- public String localName_;
-
- /* ---------------------------------------------------------------------------------------------------- */
-
- public QName(String nsUrl, String localName)
- {
- nsUrl_ = nsUrl;
- localName_ = localName;
- }
-
- /* ---------------------------------------------------------------------------------------------------- */
-
- public boolean equals(Object o)
- {
- if (o == null) return false;
- if (o instanceof QName)
- {
- QName toBeCompared = (QName) o;
-
- boolean nsURLEquals = (nsUrl_ == null)
- ? toBeCompared.nsUrl_ == null
- : nsUrl_.equals(toBeCompared.nsUrl_);
- boolean localNameEquals = (localName_ == null)
- ? toBeCompared.localName_ == null
- : localName_.equals(toBeCompared.localName_);
-
- return nsURLEquals && localNameEquals;
- }
- return false;
- }
-
- /* ---------------------------------------------------------------------------------------------------- */
-
- public int hashCode()
- {
- return new String(nsUrl_ + localName_).hashCode();
- }
-}
diff --git a/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/transformers/SL2MOA.java b/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/transformers/SL2MOA.java
deleted file mode 100644
index 11855242e..000000000
--- a/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/transformers/SL2MOA.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Created on 20.11.2003
- *
- * (c) Stabsstelle IKT-Strategie des Bundes
- */
-package at.gv.egovernment.moa.spss.slinterface.transformers;
-
-import java.util.HashMap;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-import at.gv.egovernment.moa.spss.slinterface.Constants;
-
-/**
- * @author Gregor Karlinger (mailto:gregor.karlinger@cio.gv.at)
- */
-public class SL2MOA
-{
- /**
- * Transforms an SL VerifyXMLSignatureRequest into a MOA VerifyXMLSignatureRequest.
- *
- * @param slVerifyXMLSignatureRequest The SL VerifyXMLSignatureRequest to be transformed.
- *
- * @return the specified request document, transformed into a MOA VerifyXMLSignatureRequest. Please note
- * that <code>slVerifyXMLSignatureRequest</code> is modified into the moa request.
- *
- * @pre slVerifyXMLSignatureRequest is a valid instance of the SL Schema (version 1.2 or 1.1).
- */
- public static Document toMoaVerifyXMLSignatureRequest(Document slVerifyXMLSignatureRequest,
- String trustProfileID)
- {
- // Namespace to namespace prefix mapping
- HashMap prefixMap = new HashMap(4);
- prefixMap.put(Constants.NSURI_SL_10_, Constants.NSPRE_SL_10_);
- prefixMap.put(Constants.NSURI_SL_11_, Constants.NSPRE_SL_11_);
- prefixMap.put(Constants.NSURI_SL_12_, Constants.NSPRE_SL_12_);
- prefixMap.put(Constants.NSURI_MOA_12_, Constants.NSPRE_MOA_12_);
-
- // Namespaces to be changed
- HashMap nsTransforms = new HashMap();
- nsTransforms.put(Constants.NSURI_SL_10_, Constants.NSURI_MOA_12_);
- nsTransforms.put(Constants.NSURI_SL_11_, Constants.NSURI_MOA_12_);
- nsTransforms.put(Constants.NSURI_SL_12_, Constants.NSURI_MOA_12_);
-
- // Names to be changed
- HashMap nameTransforms = new HashMap();
- nameTransforms.put(
- new QName(Constants.NSURI_SL_11_, "SignatureInfo"),
- new QName(Constants.NSURI_MOA_12_,"VerifySignatureInfo"));
- nameTransforms.put(
- new QName(Constants.NSURI_SL_12_, "SignatureInfo"),
- new QName(Constants.NSURI_MOA_12_,"VerifySignatureInfo"));
- nameTransforms.put(
- new QName(Constants.NSURI_SL_11_, "SignatureEnvironment"),
- new QName(Constants.NSURI_MOA_12_,"VerifySignatureEnvironment"));
- nameTransforms.put(
- new QName(Constants.NSURI_SL_12_, "SignatureEnvironment"),
- new QName(Constants.NSURI_MOA_12_,"VerifySignatureEnvironment"));
- nameTransforms.put(
- new QName(Constants.NSURI_SL_11_, "SignatureLocation"),
- new QName(Constants.NSURI_MOA_12_,"VerifySignatureLocation"));
- nameTransforms.put(
- new QName(Constants.NSURI_SL_12_, "SignatureLocation"),
- new QName(Constants.NSURI_MOA_12_,"VerifySignatureLocation"));
- nameTransforms.put(
- new QName(Constants.NSURI_SL_11_, "Supplement"),
- new QName(Constants.NSURI_MOA_12_,"SupplementProfile"));
- nameTransforms.put(
- new QName(Constants.NSURI_SL_12_, "Supplement"),
- new QName(Constants.NSURI_MOA_12_,"SupplementProfile"));
-
- Element verifyRequestElem = slVerifyXMLSignatureRequest.getDocumentElement();
- verifyRequestElem.setAttributeNS(Constants.NSURI_NAMESPACES_,
- "xmlns:" + Constants.NSPRE_MOA_12_, Constants.NSURI_MOA_12_);
-
- // Convert SL request into MOA request
- verifyRequestElem = Utils.transformDeep(verifyRequestElem, prefixMap, nsTransforms, nameTransforms);
-
- // Add trust profile ID element
- Element trustProfileIDElem = slVerifyXMLSignatureRequest.createElementNS(
- Constants.NSURI_MOA_12_, Constants.NSPRE_MOA_12_ + ":TrustProfileID");
- trustProfileIDElem.appendChild(slVerifyXMLSignatureRequest.createTextNode(trustProfileID));
- verifyRequestElem.appendChild(trustProfileIDElem);
-
- return slVerifyXMLSignatureRequest;
- }
-}
diff --git a/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/transformers/Utils.java b/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/transformers/Utils.java
deleted file mode 100644
index d03895efe..000000000
--- a/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/transformers/Utils.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Created on 20.11.2003
- *
- * (c) Stabsstelle IKT-Strategie des Bundes
- */
-package at.gv.egovernment.moa.spss.slinterface.transformers;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.xerces.dom.DocumentImpl;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.w3c.dom.traversal.DocumentTraversal;
-import org.w3c.dom.traversal.NodeFilter;
-import org.w3c.dom.traversal.NodeIterator;
-
-import at.gv.egovernment.moa.spss.slinterface.Constants;
-
-/**
- * @author Gregor Karlinger (mailto:gregor.karlinger@cio.gv.at)
- */
-public class Utils
-{
- /**
- *
- * @param elem
- * @param prefixes
- * @param namespaces
- * @param names
- *
- * @pre <code>elem</code> is backed by a <code>org.apache.xerces.dom.DocumentImpl</code>.
- */
- public static Element transformDeep(Element elem, Map prefixes, Map namespaces, Map names)
- {
- // Get node iterator for element
- DocumentTraversal docTraversal = (DocumentImpl) elem.getOwnerDocument();
- NodeIterator elemsIt = docTraversal.createNodeIterator(elem, NodeFilter.SHOW_ELEMENT, null, true);
-
- // Make iterator immutable
- List elemsList = new LinkedList();
- while (true)
- {
- Node currNode = elemsIt.nextNode();
- if (currNode == null) break;
- elemsList.add(currNode);
- }
-
- Iterator elemsImmIt = elemsList.iterator();
- Element returnValue = null;
- while (elemsImmIt.hasNext())
- {
- Element currElem = (Element) elemsImmIt.next();
-
- String nsUri = currElem.getNamespaceURI();
- String localName = currElem.getLocalName();
- QName qName = new QName(nsUri, localName);
-
- // Check if element is in "names"
- QName newQName = (QName)names.get(qName);
- if (newQName != null)
- {
- Element transformedElem = transformElem(currElem, newQName, prefixes);
- if (returnValue == null) returnValue = transformedElem;
- }
- else
- {
- String newNamespace = (String)namespaces.get(nsUri);
- if (newNamespace != null)
- {
- newQName = new QName(newNamespace, localName);
- Element transformedElem = transformElem(currElem, newQName, prefixes);
- if (returnValue == null) returnValue = transformedElem;
- }
- }
- }
- return returnValue;
- }
-
- /* ---------------------------------------------------------------------------------------------------- */
-
- private static Element transformElem(Element currElem, QName newQName, Map prefixes)
- {
- Element newElem = currElem.getOwnerDocument().createElementNS(newQName.nsUrl_,
- (String) prefixes.get(newQName.nsUrl_) + ":" + newQName.localName_);
-
- currElem.getParentNode().replaceChild(newElem, currElem);
-
- // Treat attributes of currElem
- NamedNodeMap currAttrs = currElem.getAttributes();
- ArrayList currAttrsList = new ArrayList(currAttrs.getLength());
- for (int i = 0; i < currAttrs.getLength(); i++) currAttrsList.add(currAttrs.item(i));
- for (int i = 0; i < currAttrsList.size(); i++)
- {
- Attr currAttr = (Attr)currAttrsList.get(i);
- currAttr.getOwnerElement().removeAttributeNode(currAttr);
-
- // Workaround for bad Xerces behaviour: default attributes in the xml namespace are created without
- // the xml prefix
- if (Constants.NSURI_XML_.equals(currAttr.getNamespaceURI()) && "space".equals(currAttr.getLocalName()))
- {
- newElem.setAttributeNS(Constants.NSURI_XML_, "xml:space", currAttr.getValue());
- }
- else
- {
- newElem.setAttributeNode(currAttr);
- }
- }
-
- // Treat child nodes of currElem
- NodeList currChildren = currElem.getChildNodes();
- ArrayList currChildrenList = new ArrayList(currChildren.getLength());
- for (int i = 0; i < currChildren.getLength(); i++) currChildrenList.add(currChildren.item(i));
- for (int i = 0; i < currChildrenList.size(); i++)
- {
- Node currChild = (Node)currChildrenList.get(i);
- currElem.removeChild(currChild);
- newElem.appendChild(currChild);
- }
-
- return newElem;
- }
-}