aboutsummaryrefslogtreecommitdiff
path: root/spss.server/src/at/gv/egovernment/moa/spss/server/service
diff options
context:
space:
mode:
authormcentner <mcentner@d688527b-c9ab-4aba-bd8d-4036d912da1d>2007-08-08 07:25:32 +0000
committermcentner <mcentner@d688527b-c9ab-4aba-bd8d-4036d912da1d>2007-08-08 07:25:32 +0000
commit43e57a42832ea8b4ceb0317f3c9028a4174ffa7b (patch)
treef5ed9074b8d7b89b2dd5b22d326f63be103e7551 /spss.server/src/at/gv/egovernment/moa/spss/server/service
parent10889e9dea2cc2f70b475e6ff7af37fdba1621d9 (diff)
downloadmoa-id-spss-43e57a42832ea8b4ceb0317f3c9028a4174ffa7b.tar.gz
moa-id-spss-43e57a42832ea8b4ceb0317f3c9028a4174ffa7b.tar.bz2
moa-id-spss-43e57a42832ea8b4ceb0317f3c9028a4174ffa7b.zip
Adapted project directory structure to suit the new maven based build process.
git-svn-id: https://joinup.ec.europa.eu/svn/moa-idspss/trunk@909 d688527b-c9ab-4aba-bd8d-4036d912da1d
Diffstat (limited to 'spss.server/src/at/gv/egovernment/moa/spss/server/service')
-rw-r--r--spss.server/src/at/gv/egovernment/moa/spss/server/service/AxisHandler.java382
-rw-r--r--spss.server/src/at/gv/egovernment/moa/spss/server/service/ConfigurationServlet.java120
-rw-r--r--spss.server/src/at/gv/egovernment/moa/spss/server/service/RevocationArchiveCleaner.java78
-rw-r--r--spss.server/src/at/gv/egovernment/moa/spss/server/service/ServiceUtils.java72
-rw-r--r--spss.server/src/at/gv/egovernment/moa/spss/server/service/SignatureCreationService.java104
-rw-r--r--spss.server/src/at/gv/egovernment/moa/spss/server/service/SignatureVerificationService.java151
6 files changed, 0 insertions, 907 deletions
diff --git a/spss.server/src/at/gv/egovernment/moa/spss/server/service/AxisHandler.java b/spss.server/src/at/gv/egovernment/moa/spss/server/service/AxisHandler.java
deleted file mode 100644
index befbd58dd..000000000
--- a/spss.server/src/at/gv/egovernment/moa/spss/server/service/AxisHandler.java
+++ /dev/null
@@ -1,382 +0,0 @@
-package at.gv.egovernment.moa.spss.server.service;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.security.cert.X509Certificate;
-import java.util.Iterator;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.apache.axis.AxisFault;
-import org.apache.axis.Message;
-import org.apache.axis.MessageContext;
-import org.apache.axis.attachments.AttachmentPart;
-import org.apache.axis.handlers.BasicHandler;
-import org.apache.axis.transport.http.HTTPConstants;
-import org.apache.axis.utils.Messages;
-import org.apache.axis.utils.XMLUtils;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NodeList;
-
-import at.gv.egovernment.moa.logging.LogMsg;
-import at.gv.egovernment.moa.logging.Logger;
-import at.gv.egovernment.moa.logging.LoggingContext;
-import at.gv.egovernment.moa.logging.LoggingContextManager;
-import at.gv.egovernment.moa.spss.MOASystemException;
-import at.gv.egovernment.moa.spss.server.config.ConfigurationProvider;
-import at.gv.egovernment.moa.spss.server.transaction.TransactionContext;
-import at.gv.egovernment.moa.spss.server.transaction.TransactionContextManager;
-import at.gv.egovernment.moa.spss.server.transaction.TransactionIDGenerator;
-import at.gv.egovernment.moa.spss.util.MessageProvider;
-import at.gv.egovernment.moa.util.DOMUtils;
-
-/**
- * An handler that is invoked on each web service request and performs some
- * central message handling.
- *
- * Mainly sets up the <code>TransactionContext</code> for the current
- * transaction (i.e. web service request).
- *
- * @author Patrick Peck
- * @author Stefan Knirsch
- * @version $Id$
- */
-public class AxisHandler extends BasicHandler {
-
- /** The resource names of the messages to load. */
- private static final String MOA_SPSS_WSDL_RESOURCE_ = "/resources/wsdl/MOA-SPSS-1.3.wsdl";
-
- /** The property name for accessing the HTTP request. */
- private static final String REQUEST_PROPERTY = HTTPConstants.MC_HTTP_SERVLETREQUEST;
-
- /** The property name for accessing the X509 client certificate chain. */
- private static final String X509_CERTIFICATE_PROPERTY = "javax.servlet.request.X509Certificate";
-
- /** The property name for accessing the SOAP action header. */
- private static final String SOAP_ACTION_HEADER = "soapaction";
-
- /** URI of the SOAP XML namespace. */
- public static final String SOAP_NS_URI = "http://schemas.xmlsoap.org/soap/envelope/";
-
- /** Prefix used for the SOAP XML namespace */
- public static final String SOAP_PREFIX = "soapenv";
-
- /** Simple string contains the front part of the enveloping SOAP wrapping */
- private static final String SOAP_PART_PRE = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><soapenv:Body>";
-
- /** Simple string contains the post part of the enveloping SOAP wrapping */
- private static final String SOAP_PART_POST = "</soapenv:Body></soapenv:Envelope>";
-
- /**
- * Handle an invocation of this handler.
- *
- * @param msgContext Information about this request/response.
- * @throws AxisFault An error occurred during processing of the request.
- * @see org.apache.axis.Handler#invoke(MessageContext)
- */
- public void invoke(MessageContext msgContext) throws AxisFault {
- if (!msgContext.getPastPivot()) {
- handleRequest(msgContext);
- } else {
- handleResponse(msgContext);
- }
- }
-
- /**
- * This method is called by <code>invoke</code> to handle incoming requests.
- *
- * @param msgContext The context as provided to <code>invoke</code>.
- * @throws AxisFault An error occurred during processing of the request.
- */
- private void handleRequest(MessageContext msgContext) throws AxisFault {
- try {
- // generate a unique transaction id and build the TransactionContext
- // for this request
- HttpServletRequest request =
- (HttpServletRequest) msgContext.getProperty(REQUEST_PROPERTY);
-
- X509Certificate[] clientCert =
- (X509Certificate[]) request.getAttribute(X509_CERTIFICATE_PROPERTY);
-
- //Configure Axis
- //msgContext.setProperty(org.apache.axis.SOAPPart.ALLOW_FORM_OPTIMIZATION, Boolean.FALSE);
-
- Message soapMessage = msgContext.getCurrentMessage();
-
- ConfigurationProvider configuration =
- ConfigurationProvider.getInstance();
-
- Element xmlRequest = null;
- Element soapPart = DOMUtils.parseDocument(new ByteArrayInputStream(soapMessage.getSOAPPartAsBytes()), false, null, null).getDocumentElement();
- if (soapPart!=null) {
- NodeList soapBodies = soapPart.getElementsByTagNameNS(SOAP_NS_URI, "Body");
- if (soapBodies!=null && soapBodies.getLength()>0) {
- xmlRequest = (Element) soapBodies.item(0).getFirstChild();
- }
- //oder TODO: Evaluierung ob XPATH schneller
- /*
- HashMap nSMap = new HashMap();
- nSMap.put((String)SOAP_PREFIX, SOAP_NS_URI);
- Element soapBody = (Element) XPathUtils.selectSingleNode(soapPart, nSMap, "/"+SOAP_PREFIX+":Envelope/"+SOAP_PREFIX+":Body");
- if (soapBody!=null) {
- xmlRequest= (Element) soapBody.getFirstChild();
- }
- */
- }
-
- TransactionContext context =
- new TransactionContext(
- TransactionIDGenerator.nextID(),
- clientCert,
- configuration,
- xmlRequest,
- null);
-
- String soapAction = (String) request.getHeader(SOAP_ACTION_HEADER);
- if ("\"\"".equals(soapAction)) {
- // if http soap action header is empty
- soapAction = msgContext.getTargetService();
- }
- context.setRequestName(soapAction);
-
- int attachmentCount = soapMessage.getAttachmentsImpl().getAttachmentCount();
- if (attachmentCount>0) {
-
- // add SOAP attachments to transaction context
- Iterator iterator = soapMessage.getAttachments();
- while (iterator.hasNext()) {
- AttachmentPart attachment = (AttachmentPart)iterator.next();
- String id = attachment.getContentId();
- String type = attachment.getContentType();
-
- //Now get the InputStream (note: we could also get the content with Object content = attachment.getContent();)
- InputStream is = null;
- javax.activation.DataHandler datahandler = attachment.getDataHandler();
- org.apache.axis.attachments.ManagedMemoryDataSource mmds = (org.apache.axis.attachments.ManagedMemoryDataSource)datahandler.getDataSource();
- if (mmds!=null){
- is = mmds.getInputStream();
- }
- debug("handler.06", new Object[] {id, type});
- context.addAttachment(id, type, mmds);
- }
- }
-
- setUpContexts(context);
-
- // log some information about the request
- info(
- "handler.00",
- new Object[] {
- context.getTransactionID(),
- msgContext.getTargetService()});
- info("handler.01", new Object[] { request.getRemoteAddr()});
- if (clientCert != null) {
- info(
- "handler.02",
- new Object[] {
- clientCert[0].getSubjectDN(),
- clientCert[0].getSerialNumber(),
- clientCert[0].getIssuerDN()});
-
- } else {
- info("handler.03", null);
- }
- if (Logger.isDebugEnabled()) {
- String msg = soapMessage.getSOAPPartAsString();
- Logger.debug(new LogMsg(msg));
- }
- } catch (MOASystemException e) {
- MOASystemException se = new MOASystemException("2900", null, e);
- AxisFault fault = AxisFault.makeFault(se);
- fault.setFaultDetail(new Element[] { se.toErrorResponse()});
- throw fault;
- } catch (Throwable t) {
- t.printStackTrace();
- Logger.info(new LogMsg(t.getStackTrace()));
- MOASystemException e = new MOASystemException("2900", null, t);
- AxisFault fault = AxisFault.makeFault(e);
- fault.setFaultDetail(new Element[] { e.toErrorResponse()});
- throw fault;
- }
- }
-
- /**
- * This method is called by <code>invoke</code> to handle outgoing
- * responses.
- *
- * @param msgContext The context as provided to <code>invoke</code>.
- * @throws AxisFault An error occurred during processing of the response.
- */
- private void handleResponse(MessageContext msgContext) throws AxisFault {
- String xmlResponseString = null;
- String soapResponseString = null;
-
- TransactionContext context = TransactionContextManager.getInstance().getTransactionContext();
- Element xmlResponse = context.getResponse();
-
- if (xmlResponse!=null) {
- try {
- xmlResponseString = DOMUtils.serializeNode(xmlResponse, true);
- /*
- Soll die Antwort nur \n enthalten, so gibt es 2 Möglichkeiten:
- 1.) höhere Xalan Version und
- xmlResponseString = DOMUtils.serializeNode(xmlResponse, true, "\n");
- 2.)
- OutputFormat serializerFormat = new OutputFormat((Document) xmlResponse.getOwnerDocument());
- serializerFormat.setLineSeparator("\n");
- serializerFormat.setIndenting(false);
- serializerFormat.setPreserveSpace(true);
- serializerFormat.setOmitXMLDeclaration(true);
- serializerFormat.setEncoding("UTF-8");
- ByteArrayOutputStream serializedBytes = new ByteArrayOutputStream();
- XMLSerializer serializer = new XMLSerializer(serializedBytes, serializerFormat);
- serializer.serialize(xmlResponse);
- serializedBytes.close();
- xmlResponseString = serializedBytes.toString("UTF-8");
- */
- soapResponseString = SOAP_PART_PRE + xmlResponseString + SOAP_PART_POST;
- //override axis response-message
- msgContext.setResponseMessage(new Message(soapResponseString));
- } catch (Throwable t) {
- t.printStackTrace();
- Logger.info(new LogMsg(t.getStackTrace()));
- MOASystemException e = new MOASystemException("2900", null, t);
- AxisFault fault = AxisFault.makeFault(e);
- fault.setFaultDetail(new Element[] { e.toErrorResponse()});
- throw fault;
- }
-
- } else {
- //Fallback: if functions do not set the resulting response in the transaction, the original one from axis will be used
- soapResponseString = msgContext.getCurrentMessage().getSOAPPartAsString();
- }
-
- info("handler.04", null);
- if (Logger.isDebugEnabled()) {
- Logger.debug(new LogMsg(soapResponseString));
- }
- tearDownContexts();
- }
-
- /**
- * Called, when the processing of the web service fails.
- *
- * @param msgContext Information about the current request.
- * @see org.apache.axis.Handler#onFault(org.apache.axis.MessageContext)
- */
- public void onFault(MessageContext msgContext) {
- info("handler.05", null);
- tearDownContexts();
- }
-
- /**
- * Set up the thread-local contexts (<code>TransactionContext</code> and
- * <code>LoggingContext</code>).
- *
- * @param context The <code>TransactionContext</code> to set for the current
- * request.
- */
- private void setUpContexts(TransactionContext context) {
- // set the transaction context in the TransactionContextManager
- TransactionContextManager tcm = TransactionContextManager.getInstance();
- tcm.setTransactionContext(context);
-
- // set the logging context in the LoggingContextManager
- LoggingContextManager lcm = LoggingContextManager.getInstance();
- LoggingContext lc = new LoggingContext(context.getTransactionID());
- lcm.setLoggingContext(lc);
- }
-
- /**
- * Tear down the thread-local contexts.
- */
- private void tearDownContexts() {
- TransactionContextManager tcm = TransactionContextManager.getInstance();
-
- //delete temporary files
- TransactionContext context = tcm.getTransactionContext();
- context.cleanAttachmentCache();
-
- // unset the transaction context
- tcm.setTransactionContext(null);
-
- // unset the logging context
- LoggingContextManager lcm = LoggingContextManager.getInstance();
- lcm.setLoggingContext(null);
- }
-
- /**
- * Generate the WSDL into the <code>msgContext</code>.
- *
- * The code of this method is more or less copied from the
- * <code>org.apache.axis.handlers.soap.SOAPService</code> class contained in
- * the 1.1 release of Axis to allow for a missing <code>wsdlFile</code> (so
- * that a resource by the same name is searched for in the classpath). The
- * implementation of this method should be obsolete if Axis 1.1 or higher is
- * used.
- *
- * @param msgContext The <code>MessageContext</code> that will contain the
- * WSDL description of the current web service.
- * @throws AxisFault An error occurred producing the WSDL.
- */
- public void generateWSDL(MessageContext msgContext) throws AxisFault {
- InputStream instream = null;
-
- try {
- String filename = MOA_SPSS_WSDL_RESOURCE_;
- File file = new File(filename);
- if (file.exists()) {
- //if this resolves to a file, load it
- instream = new FileInputStream(filename);
- } else {
- //else load a named resource in our classloader.
- instream = this.getClass().getResourceAsStream(filename);
- if (instream == null) {
- String errorText = Messages.getMessage("wsdlFileMissing", filename);
- throw new AxisFault(errorText);
- }
- }
- Document doc = XMLUtils.newDocument(instream);
- msgContext.setProperty("WSDL", doc);
- } catch (Exception e) {
- throw AxisFault.makeFault(e);
- } finally {
- if (instream != null) {
- try {
- instream.close();
- } catch (IOException e) {
- // ok to do nothing here
- }
- }
- }
- }
-
- /**
- * Utility function to issue an info message to the log.
- *
- * @param messageId The ID of the message to log.
- * @param parameters Additional message parameters.
- */
- private static void info(String messageId, Object[] parameters) {
- MessageProvider msg = MessageProvider.getInstance();
-
- Logger.info(new LogMsg(msg.getMessage(messageId, parameters)));
- }
-
- /**
- * Utility function to issue an debug message to the log.
- *
- * @param messageId The ID of the message to log.
- * @param parameters Additional message parameters.
- */
- private static void debug(String messageId, Object[] parameters) {
- MessageProvider msg = MessageProvider.getInstance();
-
- Logger.debug(new LogMsg(msg.getMessage(messageId, parameters)));
- }
-
-}
diff --git a/spss.server/src/at/gv/egovernment/moa/spss/server/service/ConfigurationServlet.java b/spss.server/src/at/gv/egovernment/moa/spss/server/service/ConfigurationServlet.java
deleted file mode 100644
index 7783ed3f6..000000000
--- a/spss.server/src/at/gv/egovernment/moa/spss/server/service/ConfigurationServlet.java
+++ /dev/null
@@ -1,120 +0,0 @@
-package at.gv.egovernment.moa.spss.server.service;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import at.gv.egovernment.moa.logging.LogMsg;
-import at.gv.egovernment.moa.logging.Logger;
-import at.gv.egovernment.moa.logging.LoggingContext;
-import at.gv.egovernment.moa.logging.LoggingContextManager;
-
-import at.gv.egovernment.moa.spss.server.config.ConfigurationProvider;
-import at.gv.egovernment.moa.spss.server.iaik.config.IaikConfigurator;
-import at.gv.egovernment.moa.spss.server.init.*;
-import at.gv.egovernment.moa.spss.util.MessageProvider;
-
-/**
- * A servlet to initialize and update the MOA configuration.
- *
- * @author Fatemeh Philippi
- * @author Patrick Peck
- * @version $Id$
- */
-public class ConfigurationServlet extends HttpServlet {
- /** The document type of the HTML to generate. */
- private static final String DOC_TYPE =
- "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n";
-
- /**
- * Handle a HTTP GET request, used to indicated that the MOA
- * configuration needs to be updated (reloaded).
- *
- * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest, HttpServletResponse)
- */
- public void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
-
- MessageProvider msg = MessageProvider.getInstance();
- PrintWriter out;
-
- // set up a logging context for logging the reconfiguration
- LoggingContextManager.getInstance().setLoggingContext(
- new LoggingContext("configuration update"));
-
- response.setContentType("text/html");
- out = response.getWriter();
- out.println(DOC_TYPE);
- out.println("<head><title>MOA configuration update</title></head>");
- out.println("<body bgcolor=\"#FFFFFF\">");
- try {
- // reconfigure the system
- ConfigurationProvider config = ConfigurationProvider.reload();
- IaikConfigurator iaikConfigurator = new IaikConfigurator();
-
- iaikConfigurator.configure(config);
-
- // print a status message
- out.println("<p><b>" + msg.getMessage("config.06", null) + "</b></p>");
- Logger.info(new LogMsg(msg.getMessage("config.06", null)));
-
- if (!config.getWarnings().isEmpty()) {
- // print the warnings
- List allWarnings = new ArrayList();
- Iterator iter;
-
- allWarnings.addAll(config.getWarnings());
- allWarnings.addAll(iaikConfigurator.getWarnings());
-
- out.println("<p><b>" + msg.getMessage("config.29", null) + "</b></p>");
- for (iter = allWarnings.iterator(); iter.hasNext();) {
- out.println(iter.next() + "<br />");
- }
- out.println("<p><b>" + msg.getMessage("config.28", null) + "</b></p>");
- }
-
- } catch (Throwable t) {
- out.println("<p><b>" + msg.getMessage("config.20", null) + "</b></p>");
- out.println("<p><b>" + msg.getMessage("config.28", null) + "</b></p>");
- Logger.warn(new LogMsg(msg.getMessage("config.20", null)), t);
- }
- out.println("</body>");
-
- out.flush();
- out.close();
-
- // tear down the logging context
- LoggingContextManager.getInstance().setLoggingContext(null);
- }
-
- /**
- * Do the same as <code>doGet</code>.
- *
- * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest, HttpServletResponse)
- */
- public void doPost(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- doGet(request, response);
- }
-
- /**
- * Perform some initial initialization tasks for the MOA web services
- * application.
- *
- * Does an initial load of the MOA configuration to test if a working web
- * service can be provided.
- *
- * @see javax.servlet.GenericServlet#init()
- */
- public void init() throws ServletException {
- SystemInitializer.init();
- }
-
-} \ No newline at end of file
diff --git a/spss.server/src/at/gv/egovernment/moa/spss/server/service/RevocationArchiveCleaner.java b/spss.server/src/at/gv/egovernment/moa/spss/server/service/RevocationArchiveCleaner.java
deleted file mode 100644
index 26d79dbd8..000000000
--- a/spss.server/src/at/gv/egovernment/moa/spss/server/service/RevocationArchiveCleaner.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package at.gv.egovernment.moa.spss.server.service;
-
-import iaik.pki.revocation.RevocationSourceTypes;
-import iaik.pki.store.revocation.archive.Archive;
-import iaik.pki.store.revocation.archive.ArchiveFactory;
-
-import java.util.Date;
-
-import at.gv.egovernment.moa.logging.LogMsg;
-import at.gv.egovernment.moa.logging.Logger;
-import at.gv.egovernment.moa.spss.server.config.ConfigurationProvider;
-import at.gv.egovernment.moa.spss.server.logging.TransactionId;
-import at.gv.egovernment.moa.spss.util.MessageProvider;
-
-/**
- * A <code>Runnable</code> for periodically cleaning up the revocation archive.
- * @author Patrick Peck
- * @version $Id$
- */
-public class RevocationArchiveCleaner implements Runnable {
-
- /** The inverval between two clean-ups of the revocation archive. */
- private long archiveCleanupInterval;
-
- /**
- * Create a new <code>RevocationArchiveCleaner</code>.
- *
- * @param archiveCleanupInterval The interval between two clean-ups of the
- * revocation archive.
- */
- public RevocationArchiveCleaner(long archiveCleanupInterval) {
- this.archiveCleanupInterval = archiveCleanupInterval;
- }
-
- /**
- * Run the <code>RevocationArchiveCleaner</code> in its own
- * <code>Thread</code>.
- */
- public void run() {
- while (true) {
- try {
- ConfigurationProvider config = ConfigurationProvider.getInstance();
- boolean enableArchiving = config.getEnableRevocationArchiving();
-
- if (enableArchiving)
- {
- Archive archive = ArchiveFactory.getInstance().getArchive();
- long archiveDurationMillis =
- (long) config.getCRLArchiveDuration() * 86400000;
-
- // delete old archive data
- if (archiveDurationMillis > 0) {
- Date olderThan =
- new Date(System.currentTimeMillis() - archiveDurationMillis);
-
- archive.deleteOldArchiveEntries(
- RevocationSourceTypes.CRL,
- olderThan,
- new TransactionId("RevocationArchiveCleaner"));
- }
- }
-
- } catch (Exception e) {
- MessageProvider msg = MessageProvider.getInstance();
- Logger.error(new LogMsg(msg.getMessage("init.02", null)), e);
- }
-
- // sleep
- try {
- Thread.sleep(archiveCleanupInterval * 1000);
- } catch (InterruptedException e) {
- // ok to do nothing here
- }
-
- }
- }
-
-}
diff --git a/spss.server/src/at/gv/egovernment/moa/spss/server/service/ServiceUtils.java b/spss.server/src/at/gv/egovernment/moa/spss/server/service/ServiceUtils.java
deleted file mode 100644
index 4224f5665..000000000
--- a/spss.server/src/at/gv/egovernment/moa/spss/server/service/ServiceUtils.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package at.gv.egovernment.moa.spss.server.service;
-
-import java.io.ByteArrayInputStream;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-import at.gv.egovernment.moa.util.Constants;
-import at.gv.egovernment.moa.util.DOMUtils;
-
-import at.gv.egovernment.moa.spss.MOAApplicationException;
-
-/**
- * Helper methods for the Service classes.
- *
- * @author Patrick Peck
- * @version $Id$
- */
-public class ServiceUtils {
-
- /**
- * Schema-validate a request.
- *
- * @param request The request to validate.
- * @throws MOAApplicationException An error occurred validating the requst.
- */
- public static void validateRequest(Element[] request)
- throws MOAApplicationException {
-
- // validate the request
- try {
- DOMUtils.validateElement(
- request[0],
- Constants.ALL_SCHEMA_LOCATIONS,
- null);
- } catch (Exception e) {
- throw new MOAApplicationException(
- "1100",
- new Object[] { e.getMessage()},
- e);
- }
- }
-
- /**
- * Reparse the request with schema-validation turned on so that ID references
- * are resolved.
- *
- * @param request The request to reparse.
- * @return The reparsed request.
- * @throws MOAApplicationException An error occurred parsing the request.
- */
- public static Element reparseRequest(Element request)
- throws MOAApplicationException {
-
- try {
- byte[] requestBytes = DOMUtils.serializeNode(request, "UTF-8");
- Document validatedRequest =
- DOMUtils.parseDocument(
- new ByteArrayInputStream(requestBytes),
- true,
- Constants.ALL_SCHEMA_LOCATIONS,
- null);
- return validatedRequest.getDocumentElement();
- } catch (Exception e) {
- throw new MOAApplicationException(
- "1100",
- new Object[] { e.getMessage()},
- e);
- }
- }
-
-}
diff --git a/spss.server/src/at/gv/egovernment/moa/spss/server/service/SignatureCreationService.java b/spss.server/src/at/gv/egovernment/moa/spss/server/service/SignatureCreationService.java
deleted file mode 100644
index 2d548ea3a..000000000
--- a/spss.server/src/at/gv/egovernment/moa/spss/server/service/SignatureCreationService.java
+++ /dev/null
@@ -1,104 +0,0 @@
-package at.gv.egovernment.moa.spss.server.service;
-
-import java.util.Collections;
-
-import javax.xml.namespace.QName;
-
-import org.apache.axis.AxisFault;
-import org.apache.axis.i18n.Messages;
-import org.w3c.dom.Element;
-
-import at.gv.egovernment.moa.logging.Logger;
-import at.gv.egovernment.moa.spss.MOAException;
-import at.gv.egovernment.moa.spss.MOASystemException;
-import at.gv.egovernment.moa.spss.api.xmlbind.CreateXMLSignatureRequestParser;
-import at.gv.egovernment.moa.spss.api.xmlbind.CreateXMLSignatureResponseBuilder;
-import at.gv.egovernment.moa.spss.api.xmlsign.CreateXMLSignatureRequest;
-import at.gv.egovernment.moa.spss.api.xmlsign.CreateXMLSignatureResponse;
-import at.gv.egovernment.moa.spss.server.invoke.XMLSignatureCreationInvoker;
-import at.gv.egovernment.moa.spss.server.transaction.TransactionContext;
-import at.gv.egovernment.moa.spss.server.transaction.TransactionContextManager;
-import at.gv.egovernment.moa.util.Constants;
-import at.gv.egovernment.moa.util.StreamUtils;
-
-/**
- * The service endpoint for the <code>SignatureCreation</code> web service.
- *
- * @author Patrick Peck
- * @version $Id$
- */
-public class SignatureCreationService {
-
- /**
- * Handle a <code>CreateXMLSignatureRequest</code>.
- *
- * @param request The <code>CreateXMLSignatureRequest</code> to work on
- * (contained in the 0th element of the array).
- * @return A <code>CreateXMLSignatureResponse</code> as the only element of
- * the <code>Element</code> array.
- * @throws AxisFault An error occurred during handling of the message.
- */
- public Element[] CreateXMLSignatureRequest(Element[] request)
- throws AxisFault {
- XMLSignatureCreationInvoker invoker =
- XMLSignatureCreationInvoker.getInstance();
- Element[] response = new Element[1];
-
- // check that we have a CreateXMLSignatureRequest; if not, create an
- // AxisFault, just like the org.apache.axis.providers.java.MsgProvider
- if (!Constants.MOA_SPSS_CREATE_XML_REQUEST.equals(request[0].getLocalName()) ||
- !Constants.MOA_NS_URI.equals(request[0].getNamespaceURI()))
- {
- QName qname =
- new QName(request[0].getNamespaceURI(), request[0].getLocalName());
- throw new AxisFault(
- Messages.getMessage("noOperationForQName", qname.toString())); // TODO GK Operation name does not make it into the error repsonse
- }
-
- // handle the request
- try {
- // create a parser and builder for binding API objects to/from XML
- CreateXMLSignatureRequestParser requestParser =
- new CreateXMLSignatureRequestParser();
- CreateXMLSignatureResponseBuilder responseBuilder =
- new CreateXMLSignatureResponseBuilder();
- Element reparsedReq;
- CreateXMLSignatureRequest requestObj;
- CreateXMLSignatureResponse responseObj;
-
- //since Axis (1.1 ff) has problem with namespaces we take the raw request stored by the Axishandler.
- TransactionContext context = TransactionContextManager.getInstance().getTransactionContext();
- // validate the request
- reparsedReq = ServiceUtils.reparseRequest(context.getRequest());
-
- // convert to API objects
- requestObj = requestParser.parse(reparsedReq);
-
- // invoke the core logic
- responseObj =
- invoker.createXMLSignature(requestObj, Collections.EMPTY_SET);
-
- // map back to XML
- response[0] = responseBuilder.build(responseObj).getDocumentElement();
-
- // save response in transaction
- context.setResponse(response[0]);
-
- } catch (MOAException e) {
- AxisFault fault = AxisFault.makeFault(e);
- fault.setFaultDetail(new Element[] { e.toErrorResponse()});
- Logger.debug("Anfrage zur Signaturerstellung wurde nicht erfolgreich beendet:"
- + System.getProperty("line.separator") + StreamUtils.getStackTraceAsString(e));
- throw fault;
- } catch (Throwable t) {
- MOASystemException e = new MOASystemException("2900", null, t);
- AxisFault fault = AxisFault.makeFault(e);
- fault.setFaultDetail(new Element[] { e.toErrorResponse()});
- Logger.debug("Anfrage zur Signaturerstellung wurde nicht erfolgreich beendet:"
- + System.getProperty("line.separator") + StreamUtils.getStackTraceAsString(e));
- throw fault;
- }
-
- return response;
- }
-}
diff --git a/spss.server/src/at/gv/egovernment/moa/spss/server/service/SignatureVerificationService.java b/spss.server/src/at/gv/egovernment/moa/spss/server/service/SignatureVerificationService.java
deleted file mode 100644
index b335a6e23..000000000
--- a/spss.server/src/at/gv/egovernment/moa/spss/server/service/SignatureVerificationService.java
+++ /dev/null
@@ -1,151 +0,0 @@
-package at.gv.egovernment.moa.spss.server.service;
-
-import org.apache.axis.AxisFault;
-import org.w3c.dom.Element;
-
-import at.gv.egovernment.moa.logging.Logger;
-import at.gv.egovernment.moa.spss.MOAException;
-import at.gv.egovernment.moa.spss.MOASystemException;
-import at.gv.egovernment.moa.spss.api.cmsverify.VerifyCMSSignatureRequest;
-import at.gv.egovernment.moa.spss.api.cmsverify.VerifyCMSSignatureResponse;
-import at.gv.egovernment.moa.spss.api.xmlbind.VerifyCMSSignatureRequestParser;
-import at.gv.egovernment.moa.spss.api.xmlbind.VerifyCMSSignatureResponseBuilder;
-import at.gv.egovernment.moa.spss.api.xmlbind.VerifyXMLSignatureRequestParser;
-import at.gv.egovernment.moa.spss.api.xmlbind.VerifyXMLSignatureResponseBuilder;
-import at.gv.egovernment.moa.spss.api.xmlverify.VerifyXMLSignatureRequest;
-import at.gv.egovernment.moa.spss.api.xmlverify.VerifyXMLSignatureResponse;
-import at.gv.egovernment.moa.spss.server.invoke.CMSSignatureVerificationInvoker;
-import at.gv.egovernment.moa.spss.server.invoke.XMLSignatureVerificationInvoker;
-import at.gv.egovernment.moa.spss.server.transaction.TransactionContext;
-import at.gv.egovernment.moa.spss.server.transaction.TransactionContextManager;
-import at.gv.egovernment.moa.util.StreamUtils;
-
-/**
- * The service endpoint for the <code>SignatureVerification</code> web service.
- *
- * @author Patrick Peck
- * @version $Id$
- */
-public class SignatureVerificationService {
-
- /**
- * Handle a <code>VerifyCMSSignatureRequest</code>.
- *
- * @param request The <code>VerifyCMSSignatureRequest</code> to work on
- * (contained in the 0th element of the array).
- * @return A <code>VerifyCMSSignatureResponse</code> as the only element of
- * the <code>Element</code> array.
- * @throws AxisFault An error occurred during handling of the message.
- */
- public Element[] VerifyCMSSignatureRequest(Element[] request)
- throws AxisFault {
- CMSSignatureVerificationInvoker invoker =
- CMSSignatureVerificationInvoker.getInstance();
- Element[] response = new Element[1];
-
- try {
- // create a parser and builder for binding API objects to/from XML
- VerifyCMSSignatureRequestParser requestParser =
- new VerifyCMSSignatureRequestParser();
- VerifyCMSSignatureResponseBuilder responseBuilder =
- new VerifyCMSSignatureResponseBuilder();
- Element reparsedReq;
- VerifyCMSSignatureRequest requestObj;
- VerifyCMSSignatureResponse responseObj;
-
- //since Axis (1.1 ff) has problem with namespaces we take the raw request stored by the Axishandler.
- TransactionContext context = TransactionContextManager.getInstance().getTransactionContext();
- // validate the request
- reparsedReq = ServiceUtils.reparseRequest(context.getRequest());
-
- // convert to API objects
- requestObj = requestParser.parse(reparsedReq);
-
- // invoke the core logic
- responseObj = invoker.verifyCMSSignature(requestObj);
-
- // map back to XML
- response[0] = responseBuilder.build(responseObj).getDocumentElement();
-
- // save response in transaction
- context.setResponse(response[0]);
-
- } catch (MOAException e) {
- AxisFault fault = AxisFault.makeFault(e);
- fault.setFaultDetail(new Element[] { e.toErrorResponse()});
- Logger.debug("Anfrage zur Signaturpruefung wurde nicht erfolgreich beendet:"
- + System.getProperty("line.separator") + StreamUtils.getStackTraceAsString(e));
- throw fault;
- } catch (Throwable t) {
- MOASystemException e = new MOASystemException("2900", null, t);
- AxisFault fault = AxisFault.makeFault(e);
- fault.setFaultDetail(new Element[] { e.toErrorResponse()});
- Logger.debug("Anfrage zur Signaturpruefung wurde nicht erfolgreich beendet:"
- + System.getProperty("line.separator") + StreamUtils.getStackTraceAsString(e));
- throw fault;
- }
-
- return response;
- }
-
- /**
- * Handle a <code>VerifyXMLSignatureRequest</code>.
- *
- * @param request The <code>VerifyXMLSignatureRequest</code> to work on
- * (contained in the 0th element of the array).
- * @return A <code>VerifyXMLSignatureResponse</code> as the only element of
- * the <code>Element</code> array.
- * @throws AxisFault An error occurred during handling of the message.
- */
- public Element[] VerifyXMLSignatureRequest(Element[] request)
- throws AxisFault {
- XMLSignatureVerificationInvoker invoker =
- XMLSignatureVerificationInvoker.getInstance();
- Element[] response = new Element[1];
-
- try {
- // create a parser and builder for binding API objects to/from XML
- VerifyXMLSignatureRequestParser requestParser =
- new VerifyXMLSignatureRequestParser();
- VerifyXMLSignatureResponseBuilder responseBuilder =
- new VerifyXMLSignatureResponseBuilder();
- Element reparsedReq;
- VerifyXMLSignatureRequest requestObj;
- VerifyXMLSignatureResponse responseObj;
-
- //since Axis (1.1 ff) has problem with namespaces we take the raw request stored by the Axishandler.
- TransactionContext context = TransactionContextManager.getInstance().getTransactionContext();
- // validate the request
- reparsedReq = ServiceUtils.reparseRequest(context.getRequest());
-
- // convert to API objects
- requestObj = requestParser.parse(reparsedReq);
-
- // invoke the core logic
- responseObj = invoker.verifyXMLSignature(requestObj);
-
- // map back to XML
- response[0] = responseBuilder.build(responseObj).getDocumentElement();
-
- // save response in transaction
- context.setResponse(response[0]);
-
- } catch (MOAException e) {
- AxisFault fault = AxisFault.makeFault(e);
- fault.setFaultDetail(new Element[] { e.toErrorResponse()});
- Logger.debug("Anfrage zur Signaturpruefung wurde nicht erfolgreich beendet:"
- + System.getProperty("line.separator") + StreamUtils.getStackTraceAsString(e));
- throw fault;
- } catch (Throwable t) {
- MOASystemException e = new MOASystemException("2900", null, t);
- AxisFault fault = AxisFault.makeFault(e);
- fault.setFaultDetail(new Element[] { e.toErrorResponse()});
- Logger.debug("Anfrage zur Signaturpruefung wurde nicht erfolgreich beendet:"
- + System.getProperty("line.separator") + StreamUtils.getStackTraceAsString(e));
- throw fault;
- }
-
- return response;
- }
-
-}