diff options
Diffstat (limited to 'id/server')
2 files changed, 18 insertions, 12 deletions
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> |