diff options
Diffstat (limited to 'id')
3 files changed, 30 insertions, 14 deletions
diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditOAAction.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditOAAction.java index cc2cf3bf0..452c5580d 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditOAAction.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditOAAction.java @@ -943,10 +943,12 @@ public class EditOAAction extends BasicAction { authoa.setOAPVP2(pvp2); } - pvp2.setMetadataURL(pvp2OA.getMetaDataURL()); try { - if (pvp2OA.getFileUpload() != null) pvp2.setCertificate(pvp2OA.getCertificate()); + if (pvp2OA.getFileUpload() != null) { + pvp2.setCertificate(pvp2OA.getCertificate()); + pvp2OA.setReLoad(true); + } } catch (CertificateException e) { log.info("Uploaded Certificate can not be found", e); @@ -956,6 +958,14 @@ public class EditOAAction extends BasicAction { return LanguageHelper.getErrorString("validation.pvp2.certificate.format", request); } + if (pvp2OA.getMetaDataURL() != null && + !pvp2OA.getMetaDataURL().equals(pvp2.getMetadataURL())) + pvp2OA.setReLoad(true); + pvp2.setMetadataURL(pvp2OA.getMetaDataURL()); + + if (pvp2OA.isReLoad()) + pvp2.setUpdateRequiredItem(new Date()); + OASAML1 saml1 = authoa.getOASAML1(); if (saml1 == null) { saml1 = new OASAML1(); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/metadata/MOAMetadataProvider.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/metadata/MOAMetadataProvider.java index 6d9022bd9..f2e3e7cb1 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/metadata/MOAMetadataProvider.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/metadata/MOAMetadataProvider.java @@ -124,6 +124,7 @@ public class MOAMetadataProvider implements MetadataProvider { .getAllActiveOnlineApplications(); //set Timestamp + Date oldTimeStamp = timestamp; timestamp = new Date(); Iterator<OnlineApplication> oaIt = oaList.iterator(); @@ -138,7 +139,16 @@ public class MOAMetadataProvider implements MetadataProvider { String metadataurl = pvp2Config.getMetadataURL(); if (loadedproviders.containsKey(metadataurl)) { - //PVP2 OA is actually loaded, to nothing + + if (pvp2Config.getUpdateRequiredItem() != null && + pvp2Config.getUpdateRequiredItem().after(oldTimeStamp)) { + //PVP2 OA is actually loaded, but update is requested + Logger.info("Reload metadata for: " + oa.getFriendlyName()); + loadedproviders.get(metadataurl).refresh(); + + } + + // PVP2 OA is actually loaded, to nothing providersinuse.put(metadataurl, loadedproviders.get(metadataurl)); loadedproviders.remove(metadataurl); diff --git a/id/server/moa-id-commons/src/main/resources/config/moaid_config_2.0.xsd b/id/server/moa-id-commons/src/main/resources/config/moaid_config_2.0.xsd index d7f48e51a..e8562a57b 100644 --- a/id/server/moa-id-commons/src/main/resources/config/moaid_config_2.0.xsd +++ b/id/server/moa-id-commons/src/main/resources/config/moaid_config_2.0.xsd @@ -842,6 +842,7 @@ <xsd:sequence> <xsd:element name="metadataURL" type="xsd:anyURI" minOccurs="1" maxOccurs="1"/> <xsd:element name="certificate" type="xsd:base64Binary" minOccurs="1" maxOccurs="1"/> + <xsd:element name="updateRequired" type="xsd:dateTime" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:complexType> </xsd:element> @@ -884,17 +885,12 @@ <xsd:element name="OA_STORK"> <xsd:complexType> <xsd:sequence> - <xsd:element name="StorkLogonEnabled" type="xsd:boolean" - default="true" /> - <xsd:element ref="Qaa" minOccurs="0" maxOccurs="1" /> - <xsd:element ref="OAAttributes" minOccurs="0" - maxOccurs="unbounded" /> - <xsd:element name="VidpEnabled" type="xsd:boolean" - default="false" /> - <xsd:element ref="AttributeProviders" minOccurs="0" - maxOccurs="unbounded" /> - <xsd:element name="requireConsent" type="xsd:boolean" - default="true" /> + <xsd:element name="StorkLogonEnabled" type="xsd:boolean" default="true"/> + <xsd:element ref="Qaa" minOccurs="0" maxOccurs="1"/> + <xsd:element ref="OAAttributes" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="VidpEnabled" type="xsd:boolean" default="false"/> + <xsd:element ref="AttributeProviders" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="requireConsent" type="xsd:boolean" default="true"/> <xsd:element ref="C-PEPS" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> |