diff --git a/lib/SimpleSAML/Metadata/MetaDataStorageHandler.php b/lib/SimpleSAML/Metadata/MetaDataStorageHandler.php index 66953f9b9d2f2c82c46ce8e12e062c15cb4e498e..eb9d3859648fc779fbaec02e888eebad30090cae 100644 --- a/lib/SimpleSAML/Metadata/MetaDataStorageHandler.php +++ b/lib/SimpleSAML/Metadata/MetaDataStorageHandler.php @@ -295,7 +295,17 @@ class SimpleSAML_Metadata_MetaDataStorageHandler { foreach($this->sources as $source) { $metadata = $source->getMetaData($index, $set); + if($metadata !== NULL) { + + if (array_key_exists('expire', $metadata)) { + if ($metadata['expire'] < time()) { + throw new Exception('Metadata for the entity [' . $index . '] expired ' . + (time() - $metadata['expire']) . ' seconds ago.' + ); + } + } + $metadata['metadata-index'] = $index; $metadata['metadata-set'] = $set; return $metadata;