diff options
author | Thomas Lenz <tlenz@iaik.tugraz.at> | 2014-01-30 11:56:54 +0100 |
---|---|---|
committer | Thomas Lenz <tlenz@iaik.tugraz.at> | 2014-01-30 11:56:54 +0100 |
commit | 109aef31e7722cb8e18a920314ad342367bc8483 (patch) | |
tree | 01c3c4ece07a2b5e8d22e69b316062eb79c39eb2 /id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/config | |
parent | aa8ef6ac6e9f27cde7d009006de639893e0851f3 (diff) | |
download | moa-id-spss-109aef31e7722cb8e18a920314ad342367bc8483.tar.gz moa-id-spss-109aef31e7722cb8e18a920314ad342367bc8483.tar.bz2 moa-id-spss-109aef31e7722cb8e18a920314ad342367bc8483.zip |
-- set MOA-ID Version to 1.9.98-Snapshot
-- update SZRGWClient
-- insert MOA-ID-lib version in PVP2 metadata
Diffstat (limited to 'id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/config')
-rw-r--r-- | id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/config/PVPConfiguration.java | 58 |
1 files changed, 56 insertions, 2 deletions
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/config/PVPConfiguration.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/config/PVPConfiguration.java index f6832c161..769e36fc1 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/config/PVPConfiguration.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/config/PVPConfiguration.java @@ -25,10 +25,15 @@ package at.gv.egovernment.moa.id.protocols.pvp2x.config; import iaik.x509.X509Certificate; import java.io.File; +import java.io.IOException; +import java.net.URL; +import java.net.URLClassLoader; import java.security.cert.CertificateException; import java.util.ArrayList; import java.util.List; import java.util.Properties; +import java.util.jar.Attributes; +import java.util.jar.Manifest; import org.opensaml.saml2.metadata.Company; import org.opensaml.saml2.metadata.ContactPerson; @@ -51,6 +56,7 @@ import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProvider; import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; import at.gv.egovernment.moa.id.protocols.pvp2x.utils.SAML2Utils; import at.gv.egovernment.moa.logging.Logger; +import at.gv.egovernment.moa.util.MiscUtil; public class PVPConfiguration { @@ -103,6 +109,8 @@ public class PVPConfiguration { public static final String IDP_CONTACT_COMPANY = "company"; public static final String IDP_CONTACT_PHONE = "phone"; + private static String moaIDVersion = null; + PVP2 generalpvpconfigdb; Properties props; @@ -164,7 +172,12 @@ public class PVPConfiguration { } public String getIDPIssuerName() { - return generalpvpconfigdb.getIssuerName(); + + if (moaIDVersion == null) { + moaIDVersion = parseMOAIDVersionFromManifest(); + } + + return generalpvpconfigdb.getIssuerName() + moaIDVersion; } public List<String> getMetadataFiles() { @@ -364,7 +377,48 @@ public class PVPConfiguration { .createSAMLObject(OrganizationURL.class); url.setURL(new LocalizedString(org_url, "de")); org.getURLs().add(url); - + return org; } + + private String parseMOAIDVersionFromManifest() { + + try { + Class clazz = PVPConfiguration.class; + String className = clazz.getSimpleName() + ".class"; + String classPath = clazz.getResource(className).toString(); + + if (!classPath.startsWith("jar")) { + Logger.info("MOA-ID Version can NOT parsed from Manifest. Set blank Version"); + return new String(); + + } + + String manifestPath = classPath.substring(0, classPath.lastIndexOf("!") + 1) + + "/META-INF/MANIFEST.MF"; + + Manifest manifest = new Manifest(new URL(manifestPath).openStream());; + + Attributes attributes = manifest.getMainAttributes(); + String version = attributes.getValue("Implementation-Version"); + + + + if (MiscUtil.isNotEmpty(version)) + return new String(" (Version: " + version + ")"); + + else { + Logger.info("MOA-ID Version not found in Manifest. Set blank Version"); + return new String(); + + } + + } catch (Throwable e) { + Logger.info("MOA-ID Version can NOT parsed from Manifest. Set blank Version"); + + return new String(); + } + + + } } |