diff options
| author | pdanner <pdanner@d688527b-c9ab-4aba-bd8d-4036d912da1d> | 2007-09-05 10:19:19 +0000 | 
|---|---|---|
| committer | pdanner <pdanner@d688527b-c9ab-4aba-bd8d-4036d912da1d> | 2007-09-05 10:19:19 +0000 | 
| commit | ef61e7c9b4591f65ebe9abf6afad51999136e41c (patch) | |
| tree | 9685b0eafa4f3793f02c96c2999fa1603fbc9e85 /erecht.client.ss/src/at | |
| parent | 15ff0aeee18b4f7774d65b3b6b4fdba04996efe9 (diff) | |
| download | moa-id-spss-ef61e7c9b4591f65ebe9abf6afad51999136e41c.tar.gz moa-id-spss-ef61e7c9b4591f65ebe9abf6afad51999136e41c.tar.bz2 moa-id-spss-ef61e7c9b4591f65ebe9abf6afad51999136e41c.zip | |
removed obsolete files
git-svn-id: https://joinup.ec.europa.eu/svn/moa-idspss/trunk@992 d688527b-c9ab-4aba-bd8d-4036d912da1d
Diffstat (limited to 'erecht.client.ss/src/at')
12 files changed, 0 insertions, 1767 deletions
| diff --git a/erecht.client.ss/src/at/gv/egovernment/moa/ss/erechtclient/ERechtClientException.java b/erecht.client.ss/src/at/gv/egovernment/moa/ss/erechtclient/ERechtClientException.java deleted file mode 100644 index 1650e1641..000000000 --- a/erecht.client.ss/src/at/gv/egovernment/moa/ss/erechtclient/ERechtClientException.java +++ /dev/null @@ -1,111 +0,0 @@ -package at.gv.egovernment.moa.ss.erechtclient; - -import java.io.BufferedWriter; -import java.io.ByteArrayOutputStream; -import java.io.PrintStream; -import java.io.PrintWriter; -import java.io.Writer; - -import javax.servlet.ServletOutputStream; - -/** - * Base class of MOA specific exceptions. - *  - * This class has the ability to wrap other exceptions which may be seen - * as the root cause for this exception.  - *  - * @author Gregor Karlinger - * @version $Id$ - */ -public class ERechtClientException extends Exception { - -  /** The wrapped <code>Throwable</code>. */ -  private Throwable wrapped_; - -  /** -   * Create a <code>MOAException</code>. -   *  -   * @param message The message contained in the created <code>ERechtClientException</code>. -   */ -  public ERechtClientException(String message)  -  { -    super(message); -  } - -  /** -   * Create a <code>MOAException</code>. -   *  -   * @param message The message contained in the created <code>ERechtClientException</code>. -   *  -   * @param wrapped The exception wrapped by the created <code>ERechtClientException</code>. -   */ -  public ERechtClientException(String message, Throwable wrapped)  -  { -    super(message, wrapped); -    this.wrapped_ = wrapped; -  } -   -  /** -   * Print a stack trace of this exception to <code>System.err</code>. -   *  -   * @see java.lang.Throwable#printStackTrace() -   */ -  public void printStackTrace()  -  { -    printStackTrace(System.err); -  } - -  /** -   * Print a stack trace of this exception, including the wrapped exception. -   *  -   * @param s The stream to write the stack trace to. -   *  -   * @see java.lang.Throwable#printStackTrace(java.io.PrintStream) -   */ -  public void printStackTrace(PrintStream s)  -  { -    super.printStackTrace(s); -    if (wrapped_ != null)  -    { -      s.print("Caused by: "); -      wrapped_.printStackTrace(s); -    } -  } - -  /** -   * Print a stack trace of this exception, including the wrapped exception. -   *  -   * @param s The stream to write the stacktrace to. -   *  -   * @see java.lang.Throwable#printStackTrace(java.io.PrintWriter) -   */ -  public void printStackTrace(PrintWriter s) { -    super.printStackTrace(s); -    if (wrapped_ != null)  -    { -      s.print("Caused by: "); -      wrapped_.printStackTrace(s); -    } -  } - -  /** -   * Print a stack trace of this exception, including the wrapped exception. -   *  -   * @param s The stream to write the stacktrace to. -   *  -   * @see java.lang.Throwable#printStackTrace(java.io.PrintWriter) -   */ -  public String getStackTracePrint()  -  { -    ByteArrayOutputStream bAOS = new ByteArrayOutputStream(); -    PrintWriter s = new PrintWriter(bAOS); -    super.printStackTrace(s); -    if (wrapped_ != null)  -    { -      s.print("Caused by: "); -      wrapped_.printStackTrace(s); -    } -    s.flush(); -    return bAOS.toString(); -  } -} diff --git a/erecht.client.ss/src/at/gv/egovernment/moa/ss/erechtclient/init/Constants.java b/erecht.client.ss/src/at/gv/egovernment/moa/ss/erechtclient/init/Constants.java deleted file mode 100644 index a9cfdac62..000000000 --- a/erecht.client.ss/src/at/gv/egovernment/moa/ss/erechtclient/init/Constants.java +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Created on 18.11.2003 - * - * (c) Stabsstelle IKT-Strategie des Bundes - */ -package at.gv.egovernment.moa.ss.erechtclient.init; - -/** - * @author Gregor Karlinger (mailto:gregor.karlinger@cio.gv.at)  - */ -public class Constants -{ -  // System properties -  public static final String INIT_PROPS_LOC_ =  -    "at.gv.egovernment.moa.ss.erechtclient.PropertiesLocation"; -   -  // Init properties - -  // TODO Revisit if constants can be removed -  public static final String IP_WEBAPP_HOST_PORT_ = "location.webAppHostPort"; -  public static final String IP_WEBAPP_HOST_PORT_FROM_MOA_SS_ = "location.webAppHostPortFromMOASS"; -   -  public static final String IP_MOA_SCHEMA_ = "location.schema.moa"; -  public static final String IP_SS_REQUEST_TEMPLATE_ = "location.ss.requestTemplate"; - -  public static final String IP_TEMP_DIR_ = "location.tempdir"; -  public static final String IP_SS_STYLESHEET_ = "location.ss.stylesheet"; -   -  public static final String IP_SS_ENDPOINT_ = "service.ss.endpoint"; -  public static final String IP_SS_KEYID_ = "service.ss.keyIdentifier"; - -  // Logging hierarchies -   -  public static final String LH_BASE_ = "erechtclient"; -  public static final String LH_INIT_ = LH_BASE_ + ".init"; -  public static final String LH_XMLPARSER_ = LH_BASE_ + ".xmlparser"; -  public static final String LH_SERVLETS_ = LH_BASE_ + ".servlets"; -  public static final String LH_BEANS_ = LH_BASE_ + ".beans"; -  public static final String LH_MOAINVOKER_ = LH_BASE_ + ".moainvoker"; -   -  // Web service context parameters -   -  public static final String WSCP_INIT_PROPS_ = "initProperties"; -  public static final String WSCP_INITPROPS_BEAN_ = "initPropertiesBean"; -  public static final String WSCP_XMLPARSER_ = "xmlParser"; -   -  // Session parameters -   -  public static final String SCP_XMLBGBL_FNAME_ = "xMLBGBl"; -  public static final String SCP_STYLESHEET_FNAME_ = "stylesheet"; -  public static final String SCP_IMAGE_NAMES_LIST_ = "imageNames"; -  public static final String SCP_IMAGES_LIST_ = "images"; -  public static final String SCP_SIGNATURE_URL_ = "signatureURL"; -   -  // Reqeust context parameters -  -  public static final String RCP_ERROR_THROWABLE_ = "throwable"; -   -  // Namespace URIs -   -  public static final String NSURI_MOA_13_ = "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"; -  public static final String NSURI_DSIG_ = "http://www.w3.org/2000/09/xmldsig#"; -  public static final String NSURI_XMLBGBL_ = "http://www.bka.gv.at"; -   -  // Namespace prefixes -   -  public static final String NSPRE_MOA_13_ = "moa"; -  public static final String NSPRE_DSIG_ = "dsig"; -  public static final String NSPRE_XMLBGBL_ = "bka"; -   -  // Local XML element's names -   -  public static final String XML_LN_XMLBGBL_ROOT_ = "erechtdok"; -  public static final String XML_LN_XMLBGBL_IMG_ = "binary"; -  public static final String XML_LN_XMLBGBL_IMG_SRC_ = "src"; -  public static final String XML_LN_XMLBGBL_IMG_REF_ = "ref"; -   -  // MOA invoker constants -   -  public static final String MI_SS_QNAME_ = "SignatureCreation"; -   -  // Default values -   -  public static final String DV_WEBAPP_HOST_PATH_ = "http://localhost:8080"; - -  // HTML form parameter names -   -  public static final String FPN_UPLOAD_XML_XMLBGBL_ = "xMLBGBl"; -  public static final String FPN_UPLOAD_STYLESHEET_ = "stylesheet"; -  public static final String FPN_UPLOAD_IMG_IMG_ = "image."; -   -  // JSP page names -   -  public static final String JSPPN_ERROR_ = "pages/Error.jsp"; -  public static final String JSPPN_UPLOAD_XML_ = "pages/UploadXML.jsp"; -  public static final String JSPPN_UPLOAD_IMG_ = "pages/UploadImages.jsp"; -  public static final String JSPPN_DOWNLOAD_SIG_ = "pages/DownloadSignature.jsp"; -   -  // Servlet url names -  public static final String SRVN_UPLOAD_XML_ = "/UploadXML"; -  public static final String SRVN_UPLOAD_IMG_ = "/UploadImages"; -} diff --git a/erecht.client.ss/src/at/gv/egovernment/moa/ss/erechtclient/init/ContextListener.java b/erecht.client.ss/src/at/gv/egovernment/moa/ss/erechtclient/init/ContextListener.java deleted file mode 100644 index 6cc5988ac..000000000 --- a/erecht.client.ss/src/at/gv/egovernment/moa/ss/erechtclient/init/ContextListener.java +++ /dev/null @@ -1,187 +0,0 @@ -/* - * (c) Siemens Business Services GmbH - */ -package at.gv.egovernment.moa.ss.erechtclient.init; - -import java.io.FileInputStream; -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; - -/** - * @author Gregor Karlinger (mailto:gregor.karlinger@siemens.com) - */ -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"; -  protected static final String XERCES_AUGMENT_PSI_ = -	"http://apache.org/xml/features/validation/schema/augment-psvi"; -	   -  private static final int BIG_PRIME = 2039; - -  private static Logger logger_ = Logger.getLogger(Constants.LH_INIT_); - -  /* ---------------------------------------------------------------------------------------------------- */ - -  /** -   * 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.INIT_PROPS_LOC_); -    if (initPropsLoc == null) -    { -      logger_.fatal("System property \"" + Constants.INIT_PROPS_LOC_ + "\" not set."); -      logger_.fatal("Web application initialization failed."); -      return; -    } -     -    // Load init properties -    try -    { -      logger_.debug("Init properties location \"" + initPropsLoc + "\" will be used."); -       -      // Try to interpret init properties location as relative to the web application root -      InputStream initPropsIS = context.getResourceAsStream(initPropsLoc); -       -      if (initPropsIS == null) -      { -        // If this does not work, try to interpret init properties location as an absolute file system path -        initPropsIS = new FileInputStream(initPropsLoc); -      } -       -      Properties initProps = new Properties(); -      initProps.load(initPropsIS); -      context.setAttribute(Constants.WSCP_INIT_PROPS_, initProps); - -      // Prepare application bean knowing about init properties -      InitPropertiesBean initPropsBean = new InitPropertiesBean(initProps); -      context.setAttribute(Constants.WSCP_INITPROPS_BEAN_, initPropsBean); -    } -    catch (IOException e) -    { -      logger_.fatal("Cannot load initialization properties from location \"" + initPropsLoc + "\".", e); -      logger_.fatal("Web application initialization failed."); -      return; -    } -     -    // 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); - -    // Schema for MOA 1.3 -    // TODO Maybe remove this? -    Properties initProps = (Properties) context.getAttribute(Constants.WSCP_INIT_PROPS_); -    String moaSchemaLoc = initProps.getProperty(Constants.IP_MOA_SCHEMA_); -    if (!preparseSchema(context, preparser, moaSchemaLoc))  -    { -      logger_.fatal("Web application initialization failed."); -      return; -    } -     -    // TODO parser is not threadsafe -    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_, true); -      xmlParser.setFeature(XERCES_AUGMENT_PSI_, false);  -      xmlParser.setErrorHandler(new XMLParserErrorHandler(false, true, true)); -    } -    catch (SAXException e) -    { -      String message = "Initialization of XML parser failed."; -      logger_.fatal(message, e); -      logger_.fatal("Web application initialization failed."); -      return; -    } -    context.setAttribute(Constants.WSCP_XMLPARSER_, xmlParser); -     -    String message = "Web application initialization succeeded."; -    logger_.info(message); -  } - -  /* ---------------------------------------------------------------------------------------------------- */ - -  /** -   * 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 boolean preparseSchema(ServletContext context, XMLGrammarPreparser preparser, String schemaLoc)  -  { -    InputStream schemaIS = context.getResourceAsStream(schemaLoc); -    if (schemaIS == null) -    { -      String message = "Cannot load schema from location \"" + schemaLoc + "\"."; -      logger_.fatal(message); -      return false; -    } -    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_.fatal(message, e); -      return false; -    } -    return true; -  } -} diff --git a/erecht.client.ss/src/at/gv/egovernment/moa/ss/erechtclient/init/InitPropertiesBean.java b/erecht.client.ss/src/at/gv/egovernment/moa/ss/erechtclient/init/InitPropertiesBean.java deleted file mode 100644 index 7b7e1eb11..000000000 --- a/erecht.client.ss/src/at/gv/egovernment/moa/ss/erechtclient/init/InitPropertiesBean.java +++ /dev/null @@ -1,33 +0,0 @@ -package at.gv.egovernment.moa.ss.erechtclient.init; - -import java.util.Properties; - -import org.apache.log4j.Logger; - -/** - * @author Gregor Karlinger (mailto:gregor.karlinger@siemens.com)  - */ -public class InitPropertiesBean  -{ -  private Properties initProps_; -   -  private static Logger logger_ = Logger.getLogger(Constants.LH_BEANS_); -   -  public InitPropertiesBean(Properties props) -  { -    initProps_ = props; -  } -   -  public String getWebAppHostPort() -  { -    String webAppHostPort = initProps_.getProperty(Constants.IP_WEBAPP_HOST_PORT_); -    logger_.debug("MOA SS E-Recht Client web application host/port: " + webAppHostPort); -    if (webAppHostPort == null || webAppHostPort.trim().length() == 0) -    { -      String defaultWebAppHostPath = Constants.DV_WEBAPP_HOST_PATH_; -      logger_.info("MOA SS E-Recht Client web application host/port property not available, using default (" + defaultWebAppHostPath + ")"); -      return defaultWebAppHostPath; -    } -    else return webAppHostPort; -  } -} diff --git a/erecht.client.ss/src/at/gv/egovernment/moa/ss/erechtclient/init/XMLParserErrorHandler.java b/erecht.client.ss/src/at/gv/egovernment/moa/ss/erechtclient/init/XMLParserErrorHandler.java deleted file mode 100644 index a954d35d9..000000000 --- a/erecht.client.ss/src/at/gv/egovernment/moa/ss/erechtclient/init/XMLParserErrorHandler.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Created on 02.12.2003 - * - * (c) Stabsstelle IKT-Strategie des Bundes - */ -package at.gv.egovernment.moa.ss.erechtclient.init; - -import org.apache.log4j.Logger; -import org.xml.sax.ErrorHandler; -import org.xml.sax.SAXException; -import org.xml.sax.SAXParseException; - -import at.gv.egovernment.moa.ss.erechtclient.init.Constants; - -/** - * @author Gregor Karlinger (mailto:gregor.karlinger@cio.gv.at)  - */ -public class XMLParserErrorHandler implements ErrorHandler -{ -  private static Logger logger_ = Logger.getLogger(Constants.LH_XMLPARSER_); - -  private boolean reportWarning_, reportError_, reportFatal_; - -  /* ---------------------------------------------------------------------------------------------------- */ - -  public XMLParserErrorHandler(boolean reportWarning, boolean reportError, boolean reportFatal) -  { -    reportWarning_ = reportWarning; -    reportError_ = reportError; -    reportFatal_ = reportFatal; -  } - -  /* ---------------------------------------------------------------------------------------------------- */ - -  /** -   * @see org.xml.sax.ErrorHandler#warning(org.xml.sax.SAXParseException) -   */ -  public void warning(SAXParseException exception) throws SAXException -  { -    logger_.warn("XML parser reported a warning.", exception); -    if (reportWarning_) throw exception; -  } - -  /* ---------------------------------------------------------------------------------------------------- */ - -  /** -   * @see org.xml.sax.ErrorHandler#error(org.xml.sax.SAXParseException) -   */ -  public void error(SAXParseException exception) throws SAXException -  { -    logger_.error("XML parser reported an error.", exception); -    if (reportError_) throw exception; -  } - -  /* ---------------------------------------------------------------------------------------------------- */ - -  /** -   * @see org.xml.sax.ErrorHandler#fatalError(org.xml.sax.SAXParseException) -   */ -  public void fatalError(SAXParseException exception) throws SAXException -  { -    logger_.error("XML parser reported a fatal error.", exception); -    if (reportFatal_) throw exception; -  } -} diff --git a/erecht.client.ss/src/at/gv/egovernment/moa/ss/erechtclient/moainvoker/DOMErrorHandler.java b/erecht.client.ss/src/at/gv/egovernment/moa/ss/erechtclient/moainvoker/DOMErrorHandler.java deleted file mode 100644 index 47b389c31..000000000 --- a/erecht.client.ss/src/at/gv/egovernment/moa/ss/erechtclient/moainvoker/DOMErrorHandler.java +++ /dev/null @@ -1,55 +0,0 @@ -package at.gv.egovernment.moa.ss.erechtclient.moainvoker; - -import java.util.Iterator; -import java.util.LinkedList; - -import org.apache.log4j.Logger; -import org.w3c.dom.DOMError; - -import at.gv.egovernment.moa.ss.erechtclient.init.Constants; - -public class DOMErrorHandler implements org.w3c.dom.DOMErrorHandler -{ -  private LinkedList errors_; - -  private static Logger logger_ = Logger.getLogger(Constants.LH_MOAINVOKER_); - -  public DOMErrorHandler() -  { -    errors_ = new LinkedList(); -  } -  public boolean handleError(DOMError error)  -  { -    if (error.getSeverity() == DOMError.SEVERITY_WARNING) -    { -      logger_.warn("A warning occured while parsing: " + error.getMessage()); -      return true; -    } -    else -    { -      logger_.error("A (fatal) error occured while parsing: " + error.getMessage()); -      errors_.add(error.getMessage()); -      return false; -    } -  } -   -  public int getErrorCount() -  { -    return errors_.size(); -  } -   -  public String getErrorSummaryMsg() -  { -    if (errors_.size() <= 0) return null; -     -    StringBuffer errorSummaryMsg = new StringBuffer(); -    errorSummaryMsg.append("The following errors have been reported during parsing:\n"); -    for (int i = 0; i < errors_.size(); i++) -    { -      errorSummaryMsg.append("Error no. " + i + ":\n"); -      errorSummaryMsg.append(errors_.get(i) + "\n"); -    } -    return errorSummaryMsg.toString(); -  } - -} diff --git a/erecht.client.ss/src/at/gv/egovernment/moa/ss/erechtclient/moainvoker/MOAInvoker.java b/erecht.client.ss/src/at/gv/egovernment/moa/ss/erechtclient/moainvoker/MOAInvoker.java deleted file mode 100644 index 65cb55c04..000000000 --- a/erecht.client.ss/src/at/gv/egovernment/moa/ss/erechtclient/moainvoker/MOAInvoker.java +++ /dev/null @@ -1,157 +0,0 @@ -/* - * Created on 19.11.2003 - * - * (c) Stabsstelle IKT-Strategie des Bundes - */ -package at.gv.egovernment.moa.ss.erechtclient.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.log4j.Logger; -import org.apache.xerces.parsers.DOMParser; -import org.apache.xerces.xni.parser.XMLInputSource; -import org.apache.xml.serialize.OutputFormat; -import org.apache.xml.serialize.XMLSerializer; -import org.w3c.dom.DOMConfiguration; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - -import at.gv.egovernment.moa.ss.erechtclient.ERechtClientException; -import at.gv.egovernment.moa.ss.erechtclient.init.Constants; -import at.gv.egovernment.moa.ss.erechtclient.util.DOMUtils; - -/** - * @author Gregor Karlinger (mailto:gregor.karlinger@cio.gv.at)  - */ -public class MOAInvoker -{ -  private static Logger logger_ = Logger.getLogger(Constants.LH_MOAINVOKER_); - -  private static final String NAME_ERROR_ = "ErrorResponse"; -  private static final String NAME_ERROR_CODE_ = "ErrorCode"; -  private static final String NAME_ERROR_INFO_ = "Info"; - -  /** -   * Invokes MOA SS. -   *  -   * @param request The XML request to be sent to MOA SS. -   *  -   * @param endpoint The endpoint of the SOAP service where to send the XML request to.  -   *  -   * @param mOASchemaLoc The schema location URI for the MOA schema (for validating the MOA SS service response). -   *  -   * @return the XML response from the service. -   *  -   * @throws Exception if getting the XML response from the SOAP response body fails. -   *  -   * @throws RemoteException if MOA SS signals an error. -   *  -   * @throws ServiceException if the SOAP client invoking MOA SS signals an error. -   */ -  public static Document invokeSS(Document request, String endpoint, String mOASchemaLoc) throws ERechtClientException -  { -    QName serviceQName = new QName(Constants.MI_SS_QNAME_); -    return invoke(request, endpoint, serviceQName, mOASchemaLoc); -  } -  -  /* ---------------------------------------------------------------------------------------------------- */ - -  private static Document invoke(Document request, String endpoint, QName serviceQName, String mOASchemaLoc) throws ERechtClientException -  { -    Document response; -    try { -      // 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); -      response = responseBody.getAsDocument(); -    }  -    catch (Exception e)  -    { -      String message = "MOA SS Service invocation failed."; -      logger_.error(message, e); -      throw new ERechtClientException(message, e); -    } - -    // Validate response -    DOMConfiguration docConfig = response.getDomConfig(); -    DOMErrorHandler errorHandler = new DOMErrorHandler(); -    docConfig.setParameter("namespaces", Boolean.FALSE); -    docConfig.setParameter("schema-location", mOASchemaLoc); -    docConfig.setParameter("schema-type", "http://www.w3.org/2001/XMLSchema"); -    docConfig.setParameter("validate", Boolean.TRUE); -    docConfig.setParameter("error-handler", errorHandler); -    response.normalizeDocument(); -    if (errorHandler.getErrorCount() > 0) -    { -      String message = "Parsing the MOA SS service response failed:\n" + errorHandler.getErrorSummaryMsg(); -      logger_.error(message); -      throw new ERechtClientException(message); -    } -     -    // Check if first child of response root element is an error element -    Element responseElem = response.getDocumentElement(); -    Element errorElem = DOMUtils.getChildElem(responseElem, Constants.NSURI_MOA_13_, NAME_ERROR_); -    if (errorElem != null) -    { -      String errorCode = DOMUtils.getChildText(errorElem, Constants.NSURI_MOA_13_, NAME_ERROR_CODE_); -      String errorInfo = DOMUtils.getChildText(errorElem, Constants.NSURI_MOA_13_, NAME_ERROR_INFO_); -      String message = "MOA SS Service indicated an error:\n" + -        "Error code: " + errorCode + "\n" + -        "Error info: " + errorInfo; -      logger_.error(message); -      throw new ERechtClientException(message); -    } -     -    return response; -  } -  -  /* ---------------------------------------------------------------------------------------------------- */ - -  public static void serializeElement(Element rootElem, OutputStream out) throws ERechtClientException -  { -     -    // TODO Replace with DOMImplementationLS -    OutputFormat format = new OutputFormat(rootElem.getOwnerDocument());  - -    format.setLineSeparator("\n"); -    format.setIndenting(false); -    format.setPreserveSpace(true); -    format.setOmitXMLDeclaration(false); -    format.setEncoding("UTF-8"); -   -    XMLSerializer serializer = new XMLSerializer(out, format); -    try  -    { -      serializer.serialize(rootElem); -    }  -    catch (Exception e)  -    { -      String message = "Serializing the XML document failed."; -      logger_.error(message); -      throw new ERechtClientException(message);     -    } -  } -} diff --git a/erecht.client.ss/src/at/gv/egovernment/moa/ss/erechtclient/moainvoker/RequestBuilder.java b/erecht.client.ss/src/at/gv/egovernment/moa/ss/erechtclient/moainvoker/RequestBuilder.java deleted file mode 100644 index 2c6e0d0e8..000000000 --- a/erecht.client.ss/src/at/gv/egovernment/moa/ss/erechtclient/moainvoker/RequestBuilder.java +++ /dev/null @@ -1,190 +0,0 @@ -package at.gv.egovernment.moa.ss.erechtclient.moainvoker; - -import java.io.InputStream; -import java.util.Properties; - -import javax.servlet.ServletContext; - -import org.apache.log4j.Logger; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NodeList; - -import at.gv.egovernment.moa.ss.erechtclient.ERechtClientException; -import at.gv.egovernment.moa.ss.erechtclient.init.Constants; -import at.gv.egovernment.moa.ss.erechtclient.util.DOMUtils; -import at.gv.egovernment.moa.ss.erechtclient.util.Utils; -import at.gv.egovernment.moa.ss.erechtclient.util.XPathUtils; - -public class RequestBuilder  -{ -  private static final String XPATH_KEYID_ =  -    "/" + Constants.NSPRE_MOA_13_ + ":" + "CreateXMLSignatureRequest" +  -    "/" + Constants.NSPRE_MOA_13_ + ":" + "KeyIdentifier"; - -  private static final String XPATH_XMLDOC_ =  -    "/" + Constants.NSPRE_MOA_13_ + ":" + "CreateXMLSignatureRequest" +  -    "/" + Constants.NSPRE_MOA_13_ + ":" + "SingleSignatureInfo" + -    "/" + Constants.NSPRE_MOA_13_ + ":" + "DataObjectInfo" + -    "/" + Constants.NSPRE_MOA_13_ + ":" + "DataObject" + -    "/" + Constants.NSPRE_MOA_13_ + ":" + "LocRefContent"; -     -  private static final String XPATH_STYLESHEET_ =  -    "/" + Constants.NSPRE_MOA_13_ + ":" + "CreateXMLSignatureRequest" +  -    "/" + Constants.NSPRE_MOA_13_ + ":" + "SingleSignatureInfo" + -    "/" + Constants.NSPRE_MOA_13_ + ":" + "DataObjectInfo" + -    "/" + Constants.NSPRE_MOA_13_ + ":" + "CreateTransformsInfoProfile" + -    "/" + Constants.NSPRE_MOA_13_ + ":" + "Supplement" + -    "/" + Constants.NSPRE_MOA_13_ + ":" + "Content" + "[@Reference=\"stylesheet.xsl\"]" + -    "/" + Constants.NSPRE_MOA_13_ + ":" + "LocRefContent"; - -  private static final String XPATH_IMAGE_ =  -    "/" + Constants.NSPRE_MOA_13_ + ":" + "CreateXMLSignatureRequest" +  -    "/" + Constants.NSPRE_MOA_13_ + ":" + "SingleSignatureInfo"; -   -  private static final String ELEM_NAME_DOI_ = "DataObjectInfo"; - -  private static final String ATTR_VALUE_DO_STRUCTURE_ = "detached"; - -  private static final String ELEM_NAME_DO_ = "DataObject"; - -  private static final String ATTR_NAME_DOI_STRUCTURE_ = "Structure"; - -  private static final String ATTR_NAME_DO_REFERENCE_ = "Reference"; - -  private static final String ELEM_NAME_CTIP_ = "CreateTransformsInfoProfile"; - -  private static final String ELEM_NAME_CTI_ = "CreateTransformsInfo"; - -  private static final String ELEM_NAME_FDMI_ = "FinalDataMetaInfo"; - -  private static final String ELEM_NAME_FDMIMIMETYPE_ = "MimeType"; - -  private static final String ELEM_VALUE_FDMIMIMETYPE_ = "image"; - -  private static final String ELEM_NAME_FDMITYPE_ = "Type"; - -  private static final String ELEM_VALUE_FDMITYPE_ = "http://www.buergerkarte.at/specifications/" +  -    "Security-Layer/20031113?Name=SignedImage&InstanceDocRef=0"; - -  private static final String ELEM_NAME_LOCREF_ = "LocRefContent"; -   -  private Document requestDoc_; -   -  private String contextPath_; -   -  private Properties initProps_; -   -  private ServletContext context_; - -  private static Logger logger_ = Logger.getLogger(Constants.LH_MOAINVOKER_); - -  public RequestBuilder(ServletContext context, String contextPath) throws ERechtClientException -  { -    contextPath_ = contextPath; -    context_ = context; -    initProps_ = (Properties) context.getAttribute(Constants.WSCP_INIT_PROPS_); -        -     // Load template -    String requestTemplateLocation = Utils.readInitProperty(initProps_, Constants.IP_SS_REQUEST_TEMPLATE_, logger_); -    try  -    { -      InputStream requestTemplateIS = context_.getResourceAsStream(requestTemplateLocation); -      requestDoc_ = DOMUtils.parseWellFormed(requestTemplateIS); -    } catch (Exception e)  -    { -      String message = "Could not parse MOA SS signature creation request template."; -      logger_.error(message, e); -      throw new ERechtClientException(message, e); -    } -      -    // Insert key identifier -    Element keyIdentifierElem = xPathGetElement(XPATH_KEYID_, requestDoc_); -    String keyIdentifierStr = Utils.readInitProperty(initProps_, Constants.IP_SS_KEYID_, logger_); -    keyIdentifierElem.appendChild(requestDoc_.createTextNode(keyIdentifierStr)); -  } -    -  public void setXMLDocument(String locationRef) throws ERechtClientException -  { -    // Set XML document location reference -    Element xMLDocLocRefElem = xPathGetElement(XPATH_XMLDOC_, requestDoc_); -    String webAppHostPortFromMOASS = Utils.readInitProperty(initProps_, Constants.IP_WEBAPP_HOST_PORT_FROM_MOA_SS_, logger_); -    xMLDocLocRefElem.appendChild(requestDoc_.createTextNode(webAppHostPortFromMOASS + contextPath_ + locationRef)); -  } - -  public void setStylesheet(String locationRef) throws ERechtClientException -  { -    Element stylesheetLocRefElem = xPathGetElement(XPATH_STYLESHEET_, requestDoc_); -    String webAppHostPortFromMOASS = Utils.readInitProperty(initProps_, Constants.IP_WEBAPP_HOST_PORT_FROM_MOA_SS_, logger_); -    String stylesheetLocRefStr = webAppHostPortFromMOASS + contextPath_ + locationRef; -    stylesheetLocRefElem.appendChild(requestDoc_.createTextNode(webAppHostPortFromMOASS + contextPath_ + locationRef)); -    logger_.debug("Setting stylesheet location to: " + stylesheetLocRefStr); -  } -   -  public void useDefaultStylesheet() throws ERechtClientException -  { -    // Insert stylesheet reference, if it has not been set explicitly -    Element stylesheetLocRefElem = xPathGetElement(XPATH_STYLESHEET_, requestDoc_); -    String stylesheetLocRefStr = Utils.readInitProperty(initProps_, Constants.IP_SS_STYLESHEET_, logger_); -    String webAppHostPortFromMOASS = Utils.readInitProperty(initProps_, Constants.IP_WEBAPP_HOST_PORT_FROM_MOA_SS_, logger_); -    stylesheetLocRefStr = webAppHostPortFromMOASS + contextPath_ + stylesheetLocRefStr; -    stylesheetLocRefElem.appendChild(requestDoc_.createTextNode(stylesheetLocRefStr)); -    logger_.debug("No stylesheet set explicitly, using default one: " + stylesheetLocRefStr); -  } - -  public void addImage(String name, String locationRef) throws ERechtClientException -  { -    // Add supplement for image to be signed -    Element parentElem = xPathGetElement(XPATH_IMAGE_, requestDoc_); -    String webAppHostPortFromMOASS = Utils.readInitProperty(initProps_, Constants.IP_WEBAPP_HOST_PORT_FROM_MOA_SS_, logger_); -     -    Element dataObjInfo = requestDoc_.createElementNS(Constants.NSURI_MOA_13_, ELEM_NAME_DOI_); -    dataObjInfo.setAttributeNS(null, ATTR_NAME_DOI_STRUCTURE_, ATTR_VALUE_DO_STRUCTURE_); -    Element dataObj = requestDoc_.createElementNS(Constants.NSURI_MOA_13_, ELEM_NAME_DO_); -    Element locRefCont = requestDoc_.createElementNS(Constants.NSURI_MOA_13_, ELEM_NAME_LOCREF_); -    locRefCont.appendChild(requestDoc_.createTextNode(webAppHostPortFromMOASS + contextPath_ + locationRef)); -    dataObj.appendChild(locRefCont); -    dataObj.setAttributeNS(null, ATTR_NAME_DO_REFERENCE_, name); -    dataObjInfo.appendChild(dataObj); -    Element createTIProf = requestDoc_.createElementNS(Constants.NSURI_MOA_13_, ELEM_NAME_CTIP_); -    Element createTI = requestDoc_.createElementNS(Constants.NSURI_MOA_13_, ELEM_NAME_CTI_); -    Element finalDataMI = requestDoc_.createElementNS(Constants.NSURI_MOA_13_, ELEM_NAME_FDMI_); -    Element finalDataMIMimeType = requestDoc_.createElementNS(Constants.NSURI_MOA_13_, ELEM_NAME_FDMIMIMETYPE_); -    finalDataMIMimeType.appendChild(requestDoc_.createTextNode(ELEM_VALUE_FDMIMIMETYPE_)); -    finalDataMI.appendChild(finalDataMIMimeType); -    Element finalDataMIType = requestDoc_.createElementNS(Constants.NSURI_MOA_13_, ELEM_NAME_FDMITYPE_); -    finalDataMIType.appendChild(requestDoc_.createTextNode(ELEM_VALUE_FDMITYPE_)); -    finalDataMI.appendChild(finalDataMIType); - -    createTI.appendChild(finalDataMI); -    createTIProf.appendChild(createTI); -    dataObjInfo.appendChild(createTIProf); -     -    parentElem.appendChild(dataObjInfo); -  } -    -  public Document getRequest() -  { -    return requestDoc_; -  } -    -  private Element xPathGetElement(String xPath, Document doc) throws ERechtClientException -  { -    try { -     XPathUtils xpUtils = new XPathUtils(); -      String additionalNSPrefixes = Constants.NSPRE_MOA_13_ + " " + Constants.NSURI_MOA_13_; -      xpUtils.setupContext(xPath, doc.getDocumentElement(), additionalNSPrefixes); -      NodeList nodeList = xpUtils.selectNodeSet(doc); -      if (nodeList == null) return null; -      if (nodeList.getLength() < 1) return null; -      if (!(nodeList.item(0) instanceof Element)) return null; -      return (Element) nodeList.item(0); -    }  -    catch (Exception e)  -    { -      String message = "MOA SS signature request template seems to be corrupted."; -      logger_.error(message, e); -      throw new ERechtClientException(message, e); -    } -  } -}
\ No newline at end of file diff --git a/erecht.client.ss/src/at/gv/egovernment/moa/ss/erechtclient/servlets/Dispatcher.java b/erecht.client.ss/src/at/gv/egovernment/moa/ss/erechtclient/servlets/Dispatcher.java deleted file mode 100644 index 23c4dbb53..000000000 --- a/erecht.client.ss/src/at/gv/egovernment/moa/ss/erechtclient/servlets/Dispatcher.java +++ /dev/null @@ -1,428 +0,0 @@ -/* - * Created on 25.11.2003 - * - * (c) Stabsstelle IKT-Strategie des Bundes - */ -package at.gv.egovernment.moa.ss.erechtclient.servlets; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.Hashtable; -import java.util.Iterator; -import java.util.List; -import java.util.Properties; - -import javax.servlet.RequestDispatcher; -import javax.servlet.ServletContext; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; - -import org.apache.commons.fileupload.FileItem; -import org.apache.commons.fileupload.FileItemFactory; -import org.apache.commons.fileupload.FileUploadException; -import org.apache.commons.fileupload.disk.DiskFileItemFactory; -import org.apache.commons.fileupload.servlet.ServletFileUpload; -import org.apache.log4j.Logger; -import org.w3c.dom.Attr; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NodeList; - -import at.gv.egovernment.moa.ss.erechtclient.ERechtClientException; -import at.gv.egovernment.moa.ss.erechtclient.init.Constants; -import at.gv.egovernment.moa.ss.erechtclient.moainvoker.MOAInvoker; -import at.gv.egovernment.moa.ss.erechtclient.moainvoker.RequestBuilder; -import at.gv.egovernment.moa.ss.erechtclient.util.DOMUtils; -import at.gv.egovernment.moa.ss.erechtclient.util.Utils; -import at.gv.egovernment.moa.ss.erechtclient.util.XPathUtils; - -/** - * @author Gregor Karlinger (mailto:gregor.karlinger@cio.gv.at)  - */ -public class Dispatcher extends HttpServlet -{ -  private static Logger logger_ = Logger.getLogger(Constants.LH_SERVLETS_); -   -  private static final String XPATH_ALL_IMGS_ =  "//" + Constants.NSPRE_XMLBGBL_ + ":" + Constants.XML_LN_XMLBGBL_IMG_; -   -  private static final String FN_XMLBGBL_ = "xMLBGBl"; -  private static final String FN_STYLESHEET_ = "stylesheet"; -  private static final String FN_IMAGE_ = "image."; -  private static final String FN_XMLSIG_ = "signature"; - -  private static final String TS_XMLBGBL_ = "xml"; -  private static final String TS_STYLESHEET_ = "xsl"; -  private static final String TS_IMAGE_ = "img"; -  private static final String TS_XMLSIG_ = "xml"; -   -  private static final String LN_XMLSIG_ = "Signature"; -  private static final String LN_SIGENV_ = "SignatureEnvironment"; - -  public Dispatcher() -  { -    super(); -  } - -  /* ---------------------------------------------------------------------------------------------------- */ - -  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException -  { -    try { -      String screenName = request.getServletPath(); -      if (Constants.SRVN_UPLOAD_XML_.equals(screenName)) -      { -        // Invalidate session if one exist from a previous use of the web application -        HttpSession session = ((HttpServletRequest) request).getSession(false); -        if (session != null) session.invalidate(); -         -        RequestDispatcher dispatcher = request.getRequestDispatcher(Constants.JSPPN_UPLOAD_XML_); -        dispatcher.forward(request, response); -      } -      else -      { -        String message = "Unproper use of servlet \"" + screenName + "\". Please start with servlet \"" +  -          Constants.SRVN_UPLOAD_XML_ + "\"."; -        throw new ERechtClientException(message); -      } -    }  -    catch (Exception e) -    { -      Utils.returnErrorPage(request, response, e); -    } -     -  } -  /* ---------------------------------------------------------------------------------------------------- */ - -  public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException -  { -    try  -    { -      String screenName = request.getServletPath(); -      if (Constants.SRVN_UPLOAD_XML_.equals(screenName)) -      { -        // Evaluate uploaded XML BGBl -        HttpSession session = request.getSession(true); - -        // Read BGBl XML upload from POST request -        List params = parseParameters(request); -        FileItem xMLBGBlFI = getFileItem(Constants.FPN_UPLOAD_XML_XMLBGBL_, params); -        String xMLBGBlFileName = saveFileItem(xMLBGBlFI, FN_XMLBGBL_, TS_XMLBGBL_, session.getId(), this.getServletContext()); -        session.setAttribute(Constants.SCP_XMLBGBL_FNAME_, xMLBGBlFileName); -         -        // Read stylesheet upload from POST request -        FileItem stylesheetFI = getFileItem(Constants.FPN_UPLOAD_STYLESHEET_, params); -        if (stylesheetFI.getName() != null && !"".equals(stylesheetFI.getName().trim())) -        { -          // Stylesheet has been uploaded -          String stylesheetFileName = saveFileItem(stylesheetFI, FN_STYLESHEET_, TS_STYLESHEET_, session.getId(), this.getServletContext()); -          session.setAttribute(Constants.SCP_STYLESHEET_FNAME_, stylesheetFileName); -        } -         -        // Scan BGBl XML for potential images -        Document xMLBGBlDoc = parseXMLBGBlDocument(xMLBGBlFileName, this.getServletContext()); -        ArrayList imageNames = scanXMLBGBlForImages(xMLBGBlDoc);  -         -        if (!imageNames.isEmpty()) -        { -          // Images exist in the BGBl XML, therefore continue with image upload -          session.setAttribute(Constants.SCP_IMAGE_NAMES_LIST_, imageNames); -          RequestDispatcher dispatcher = request.getRequestDispatcher(Constants.JSPPN_UPLOAD_IMG_); -          dispatcher.forward(request, response); -          return; -        } -        else -        { -          // Indicate with empty List in session that there are no images available -          session.setAttribute(Constants.SCP_IMAGES_LIST_, new ArrayList(0)); -        } -      } -      else if (Constants.SRVN_UPLOAD_IMG_.equals(screenName)) -      { -        HttpSession session = ((HttpServletRequest) request).getSession(false); -        if (session == null)  -        { -          String message = "Could not read session object."; -          throw new ERechtClientException(message); -        } -         -        List images = parseImageParameters(request, this.getServletContext());  -        session.setAttribute(Constants.SCP_IMAGES_LIST_, images); -      } -      else -      { -        String message = "Unproper use of servlet \"" + screenName + "\". Please start with servlet \"" +  -        Constants.SRVN_UPLOAD_XML_ + "\"."; -        logger_.error(message); -        throw new ERechtClientException(message); -      } -       -      // Create and store signature  -      HttpSession session = request.getSession(false); -      Document signatureResponse = createXMLSignature(request, session); -      String signatureFileName = saveXMLSignature(signatureResponse, session.getId(), this.getServletContext()); -      Properties initProps = (Properties) this.getServletContext().getAttribute(Constants.WSCP_INIT_PROPS_); -      String webAppHostPortFromMOASS = Utils.readInitProperty(initProps, Constants.IP_WEBAPP_HOST_PORT_FROM_MOA_SS_, logger_); -      session.setAttribute(Constants.SCP_SIGNATURE_URL_, webAppHostPortFromMOASS + request.getContextPath() + signatureFileName); -       -      // Dispatch Download JSP page -      RequestDispatcher dispatcher = request.getRequestDispatcher(Constants.JSPPN_DOWNLOAD_SIG_); -      dispatcher.forward(request, response); -    }  -    catch (Exception e)  -    { -     Utils.returnErrorPage(request, response, e); -    } -  } - -  private Document createXMLSignature(HttpServletRequest request, HttpSession session) throws ERechtClientException  -  { -    RequestBuilder requestBuilder = new RequestBuilder(this.getServletContext(), request.getContextPath()); -    String xMLBGBlFileName = (String) session.getAttribute(Constants.SCP_XMLBGBL_FNAME_); -    if (xMLBGBlFileName == null) -    { -      String message = "Could not read XML BGBl file name from session."; -      logger_.error(message); -      throw new ERechtClientException(message); -    } -    requestBuilder.setXMLDocument(xMLBGBlFileName); - -    String stylesheetFileName = (String) session.getAttribute(Constants.SCP_STYLESHEET_FNAME_); -    if (stylesheetFileName != null) -    { -      requestBuilder.setStylesheet(stylesheetFileName); -    } -    else -    { -      requestBuilder.useDefaultStylesheet(); -    } - -    List images = (List) session.getAttribute(Constants.SCP_IMAGES_LIST_); -    if (images == null) -    { -      String message = "Could not read images from session."; -      logger_.error(message); -      throw new ERechtClientException(message); -    } -    Iterator imagesIt = images.iterator(); -    while (imagesIt.hasNext())  -    { -      Image currImg = (Image) imagesIt.next(); -      requestBuilder.addImage(currImg.name_, currImg.fileLocation_); -    } -    Document signatureRequest = requestBuilder.getRequest(); -    Properties initProps = (Properties) this.getServletContext().getAttribute(Constants.WSCP_INIT_PROPS_); -    String serviceEndpoint = Utils.readInitProperty(initProps, Constants.IP_SS_ENDPOINT_, logger_); -    String mOASchemaLoc = Utils.readInitProperty(initProps, Constants.IP_MOA_SCHEMA_, logger_); -    String webAppHostPort = Utils.readInitProperty(initProps, Constants.IP_WEBAPP_HOST_PORT_, logger_); -    Document signatureResponse = MOAInvoker.invokeSS(signatureRequest, serviceEndpoint,  -        "file:" + this.getServletContext().getRealPath(mOASchemaLoc)); -    return signatureResponse; -  } - -  private List parseImageParameters(HttpServletRequest request, ServletContext context) throws ERechtClientException -  { -    HttpSession session = request.getSession(false); -    if (session == null)  -    { -      String message = "Could not read session object."; -      throw new ERechtClientException(message); -    } -     -    ArrayList imageNames = (ArrayList) session.getAttribute(Constants.SCP_IMAGE_NAMES_LIST_); -    List params = parseParameters(request); -    ArrayList images = new ArrayList(imageNames.size()); -    for (int i = 0; i < params.size(); i++) -    { -      FileItem currItem = (FileItem) params.get(i); -      if (currItem.getFieldName().startsWith(Constants.FPN_UPLOAD_IMG_IMG_)) -      { -        if (currItem.getSize() <= 0)  -        { -          String message = "No content received for image \"" + currItem.getFieldName() + "\"."; -          logger_.error(message); -          throw new ERechtClientException(message); -        } -        String imgFileName = saveFileItem(currItem, FN_IMAGE_  + images.size(), TS_IMAGE_, session.getId(), context); -        images.add(new Image(currItem.getFieldName().substring(Constants.FPN_UPLOAD_IMG_IMG_.length()), imgFileName)); -      } -    } -     -    // Check if there is a file item for each image name -    if (imageNames.size() != images.size()) -    { -      String message = "No correct number of immages has been uploaded (Expected " +  -        imageNames.size() + ", actually received " + images.size() + ")."; -      logger_.error(message); -      throw new ERechtClientException(message); -    } -     -    return images; -  } - -  private Document parseXMLBGBlDocument(String docFileName, ServletContext context) throws ERechtClientException -  { -    // TODO Change to validating parsing? -    // DOMParser xmlParser = (DOMParser) context.getAttribute(Constants.WSCP_XMLPARSER_); -    // InputSource docInputSource = new InputSource(docIS); -    Document parsedDoc = null; -    try -    { -      // xmlParser.parse(docInputSource); -      FileInputStream docIS = new FileInputStream(context.getRealPath(docFileName)); -      parsedDoc = DOMUtils.parseWellFormed(docIS); - -    } -    catch (Exception e) -    { -      String message = "Parsing XML BGBl document failed."; -      logger_.error(message, e); -      throw new ERechtClientException(message, e); -    } -     -    Element docElem = parsedDoc.getDocumentElement(); -    if (docElem.getNamespaceURI() != Constants.NSURI_XMLBGBL_ || docElem.getLocalName() != Constants.XML_LN_XMLBGBL_ROOT_) -    { -      String message = "XML BGBl has wrong root element (Local name equals \"" + docElem.getLocalName() + "\", NS-URI equals \"" + docElem.getNamespaceURI() + "\")."; -      logger_.error(message); -      throw new ERechtClientException(message); -    } -     -    return parsedDoc; -  } -   -  private ArrayList scanXMLBGBlForImages(Document xMLBGBlDoc) throws ERechtClientException -  { -    // Get all bka:binary elements in XML BGBl document -    NodeList imgElems; -    try { -      XPathUtils xpUtils = new XPathUtils(); -      String additionalNSPrefixes = Constants.NSPRE_XMLBGBL_ + " " + Constants.NSURI_XMLBGBL_; -      xpUtils.setupContext(XPATH_ALL_IMGS_, xMLBGBlDoc.getDocumentElement(), additionalNSPrefixes); -      imgElems = xpUtils.selectNodeSet(xMLBGBlDoc); -    }  -    catch (Exception e)  -    { -      String message = "Scanning for image elements in XML BGBl failed."; -      logger_.error(message, e); -      throw new ERechtClientException(message, e); -    }   -     -    // Collect the file refs of all bka:binary elements (either in bka:binary/@ref or in bka:binary/bka:src) -    ArrayList list = new ArrayList(imgElems.getLength()); -    for (int i = 0; i < imgElems.getLength(); i++) -    { -      Element currElem = (Element) imgElems.item(i); -      Attr refAttr = currElem.getAttributeNodeNS(null, Constants.XML_LN_XMLBGBL_IMG_REF_); -      if (refAttr != null) -      { -        list.add(i, refAttr.getValue()); -      } -      else -      { -        list.add(DOMUtils.getChildText(currElem, Constants.NSURI_XMLBGBL_, Constants.XML_LN_XMLBGBL_IMG_SRC_)); -      } -    } -    return list; -  } - -  private List parseParameters(HttpServletRequest request) throws ERechtClientException -  { -   -    if (ServletFileUpload.isMultipartContent(request)) -    { -      // Request is encoded as multipart/form-data -      List items; -      try -      { -        FileItemFactory factory = new DiskFileItemFactory(); -        ServletFileUpload upload = null;; -        upload = new ServletFileUpload(factory); -        items = upload.parseRequest(request); -        return items; -      } -      catch (FileUploadException e) -      { -        String message = "Parsing HTML form parameter failed."; -        logger_.error(message, e); -        throw new ERechtClientException(message, e); -      } -    } -    else -    { -      // Request must be encoded als multipart/form-data -      throw new ERechtClientException("HTML form encoding is not mulitpart/form-data."); -    } -  } -   -  private FileItem getFileItem(String fileItemName, List fileItemParams) -  { -    Iterator iter = fileItemParams.iterator(); -    while (iter.hasNext()) -    { -      FileItem currentFI = (FileItem) iter.next(); -      if (currentFI.getFieldName().equals(fileItemName)) return currentFI;  -    } -    return null; -  } -   -  private String saveFileItem(FileItem fileItem, String name, String typeSuffix, String sessionId,  -    ServletContext context) throws ERechtClientException -  { -    Properties initProps = (Properties) this.getServletContext().getAttribute(Constants.WSCP_INIT_PROPS_); -    String tempDir = Utils.readInitProperty(initProps, Constants.IP_TEMP_DIR_, logger_); -    String fileName = tempDir + sessionId + "." + name + "." + typeSuffix; -    String realFileName = context.getRealPath(fileName); -    try { -      fileItem.write(new File(realFileName)); -    } catch (Exception e)  -    { -      String message = "Writing item \"" + name + "\" to file system failed."; -      logger_.error(message, e); -      throw new ERechtClientException(message, e); -    } -    return fileName; -  } -   -  private String saveXMLSignature(Document mOAResponse, String sessionId, ServletContext context)  -    throws ERechtClientException -  { -    Element sigEnvElem = DOMUtils.getChildElem(mOAResponse.getDocumentElement(), Constants.NSURI_MOA_13_, LN_SIGENV_); -    Element signatureElem = DOMUtils.getChildElem(sigEnvElem, Constants.NSURI_DSIG_, LN_XMLSIG_); -     -    Properties initProps = (Properties) this.getServletContext().getAttribute(Constants.WSCP_INIT_PROPS_); -    String tempDir = Utils.readInitProperty(initProps, Constants.IP_TEMP_DIR_, logger_); -    String fileName = tempDir + sessionId + "." + FN_XMLSIG_ + "." + TS_XMLSIG_; -    String realFileName = context.getRealPath(fileName); -    try { -      FileOutputStream fileOS = new FileOutputStream(realFileName); -      MOAInvoker.serializeElement(signatureElem, fileOS); -      fileOS.close(); -    } catch (Exception e)  -    { -      String message = "Writing xml signature to file system failed."; -      logger_.error(message, e); -      throw new ERechtClientException(message, e); -    } -    return fileName; -  } -   -  class Image -  { -    public String name_; -    public String fileLocation_; -     -    public Image(String name, String fileLocation) -    { -      name_ = name; -      fileLocation_ = fileLocation; -    } -  } -} diff --git a/erecht.client.ss/src/at/gv/egovernment/moa/ss/erechtclient/util/DOMUtils.java b/erecht.client.ss/src/at/gv/egovernment/moa/ss/erechtclient/util/DOMUtils.java deleted file mode 100644 index d82cf1d1b..000000000 --- a/erecht.client.ss/src/at/gv/egovernment/moa/ss/erechtclient/util/DOMUtils.java +++ /dev/null @@ -1,169 +0,0 @@ -/* - * Created on 28.11.2003 - * - * (c) Stabsstelle IKT-Strategie des Bundes - */ -package at.gv.egovernment.moa.ss.erechtclient.util; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; - -import org.apache.xerces.parsers.DOMParser; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; -import org.xml.sax.InputSource; -import org.xml.sax.SAXException; - -import at.gv.egovernment.moa.ss.erechtclient.init.XMLParserErrorHandler; - - -/** - * @author Gregor Karlinger (mailto:gregor.karlinger@cio.gv.at)  - */ -public class DOMUtils -{ -  private static final String SAX_NAMESPACES_FEATURE = "http://xml.org/sax/features/namespaces"; -  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"; - -  /* ---------------------------------------------------------------------------------------------------- */ -   -  /** -   * Gets the first text node of the specified element. -   *  -   * @param elem The element. -   * -   * @return the first text node of the specified element, or <code>null</code> if <code>element</code> -   *         equals <code>null</code>, or if the element has no text node. -   */ -  public static String getText(Element elem) -  { -    if (elem == null) return null; -    NodeList childNodes = elem.getChildNodes(); -    for (int i = 0; i < childNodes.getLength(); i++) -    { -      Node currNode = childNodes.item(i); -      if (currNode.getNodeType() == Node.TEXT_NODE) return currNode.getNodeValue(); -    } -    return null; -  } - -  /* ---------------------------------------------------------------------------------------------------- */ -   -  /** -   * Gets the first text node of the specified child element from the specified parent element. -   *  -   * @param parent The parent. -   *  -   * @param childNS The namespace of the child element. -   *  -   * @param childLocName The local name of the child element. -   *  -   * @return the first text node of the specified child, or <code>null</code> if <code>parent</code> equals -   *         <code>null</code> or has no child element with the specified namespace and local name, or if  -   *         the child element has no text node. -   */ -  public static String getChildText(Element parent, String childNS, String childLocName) -  { -    if (parent == null) return null; -    Element child = getChildElem(parent, childNS, childLocName); -    if (child == null) return null; -    return getText(child); -  } - -  /* ---------------------------------------------------------------------------------------------------- */ - -  /** -   * Gets the first child element of the specified parent with the specified namspace and local name. -   *  -   * @param parent The parent. -   *  -   * @param childNS The namespace of the child element to be searched for. -   *  -   * @param childLocName The local name of the child element to be searched for. -   *  -   * @return the first child element as described above, or <code>null</code> if <code>parent</code> is -   *         null or has no child elements with for the specified namespace and local name. -   */ -  public static Element getChildElem(Element parent, String childNS, String childLocName) -  { -    List childElems = getChildElems(parent, childNS, childLocName, true); -    return (childElems == null) ? null : (Element) childElems.get(0); -  } - -  /* ---------------------------------------------------------------------------------------------------- */ - -  /** -   * Gets all or the first child element(s) of the specified parent with the specified namspace and local  -   * name. -   *  -   * @param parent The parent. -   *  -   * @param childNS The namespace of the child elements to be searched for. -   *  -   * @param childLocName The local name of the child elements to be searched for. -   *  -   * @param firstOnly Specifies wheter only the first or all child elements with the specified namespace and -   *                  local name should be returned. -   *  -   * @return a <code>java.util.List</code> with objects of type <code>org.w3c.dom.Element</code>; each  -   *         element in the list represents a child element as specified above. If <code>parent</code>  -   *         equals <code>null</code>, or if there are no child elements as specified above, <code>null -   *         </code> will be returned. -   */ -  public static List getChildElems(Element parent, String childNS, String childLocName, boolean firstOnly) -  { -    if (parent == null) return null; - -    ArrayList childElems = new ArrayList(); -    NodeList childNodes = parent.getChildNodes(); -    for (int i = 0; i < childNodes.getLength(); i++) -    { -      Node currNode = childNodes.item(i); -      if (currNode.getNodeType() == Node.ELEMENT_NODE) -      { -        Element currElem = (Element) currNode; -        if (childNS.equals(currElem.getNamespaceURI()) && childLocName.equals(currElem.getLocalName())) -        { -          childElems.add(currElem); -          if (firstOnly) break; -        } -      } -    } -    return (childElems.size() == 0) ? null : childElems; -  } - -  /* ---------------------------------------------------------------------------------------------------- */ - -  public static Document parseWellFormed(InputStream is) throws Exception -  { -    DOMParser xmlParser = new DOMParser(); -    try -    { -      xmlParser.setFeature(SAX_NAMESPACES_FEATURE, true); -      xmlParser.setFeature(XERCES_CREATE_ENTITY_REF_NODES_FEATURE, false); -      xmlParser.setFeature(XERCES_DEFER_NODE_EXPANSION_, false); -      xmlParser.setErrorHandler(new XMLParserErrorHandler(false, true, true)); -    } -    catch (SAXException e) -    { -      String message = "Initialization of XML parser failed."; -      throw new Exception(message, e); -    } -    try -    { -      xmlParser.parse(new InputSource(is)); -      return xmlParser.getDocument(); -    } -    catch (Exception e) -    { -      String message = "Wellformed parsing failed."; -      throw new Exception(message, e); -    } -  } -} diff --git a/erecht.client.ss/src/at/gv/egovernment/moa/ss/erechtclient/util/Utils.java b/erecht.client.ss/src/at/gv/egovernment/moa/ss/erechtclient/util/Utils.java deleted file mode 100644 index 2f9e01057..000000000 --- a/erecht.client.ss/src/at/gv/egovernment/moa/ss/erechtclient/util/Utils.java +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Created on 25.11.2003 - * - * (c) Stabsstelle IKT-Strategie des Bundes - */ -package at.gv.egovernment.moa.ss.erechtclient.util; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.io.PrintWriter; -import java.util.Properties; - -import javax.servlet.RequestDispatcher; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.apache.log4j.Logger; - -import at.gv.egovernment.moa.ss.erechtclient.ERechtClientException; -import at.gv.egovernment.moa.ss.erechtclient.init.Constants; - -/** - * @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(); -  } -   -  /* ---------------------------------------------------------------------------------------------------- */ - -  public static void transferStreams(InputStream in, OutputStream out) throws IOException -  { -    byte[] currentBytes = new byte[500]; -    int bytesRead; -    do -    { -      bytesRead = in.read(currentBytes); -      if (bytesRead > 0) -      { -        out.write(currentBytes, 0, bytesRead); -      } -    } -    while (bytesRead != -1); -  } - -  /* ---------------------------------------------------------------------------------------------------- */ - -  public static void returnErrorPage(HttpServletRequest request, HttpServletResponse response, Throwable t) -    throws ServletException -  { -    Logger logger = Logger.getLogger(Constants.LH_SERVLETS_); - -    // Store Throwable in request context -    request.setAttribute(Constants.RCP_ERROR_THROWABLE_, t); - -    RequestDispatcher dispatcher = request.getRequestDispatcher(Constants.JSPPN_ERROR_); -    try  -    { -      dispatcher.include(request, response); -    }  -    catch (ServletException e)  -    { -      logger.error("Returning error JSP page failed.", e); -      throw e; -    }  -    catch (IOException e)  -    { -      String message = "Returning error JSP page failed."; -      logger.error(message, e); -      throw new ServletException(message, e); -    } -  } -   -  /* ---------------------------------------------------------------------------------------------------- */ - -  public static String readInitProperty(Properties initProps, String name, Logger logger)  -    throws ERechtClientException -  { -    String value = initProps.getProperty(name); -    if (value == null) -    { -      String message = "Could not read property \"" + name + "\" from configuration properties."; -      logger.error(message); -      throw new ERechtClientException(message); -    } -    return value; -  } -} diff --git a/erecht.client.ss/src/at/gv/egovernment/moa/ss/erechtclient/util/XPathUtils.java b/erecht.client.ss/src/at/gv/egovernment/moa/ss/erechtclient/util/XPathUtils.java deleted file mode 100644 index 4f2862f58..000000000 --- a/erecht.client.ss/src/at/gv/egovernment/moa/ss/erechtclient/util/XPathUtils.java +++ /dev/null @@ -1,162 +0,0 @@ -/* - * Created on 02.12.2003 - * - * (c) Stabsstelle IKT-Strategie des Bundes - */ -package at.gv.egovernment.moa.ss.erechtclient.util; - -import java.util.HashMap; -import java.util.StringTokenizer; - -import org.apache.xml.utils.PrefixResolverDefault; -import org.apache.xpath.XPath; -import org.apache.xpath.XPathContext; -import org.apache.xpath.objects.XObject; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -/** - * @author Gregor Karlinger (mailto:gregor.karlinger@cio.gv.at)  - */ -public class XPathUtils  -{ -  /** -   * The XPath context for the XPath engine. -   */ -  protected XPathContext xPathContext_; - -  /** -   * The prefix resolver for the XPath engine. -   */ -  protected PrefixResolver prefixResolver_; - -  /** -   * The XPath engine. -   */ -  protected XPath xPath_; - -  /* ==================================================================================================== */ - -  public void setupContext(String xPathExpr, Node namespaceNode, String additionalNSPrefixes) -    throws Exception -  { - -    try -    { -      // Set up a new evaluation context -      xPathContext_ = new XPathContext(); - -      // Set up the namespace prefix resolver for the XPath engine -      prefixResolver_ = new PrefixResolver(namespaceNode, additionalNSPrefixes); - -      // Initialize XPath engine -      xPath_ = new XPath(xPathExpr, null, prefixResolver_, XPath.SELECT, null); -    } -    catch (Exception e) -    { -      throw new Exception("Setting up XPath evaluation context failed.", e); -    } -  } - -  /* ---------------------------------------------------------------------------------------------------- */ - -  public NodeList selectNodeSet(Node contextNode) throws Exception -  { -    XObject xObject; -    try -    { -      xObject = xPath_.execute(xPathContext_, contextNode, prefixResolver_); -      return xObject.nodelist(); -    } -    catch (Exception e) -    { -      throw new Exception("Executing XPath expression failed.", e); -    } -  } - -  /* ---------------------------------------------------------------------------------------------------- */ - -  public boolean selectBoolean(Node contextNode) throws Exception -  { -    XObject xObject; -    try -    { -      xObject = xPath_.execute(xPathContext_, contextNode, prefixResolver_); -      return xObject.bool(); -    } -    catch (Exception e) -    { -      throw new Exception("Executing XPath expression failed.", e); -    } -  } - -  /* ==================================================================================================== */ - -  /** -   * Special extension of the {@link org.apache.xml.utils.PrefixResolverDefault} interface. Used to -   * configure the Apache Xalan XPath engine which is employed as the backbone of this class. -   */ -  protected class PrefixResolver extends PrefixResolverDefault -  { - -    /** -     * Contains the additionally specified namespace prefix (key) to namespace URI (value) attributions. -     */ -    protected HashMap additionalNSPrefixesMap_; - -    /* ================================================================================================== */ - -    /** -     * Basic constructor. -     * -     * @param xpathExpressionContext The namespace declarations in scope for this node will be used to get -     *                               the namespace uri for a prefix specified in the XPath expression. -     * -     * @param additionalNSPrefixes Allows the specification of additional prefix to uri attributions apart -     *                             from the declarations in scope for the parameter <code> -     *                             xpathExpressionContext</code>. May be <code>null</code>. -     */ -    public PrefixResolver(Node xpathExpressionContext, String additionalNSPrefixes) throws Exception -    { -      super(xpathExpressionContext); -      additionalNSPrefixesMap_ = new HashMap(); - -      // Register the specified additional namespace prefix to namespace uri attributions -      if (additionalNSPrefixes != null) -      { -        StringTokenizer tokenizer = new StringTokenizer(additionalNSPrefixes, " "); -        while (tokenizer.hasMoreTokens()) -        { -          String prefix = tokenizer.nextToken(); -          if (!tokenizer.hasMoreTokens()) -          { - -            // There must be an even number of tokens in the string -            throw new Exception("Parameter \"additionalNSPrefixes\" must have an even number of tokens."); -          } -          String uri = tokenizer.nextToken(); -          additionalNSPrefixesMap_.put(prefix, uri); -        } -      } -    } - -    /* -------------------------------------------------------------------------------------------------- */ - -    /** -     * Gets the namespace uri for the specified namespace prefix. The additionally specified prefixes -     * overrule the prefixes found in the specified namespace node. -     * -     * @param prefix The namespace prefix for which a namespace uri should be found. -     * -     * @return the namespace uri for the specified namespace prefix. -     */ -    public String getNamespaceForPrefix(String prefix) -    { -      String additionalURI = (String) additionalNSPrefixesMap_.get(prefix); -      return (additionalURI != null) -             ? additionalURI -             : super.getNamespaceForPrefix(prefix); -    } -  } -} - | 
