From c2915b791714bd883ca3f06bbda0935f8ec9ef63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=85kre=20Solberg?= <andreas.solberg@uninett.no> Date: Wed, 28 Jan 2009 07:18:15 +0000 Subject: [PATCH] Add expire with metarefresh module git-svn-id: https://simplesamlphp.googlecode.com/svn/trunk@1209 44740490-163a-0410-bde0-09ae8108e29a --- modules/metarefresh/lib/MetaLoader.php | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/modules/metarefresh/lib/MetaLoader.php b/modules/metarefresh/lib/MetaLoader.php index 6a189ff5b..f85732434 100644 --- a/modules/metarefresh/lib/MetaLoader.php +++ b/modules/metarefresh/lib/MetaLoader.php @@ -51,11 +51,13 @@ class sspmod_metarefresh_MetaLoader { } $template = NULL; if (array_key_exists('template', $source)) $template = $source['template']; + + $expireDuration = time() + min($this->maxcache, $this->maxduration); - $this->addMetadata($source['src'], $entity->getMetadata1xSP(), 'shib13-sp-remote', $template); - $this->addMetadata($source['src'], $entity->getMetadata1xIdP(), 'shib13-idp-remote', $template); - $this->addMetadata($source['src'], $entity->getMetadata20SP(), 'saml20-sp-remote', $template); - $this->addMetadata($source['src'], $entity->getMetadata20IdP(), 'saml20-idp-remote', $template); + $this->addMetadata($source['src'], $entity->getMetadata1xSP(), 'shib13-sp-remote', $template, $expireDuration); + $this->addMetadata($source['src'], $entity->getMetadata1xIdP(), 'shib13-idp-remote', $template, $expireDuration); + $this->addMetadata($source['src'], $entity->getMetadata20SP(), 'saml20-sp-remote', $template, $expireDuration); + $this->addMetadata($source['src'], $entity->getMetadata20IdP(), 'saml20-idp-remote', $template, $expireDuration); } } @@ -98,7 +100,7 @@ class sspmod_metarefresh_MetaLoader { * @param $metadata The metadata. * @param $type The metadata type. */ - private function addMetadata($filename, $metadata, $type, $template = NULL) { + private function addMetadata($filename, $metadata, $type, $template = NULL, $expireDuration) { if($metadata === NULL) { return; @@ -115,6 +117,13 @@ class sspmod_metarefresh_MetaLoader { if(!array_key_exists($type, $this->metadata)) { $this->metadata[$type] = array(); } + + if (!array_key_exists('expire', $metadata)) { + $metadata['expire'] = $expireDuration; + } else { + if ($expireDuration < $metadata['expire']) + $metadata['expire'] = $expireDuration; + } $this->metadata[$type][] = array('filename' => $filename, 'metadata' => $metadata); } -- GitLab