From 1ef210e5d19a0a9bcee9701573732eb199bea5f1 Mon Sep 17 00:00:00 2001 From: "(no author)" <(no author)@d688527b-c9ab-4aba-bd8d-4036d912da1d> Date: Wed, 24 Dec 2003 10:49:19 +0000 Subject: This commit was manufactured by cvs2svn to create tag '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 --- .../moa/spss/slinterface/Constants.java | 66 ---- .../gv/egovernment/moa/spss/slinterface/Utils.java | 33 -- .../spss/slinterface/filters/RequestWrapper.java | 57 ---- .../spss/slinterface/filters/ResponseWrapper.java | 44 --- .../moa/spss/slinterface/filters/SL2MOAFilter.java | 332 --------------------- .../slinterface/filters/ServletInputStream.java | 55 ---- .../slinterface/filters/ServletOutputStream.java | 50 ---- .../slinterface/listeners/ContextListener.java | 157 ---------- .../spss/slinterface/moainvoker/MOAInvoker.java | 92 ------ .../moa/spss/slinterface/servlets/MOAServlet.java | 111 ------- .../spss/slinterface/servlets/ResultServlet.java | 125 -------- .../moa/spss/slinterface/servlets/SLRequest.java | 19 -- .../moa/spss/slinterface/transformers/MOA2SL.java | 88 ------ .../moa/spss/slinterface/transformers/QName.java | 51 ---- .../moa/spss/slinterface/transformers/SL2MOA.java | 88 ------ .../moa/spss/slinterface/transformers/Utils.java | 129 -------- 16 files changed, 1497 deletions(-) delete mode 100644 spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/Constants.java delete mode 100644 spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/Utils.java delete mode 100644 spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/filters/RequestWrapper.java delete mode 100644 spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/filters/ResponseWrapper.java delete mode 100644 spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/filters/SL2MOAFilter.java delete mode 100644 spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/filters/ServletInputStream.java delete mode 100644 spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/filters/ServletOutputStream.java delete mode 100644 spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/listeners/ContextListener.java delete mode 100644 spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/moainvoker/MOAInvoker.java delete mode 100644 spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/servlets/MOAServlet.java delete mode 100644 spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/servlets/ResultServlet.java delete mode 100644 spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/servlets/SLRequest.java delete mode 100644 spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/transformers/MOA2SL.java delete mode 100644 spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/transformers/QName.java delete mode 100644 spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/transformers/SL2MOA.java delete mode 100644 spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/transformers/Utils.java (limited to 'spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss') 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 = "
Und weiter geht es ..."; - - 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 newServletInputStram
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
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 moaVerifyXMLSignatureResponse
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 slVerifyXMLSignatureRequest
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 elem
is backed by a org.apache.xerces.dom.DocumentImpl
.
- */
- 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;
- }
-}
--
cgit v1.2.3