diff options
Diffstat (limited to 'id/server/idserverlib/src/main/java/at/gv/egovernment')
4 files changed, 74 insertions, 9 deletions
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/iaik/config/PKIConfigurationImpl.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/iaik/config/PKIConfigurationImpl.java index 646c27fe8..064d8a835 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/iaik/config/PKIConfigurationImpl.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/iaik/config/PKIConfigurationImpl.java @@ -109,4 +109,12 @@ public class PKIConfigurationImpl implements PKIConfiguration { return validationConfiguration; } +/* (non-Javadoc) + * @see iaik.pki.PKIConfiguration#getTimeout() + */ + public int getTimeout() { + // TODO Auto-generated method stub + return 0; +} + } diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/MetadataAction.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/MetadataAction.java index 3d4360640..151529ad5 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/MetadataAction.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/MetadataAction.java @@ -49,12 +49,9 @@ import org.opensaml.xml.io.Marshaller; import org.opensaml.xml.security.credential.Credential; import org.opensaml.xml.security.credential.UsageType; import org.opensaml.xml.security.keyinfo.KeyInfoGenerator; -import org.opensaml.xml.security.keyinfo.KeyInfoHelper; import org.opensaml.xml.security.x509.X509KeyInfoGeneratorFactory; -import org.opensaml.xml.signature.KeyInfo; import org.opensaml.xml.signature.Signature; import org.opensaml.xml.signature.Signer; -import org.opensaml.xml.signature.impl.KeyInfoBuilder; import org.w3c.dom.Document; import at.gv.egovernment.moa.id.auth.data.AuthenticationSession; @@ -69,19 +66,23 @@ import at.gv.egovernment.moa.logging.Logger; public class MetadataAction implements IAction { + private static final int VALIDUNTIL_IN_DAYES = 30; + public String processRequest(IRequest req, HttpServletRequest httpReq, HttpServletResponse httpResp, AuthenticationSession moasession) throws MOAIDException { try { EntitiesDescriptor idpEntitiesDescriptor = SAML2Utils.createSAMLObject(EntitiesDescriptor.class); - + idpEntitiesDescriptor.setName(PVPConfiguration.getInstance().getIDPIssuerName()); idpEntitiesDescriptor.setID(SAML2Utils.getSecureIdentifier()); - idpEntitiesDescriptor.setValidUntil(new DateTime().plusWeeks(4)); + DateTime date = new DateTime(); + idpEntitiesDescriptor.setValidUntil(date.plusDays(VALIDUNTIL_IN_DAYES)); + EntityDescriptor idpEntityDescriptor = SAML2Utils .createSAMLObject(EntityDescriptor.class); @@ -90,6 +91,8 @@ public class MetadataAction implements IAction { idpEntityDescriptor .setEntityID(PVPConfiguration.getInstance().getIDPPublicPath()); + idpEntityDescriptor.setValidUntil(date.plusDays(VALIDUNTIL_IN_DAYES)); + List<ContactPerson> persons = PVPConfiguration.getInstance() .getIDPContacts(); 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(); + } + + + } } diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/AxisSecureSocketFactory.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/AxisSecureSocketFactory.java index 046d0f825..fff5fac96 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/AxisSecureSocketFactory.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/AxisSecureSocketFactory.java @@ -61,7 +61,7 @@ import javax.net.ssl.SSLSocketFactory; import org.apache.axis.components.net.BooleanHolder; import org.apache.axis.components.net.DefaultSocketFactory; -import org.apache.axis.components.net.SecureSocketFactory; +import org.apache.axis.components.net.SocketFactory; import org.apache.axis.components.net.TransportClientProperties; import org.apache.axis.components.net.TransportClientPropertiesFactory; import org.apache.axis.utils.Messages; @@ -87,7 +87,7 @@ import at.gv.egovernment.moa.logging.Logger; * @version $Id$ */ public class AxisSecureSocketFactory - extends DefaultSocketFactory implements SecureSocketFactory { + extends DefaultSocketFactory implements SocketFactory { /** Field sslFactory */ private static SSLSocketFactory sslFactory; |