diff options
| -rw-r--r-- | spss.server/build.xml | 14 | ||||
| -rw-r--r-- | spss.server/data/deploy/tools/configtool.bat | 25 | ||||
| -rw-r--r-- | spss.server/data/deploy/tools/configtool.sh | 20 | ||||
| -rw-r--r-- | spss.server/res/resources/tools/ConfigurationMapper.xsl | 239 | ||||
| -rw-r--r-- | spss.server/src/at/gv/egovernment/moa/spss/server/tools/ConfigTool.java | 59 | 
5 files changed, 351 insertions, 6 deletions
| diff --git a/spss.server/build.xml b/spss.server/build.xml index 7511ee2a4..4121e2a5c 100644 --- a/spss.server/build.xml +++ b/spss.server/build.xml @@ -1,4 +1,3 @@ -<?xml version="1.0"?>  <!--    Ant Buildfile for MOA SP/SS Server @@ -11,7 +10,7 @@  <project name="moa-spss-server" default="deploy-catalina" basedir=".">    <property environment="env"/>    <property name="script-suffix" value="${env.SCRIPT_SUFFIX}"/> -  <property name="version" value="1.2.1"/> +  <property name="version" value="1.3.0"/>    <property name="src" value="src"/>    <property name="lib" value="lib"/>    <property name="res" value="res"/> @@ -42,7 +41,7 @@    <property name="lib.jaxen" value="${lib}/jaxen-1.0"/>    <property name="lib.xerces" value="${lib}/xerces-j-2.4.0"/>    <property name="lib.xalan" value="${lib}/xalan-j-2.5.1"/> -  <property name="lib.jsse" value="${lib}/jsse-1.0.3_01"/> +  <property name="lib.jsse" value="${lib}/jsse-1.0.3_03"/>    <property name="lib.postgres-jdbc" value="${lib}/postgres-jdbc2-7.3"/>    <property name="lib.iaik-moa" value="${lib}/iaik-moa-20050623"/>    <property name="lib.junit" value="${lib}/junit-3.8.1"/> @@ -69,7 +68,7 @@      <pathelement location="${lib.commons-logging}/commons-logging-api.jar"/>      <pathelement location="${lib.commons-discovery}/commons-discovery.jar"/>      <pathelement location="${lib.servlet}/servlet-2_3-fcs-classfiles.zip"/> -    <pathelement location="${lib.iaik-moa}/iaik_moa_full.jar"/> +    <pathelement location="${lib.iaik-moa}/iaik_moa_full.exbug232.jar"/>      <pathelement location="${lib.iaik-moa}/iaik_ixsil.jar"/>      <pathelement location="${lib.iaik-moa}/iaik_jce_full.jar"/>      <pathelement location="${lib.iaik-moa}/iaik_ecc.jar"/> @@ -119,7 +118,7 @@        <lib file="${lib.commons-discovery}/commons-discovery.jar"/>        <lib file="${env.MOA_COMMON_JAR}"/>        <classes dir="${compile}" excludes="test/**"/> -      <classes dir="${res}"/> +      <classes dir="${res}" excludes="resources/tools/**"/>        <classes file="${handbook}/conf/moa-spss/log4j.properties"/>        <webinf file="server-config.wsdd"/>        <webinf dir="${handbook}" includes="conf/**"/> @@ -131,7 +130,7 @@      <description>package the library jar file</description>      <jar destfile="${dist.lib}/moa-spss.jar">        <fileset dir="${compile}" excludes="test/**"/> -      <fileset dir="${res}"/> +      <fileset dir="${res}" excludes="resources/tools/**"/>        <fileset dir="${handbook}/conf/moa-spss" includes="log4j.properties"/>      </jar>    </target> @@ -140,6 +139,7 @@      <description>package the configuration tools</description>      <jar destfile="${tools}/tools.jar">        <fileset dir="${compile}" includes="at/**/tools/**"/> +      <fileset dir="${res}" includes="resources/tools/**"/>	      </jar>    </target> @@ -280,6 +280,7 @@        </fileset>        -->        <fileset dir="${lib.log4j}"/> +      <fileset dir="${lib.xalan}"/>    	        <fileset dir="${data}/deploy/tools"/>      </copy>      <copy toDir="${dist.ws}/pkcs11"> @@ -356,6 +357,7 @@        </fileset>        -->        <fileset dir="${lib.log4j}"/> +      <fileset dir="${lib.xalan}"/>        <fileset dir="${data}/deploy/tools"/>      </copy>    	<copy toDir="${dist.lib}/licenses"> diff --git a/spss.server/data/deploy/tools/configtool.bat b/spss.server/data/deploy/tools/configtool.bat new file mode 100644 index 000000000..868df11f0 --- /dev/null +++ b/spss.server/data/deploy/tools/configtool.bat @@ -0,0 +1,25 @@ +@echo off
 +
 +rem
 +rem Script to invoke the ConfigTool class
 +rem 
 +rem Author: Gregor Karlinger
 +rem Version: $Id:  $
 +rem
 +
 +
 +if %OS%=="Windows_NT" @setlocal
 +
 +set CONFIGTOOL=at.gv.egovernment.moa.spss.server.tools.ConfigTool
 +set TOOLSPATH=%~p0
 +set CLASSPATH=%TOOLSPATH%tools.jar;%TOOLSPATH%xalan.jar;
 +
 +if "%JAVA_HOME%"=="" goto noJavaHome
 +%JAVA_HOME%\bin\java.exe -classpath %CLASSPATH% %CONFIGTOOL% %1 %2 %3 %4 %5 %6 %7 %8 %9
 +goto end
 +
 +:noJavaHome
 +echo error: JAVA_HOME not defined
 +
 +:end
 +if %OS%=="Windows_NT" @endlocal
\ No newline at end of file diff --git a/spss.server/data/deploy/tools/configtool.sh b/spss.server/data/deploy/tools/configtool.sh new file mode 100644 index 000000000..f7f29bae1 --- /dev/null +++ b/spss.server/data/deploy/tools/configtool.sh @@ -0,0 +1,20 @@ +#!/bin/sh + +# +# Script to invoke the ConfigTool class	 +# +# Author: Gregor Karlinger +# Version: $Id:  $ +# + + +if [ -z "$JAVA_HOME" ]; then  +  echo "error: JAVA_HOME not defined"; +  exit; +fi + +CONFIGTOOL=at.gv.egovernment.moa.spss.server.tools.ConfigTool +TOOLSPATH=`dirname $PWD/$0` +CLASSPATH=$TOOLSPATH/tools.jar:$TOOLSPATH/xalan.jar + +$JAVA_HOME/bin/java -classpath $CLASSPATH $CONFIGTOOL $* diff --git a/spss.server/res/resources/tools/ConfigurationMapper.xsl b/spss.server/res/resources/tools/ConfigurationMapper.xsl new file mode 100644 index 000000000..62551f0b3 --- /dev/null +++ b/spss.server/res/resources/tools/ConfigurationMapper.xsl @@ -0,0 +1,239 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?altova_samplexml E:\cio\projekte\basismodule\wartung\projekt\spss.server\data\deploy\tools\spss.config.xml?> +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:cfg="http://reference.e-government.gv.at/namespace/moaconfig/20021122#"> +  <xsl:output encoding="UTF-8" indent="yes" method="xml"/> +  <xsl:template match="/"> +    <xsl:apply-templates/> +  </xsl:template> +  <xsl:template match="cfg:MOAConfiguration"> +    <xsl:comment>MOA SPSS 1.3 Configuration File created by MOA SPSS Configuration Mapper</xsl:comment> +    <cfg:MOAConfiguration> +      <xsl:if test="cfg:KeyGroup"> +        <cfg:SignatureCreation> +          <cfg:KeyModules> +            <xsl:apply-templates select="cfg:HardwareKeyModule | cfg:SoftwareKeyModule"/> +          </cfg:KeyModules> +          <xsl:apply-templates select="cfg:KeyGroup"/> +          <xsl:apply-templates select="cfg:KeyGroupMapping"/> +          <cfg:XMLDSig> +            <cfg:CanonicalizationAlgorithm> +              <xsl:choose> +                <xsl:when test="cfg:CanonicalizationAlgorithm"> +                  <xsl:value-of select="cfg:CanonicalizationAlgorithm/@name"/> +                </xsl:when> +                <xsl:otherwise>http://www.w3.org/TR/2001/REC-xml-c14n-20010315</xsl:otherwise> +              </xsl:choose> +            </cfg:CanonicalizationAlgorithm> +            <cfg:DigestMethodAlgorithm> +              <xsl:choose> +                <xsl:when test="cfg:DigestMethodAlgorithm"><xsl:value-of select="cfg:DigestMethodAlgorithm/@name"/></xsl:when> +                <xsl:otherwise>http://www.w3.org/2000/09/xmldsig#sha1</xsl:otherwise> +              </xsl:choose> +            </cfg:DigestMethodAlgorithm> +          </cfg:XMLDSig> +          <xsl:for-each select="cfg:CreateTransformsInfoProfile"> +            <cfg:CreateTransformsInfoProfile><xsl:apply-templates select="."/></cfg:CreateTransformsInfoProfile> +          </xsl:for-each> +          <xsl:for-each select="cfg:CreateSignatureEnvironmentProfile"> +            <cfg:CreateSignatureEnvironmentProfile><xsl:apply-templates select="."/></cfg:CreateSignatureEnvironmentProfile> +          </xsl:for-each> +       </cfg:SignatureCreation> +      </xsl:if> +      <xsl:if test="cfg:TrustProfile"> +        <cfg:SignatureVerification> +          <xsl:call-template name="CertificateValidation"/> +        </cfg:SignatureVerification> +      </xsl:if> +    </cfg:MOAConfiguration> +  </xsl:template> +  <xsl:template match="cfg:SoftwareKeyModule"> +    <cfg:SoftwareKeyModule> +      <cfg:Id><xsl:value-of select="@id"/></cfg:Id> +      <cfg:FileName><xsl:value-of select="@filename"/></cfg:FileName> +      <xsl:if test="@password"> +        <cfg:Password><xsl:value-of select="@password"/></cfg:Password> +      </xsl:if> +    </cfg:SoftwareKeyModule> +  </xsl:template> +  <xsl:template match="cfg:HardwareKeyModule"> +    <cfg:HardwareKeyModule> +      <cfg:Id><xsl:value-of select="@id"/></cfg:Id> +      <cfg:Name><xsl:value-of select="@name"/></cfg:Name> +      <xsl:if test="@slotID"> +        <cfg:SlotId><xsl:value-of select="@slotID"/></cfg:SlotId> +      </xsl:if> +      <cfg:UserPIN><xsl:value-of select="@userPIN"/></cfg:UserPIN> +    </cfg:HardwareKeyModule> +  </xsl:template> +  <xsl:template match="cfg:KeyGroup"> +    <cfg:KeyGroup> +      <cfg:Id><xsl:value-of select="@id"/></cfg:Id> +      <xsl:for-each select="cfg:Key"> +        <cfg:Key> +          <cfg:KeyModuleId><xsl:value-of select="cfg:KeyModuleID"/></cfg:KeyModuleId> +          <cfg:KeyCertIssuerSerial> +            <dsig:X509IssuerName><xsl:value-of select="cfg:KeyCertIssuerSerial/dsig:X509IssuerName"/></dsig:X509IssuerName> +            <dsig:X509SerialNumber><xsl:value-of select="cfg:KeyCertIssuerSerial/dsig:X509SerialNumber"/></dsig:X509SerialNumber> +          </cfg:KeyCertIssuerSerial> +        </cfg:Key> +      </xsl:for-each> +    </cfg:KeyGroup> +  </xsl:template> +  <xsl:template match="cfg:KeyGroupMapping"> +    <cfg:KeyGroupMapping> +      <xsl:if test="cfg:X509IssuerSerial"> +        <cfg:CustomerId> +          <dsig:X509IssuerName><xsl:value-of select="cfg:X509IssuerSerial/dsig:X509IssuerName"/></dsig:X509IssuerName> +          <dsig:X509SerialNumber><xsl:value-of select="cfg:X509IssuerSerial/dsig:X509SerialNumber"/></dsig:X509SerialNumber> +        </cfg:CustomerId> +      </xsl:if> +      <xsl:for-each select="cfg:KeyGroup"> +        <cfg:KeyGroupId><xsl:value-of select="@id"/></cfg:KeyGroupId> +      </xsl:for-each> +    </cfg:KeyGroupMapping> +  </xsl:template> +  <xsl:template match="cfg:CreateTransformsInfoProfile | cfg:CreateSignatureEnvironmentProfile | cfg:VerifyTransformsInfoProfile | cfg:SupplementProfile"> +    <cfg:Id><xsl:value-of select="@id"/></cfg:Id>   +    <cfg:Location><xsl:value-of select="@filename"/></cfg:Location> +  </xsl:template> +  <xsl:template name="CertificateValidation"> +    <cfg:CertificateValidation> +      <cfg:PathConstruction> +        <cfg:AutoAddCertificates> +          <xsl:call-template name="GetGenericValue"> +            <xsl:with-param name="GenericName" select="'autoAddCertificates'"/>  +            <xsl:with-param name="DefaultValue" select="'true'"/> +          </xsl:call-template> +        </cfg:AutoAddCertificates> +        <cfg:UseAuthorityInformationAccess> +          <xsl:call-template name="GetGenericValue"> +            <xsl:with-param name="GenericName" select="'useAuthorityInfoAccess'"/>  +            <xsl:with-param name="DefaultValue" select="'true'"/> +          </xsl:call-template> +        </cfg:UseAuthorityInformationAccess> +        <cfg:CertificateStore> +          <cfg:DirectoryStore> +            <cfg:Location> +              <xsl:call-template name="GetGenericValue"> +                <xsl:with-param name="GenericName" select="'DirectoryCertStoreParameters.RootDir'"/>  +                <xsl:with-param name="DefaultValue" select="'certstore'"/> +              </xsl:call-template> +            </cfg:Location> +          </cfg:DirectoryStore> +        </cfg:CertificateStore> +      </cfg:PathConstruction> +      <cfg:PathValidation> +        <cfg:ChainingMode> +          <cfg:DefaultMode> +            <xsl:choose> +              <xsl:when test="cfg:ChainingModes/@systemDefaultMode"><xsl:value-of select="cfg:ChainingModes/@systemDefaultMode"/></xsl:when> +              <xsl:otherwise>pkix</xsl:otherwise> +            </xsl:choose> +          </cfg:DefaultMode> +          <xsl:for-each select="cfg:ChainingModes/cfg:TrustAnchor"> +            <cfg:TrustAnchor> +              <cfg:Identification> +                <dsig:X509IssuerName><xsl:value-of select="dsig:X509IssuerName"/></dsig:X509IssuerName> +                <dsig:X509SerialNumber><xsl:value-of select="dsig:X509SerialNumber"/></dsig:X509SerialNumber> +              </cfg:Identification> +              <cfg:Mode><xsl:value-of select="@mode"/></cfg:Mode> +            </cfg:TrustAnchor>  +          </xsl:for-each> +        </cfg:ChainingMode> +        <xsl:for-each select="cfg:TrustProfile"> +          <cfg:TrustProfile> +            <cfg:Id><xsl:value-of select="@id"/></cfg:Id> +            <cfg:TrustAnchorsLocation><xsl:value-of select="@uri"></xsl:value-of></cfg:TrustAnchorsLocation> +            <xsl:if test="@signerCertsUri"> +              <cfg:SignerCertsLocation><xsl:value-of select="@signerCertsUri"/></cfg:SignerCertsLocation> +            </xsl:if> +          </cfg:TrustProfile> +        </xsl:for-each> +      </cfg:PathValidation> +      <cfg:RevocationChecking> +        <cfg:EnableChecking> +          <xsl:call-template name="GetGenericValue"> +            <xsl:with-param name="GenericName" select="'checkRevocation'"/>  +            <xsl:with-param name="DefaultValue" select="'true'"/> +          </xsl:call-template> +        </cfg:EnableChecking> +        <cfg:MaxRevocationAge> +          <xsl:call-template name="GetGenericValue"> +            <xsl:with-param name="GenericName" select="'maxRevocationAge'"/>  +            <xsl:with-param name="DefaultValue" select="'0'"/> +          </xsl:call-template> +        </cfg:MaxRevocationAge> +        <cfg:Archiving> +          <cfg:EnableArchiving> +            <xsl:call-template name="GetGenericValue"> +              <xsl:with-param name="GenericName" select="'archiveRevocationInfo'"/>  +              <xsl:with-param name="DefaultValue" select="'false'"/> +            </xsl:call-template> +          </cfg:EnableArchiving> +          <cfg:ArchiveDuration> +            <xsl:choose> +              <xsl:when test="cfg:CRLArchive/@duration"><xsl:value-of select="cfg:CRLArchive/@duration"/></xsl:when> +              <xsl:otherwise>365</xsl:otherwise> +            </xsl:choose> +          </cfg:ArchiveDuration> +          <cfg:Archive> +            <cfg:DatabaseArchive> +              <cfg:JDBCURL> +                <xsl:call-template name="GetGenericValue"> +                  <xsl:with-param name="GenericName" select="'DataBaseArchiveParameter.JDBCUrl'"/>  +                  <xsl:with-param name="DefaultValue" select="'jdbc:url'"/> +                </xsl:call-template> +              </cfg:JDBCURL> +              <cfg:JDBCDriverClassName> +                <xsl:call-template name="GetGenericValue"> +                  <xsl:with-param name="GenericName" select="'DataBaseArchiveParameter.JDBCDriverClass'"/>  +                  <xsl:with-param name="DefaultValue" select="'fully.qualified.classname'"/> +                </xsl:call-template> +              </cfg:JDBCDriverClassName> +            </cfg:DatabaseArchive> +          </cfg:Archive> +        </cfg:Archiving> +        <xsl:for-each select="cfg:CRLDistributionPoint"> +          <cfg:DistributionPoint> +            <cfg:CAIssuerDN><xsl:value-of select="cfg:CAIssuerDN"/></cfg:CAIssuerDN> +            <xsl:for-each select="cfg:DistributionPoint"> +              <cfg:CRLDP> +                <cfg:Location><xsl:value-of select="@uri"/></cfg:Location> +                <xsl:if test="contains(@reasonCodes, 'all')"><cfg:ReasonCode>all</cfg:ReasonCode></xsl:if> +                <xsl:if test="contains(@reasonCodes, 'unused')"><cfg:ReasonCode>unused</cfg:ReasonCode></xsl:if> +                <xsl:if test="contains(@reasonCodes, 'keyCompromise')"><cfg:ReasonCode>keyCompromise</cfg:ReasonCode></xsl:if> +                <xsl:if test="contains(@reasonCodes, 'cACompromise')"><cfg:ReasonCode>cACompromise</cfg:ReasonCode></xsl:if> +                <xsl:if test="contains(@reasonCodes, 'affiliationChanged')"><cfg:ReasonCode>affiliationChanged</cfg:ReasonCode></xsl:if> +                <xsl:if test="contains(@reasonCodes, 'superseded')"><cfg:ReasonCode>superseded</cfg:ReasonCode></xsl:if> +                <xsl:if test="contains(@reasonCodes, 'cessationOfOperation')"><cfg:ReasonCode>cessationOfOperation</cfg:ReasonCode></xsl:if> +                <xsl:if test="contains(@reasonCodes, 'certificateHold')"><cfg:ReasonCode>certificateHold</cfg:ReasonCode></xsl:if> +                <xsl:if test="contains(@reasonCodes, 'privilegeWithdrawn')"><cfg:ReasonCode>privilegeWithdrawn</cfg:ReasonCode></xsl:if> +                <xsl:if test="contains(@reasonCodes, 'aACompromise')"><cfg:ReasonCode>aACompromise</cfg:ReasonCode></xsl:if> +              </cfg:CRLDP> +            </xsl:for-each> +          </cfg:DistributionPoint> +        </xsl:for-each> +      </cfg:RevocationChecking> +    </cfg:CertificateValidation> +    <xsl:for-each select="cfg:VerifyTransformsInfoProfile"> +      <cfg:VerifyTransformsInfoProfile><xsl:apply-templates select="."/></cfg:VerifyTransformsInfoProfile> +    </xsl:for-each> +    <xsl:for-each select="cfg:SupplementProfile"> +      <cfg:SupplementProfile><xsl:apply-templates select="."/></cfg:SupplementProfile> +    </xsl:for-each> +  </xsl:template> +  <xsl:template name="GetGenericValue"> +    <xsl:param name="GenericName"/> +    <xsl:param name="DefaultValue"/>     +    <xsl:choose> +      <xsl:when test="cfg:GenericConfiguration[@name=$GenericName]"> +        <xsl:value-of select="cfg:GenericConfiguration[@name=$GenericName]/@value"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:if test="$DefaultValue != ''"> +          <xsl:value-of select="$DefaultValue"/> +        </xsl:if>   +      </xsl:otherwise> +    </xsl:choose> +  </xsl:template> +</xsl:stylesheet> diff --git a/spss.server/src/at/gv/egovernment/moa/spss/server/tools/ConfigTool.java b/spss.server/src/at/gv/egovernment/moa/spss/server/tools/ConfigTool.java new file mode 100644 index 000000000..d5c3b48c1 --- /dev/null +++ b/spss.server/src/at/gv/egovernment/moa/spss/server/tools/ConfigTool.java @@ -0,0 +1,59 @@ +package at.gv.egovernment.moa.spss.server.tools; + +import java.io.FileNotFoundException; +import java.io.FileOutputStream; + +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerConfigurationException; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.stream.StreamResult; +import javax.xml.transform.stream.StreamSource; + +/** + * A tool for converting a MOA SPSS Version 1.0 configuration file into + * a Version 1.3 configuration file. + *  + * @author Gregor Karlinger + * @version $Id$ + */ +public class ConfigTool +{ + 	public static void main(String[] args) +  {   +    if (args == null || args.length != 2) +    { +      System.out.println("Usage: ConfigTool <MOA.SPSS.1-0.ConfigFile.xml> <MOA.SPSS.1-3.ConfigFile.xml>"); +      System.out.println("  <MOA.SPSS.1-0.ConfigFile.xml> ... Old config file to be transformed"); +      System.out.println("  <MOA.SPSS.1-3.ConfigFile.xml> ... New config file resulting from the transform"); +      System.exit(-1); +    } + 	   + 	  try +    { + 	    TransformerFactory tFactory = TransformerFactory.newInstance(); + 	    Transformer transformer = tFactory.newTransformer(new StreamSource( + 	      ConfigTool.class.getResourceAsStream("/resources/tools/ConfigurationMapper.xsl"))); +      transformer.transform(new StreamSource(args[0]), new StreamResult(new FileOutputStream(args[1]))); +    	 +    	System.out.println("Successfully mapped configuration file."); +    } +    catch (TransformerConfigurationException e) +    { +      System.err.println("An error occurred during mapping the configuration file:"); +      System.err.println("  Cannot initialize XSLT transform."); +      System.err.println("  " + e.getMessage()); +    } +    catch (FileNotFoundException e) +    { +      System.err.println("An error occurred during mapping the configuration file:"); +      System.err.println("  There is a problem with the filename for the new configuration file."); +      System.err.println("  " + e.getMessage()); +    } +    catch (TransformerException e) +    { +      System.err.println("An error occurred during mapping the configuration file:"); +      System.err.println("  " + e.getMessage()); +    } +  } +} | 
