diff options
author | gregor <gregor@d688527b-c9ab-4aba-bd8d-4036d912da1d> | 2005-08-03 10:09:54 +0000 |
---|---|---|
committer | gregor <gregor@d688527b-c9ab-4aba-bd8d-4036d912da1d> | 2005-08-03 10:09:54 +0000 |
commit | 4f170b89a4ec0581b6701892522f0a808b28290b (patch) | |
tree | 9787e1340d52e2c8e0e024a53496b036b16200ba | |
parent | 65ef567773b9684034d271e93529d555ab61cbfe (diff) | |
download | moa-id-spss-4f170b89a4ec0581b6701892522f0a808b28290b.tar.gz moa-id-spss-4f170b89a4ec0581b6701892522f0a808b28290b.tar.bz2 moa-id-spss-4f170b89a4ec0581b6701892522f0a808b28290b.zip |
Bug 271: Tool zur Migration des Konfigurationsfiles von 1.0 auf 1.3 erstellt.
git-svn-id: https://joinup.ec.europa.eu/svn/moa-idspss/trunk@413 d688527b-c9ab-4aba-bd8d-4036d912da1d
-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()); + } + } +} |