diff --git a/modules/metarefresh/lib/MetaLoader.php b/modules/metarefresh/lib/MetaLoader.php index 67c13fe68dca24abe48167844ec4bf0dd7f824e9..ea5bfc647a99378b53d2bf2895312bc9104068b0 100644 --- a/modules/metarefresh/lib/MetaLoader.php +++ b/modules/metarefresh/lib/MetaLoader.php @@ -45,32 +45,38 @@ class sspmod_metarefresh_MetaLoader { */ public function loadSource($source) { - // Build new HTTP context - $context = $this->createContext($source); - - // GET! - try { - list($data, $responseHeaders) = SimpleSAML_Utilities::fetch($source['src'], $context, TRUE); - } catch(Exception $e) { - SimpleSAML_Logger::warning('metarefresh: ' . $e->getMessage()); - } + if (preg_match('@^https?://@i', $source['src'])) { + // Build new HTTP context + $context = $this->createContext($source); + + // GET! + try { + list($data, $responseHeaders) = SimpleSAML_Utilities::fetch($source['src'], $context, TRUE); + } catch(Exception $e) { + SimpleSAML_Logger::warning('metarefresh: ' . $e->getMessage()); + } - // We have response headers, so the request succeeded - if(!isset($responseHeaders)) { - // No response headers, this means the request failed in some way, so re-use old data - SimpleSAML_Logger::debug('No response from ' . $source['src'] . ' - attempting to re-use cached metadata'); - $this->addCachedMetadata($source); - return; - } elseif(preg_match('@^HTTP/1\.[01]\s304\s@', $responseHeaders[0])) { - // 304 response - SimpleSAML_Logger::debug('Received HTTP 304 (Not Modified) - attempting to re-use cached metadata'); - $this->addCachedMetadata($source); - return; - } elseif(!preg_match('@^HTTP/1\.[01]\s200\s@', $responseHeaders[0])) { - // Other error. - SimpleSAML_Logger::debug('Error from ' . $source['src'] . ' - attempting to re-use cached metadata'); - $this->addCachedMetadata($source); - return; + // We have response headers, so the request succeeded + if(!isset($responseHeaders)) { + // No response headers, this means the request failed in some way, so re-use old data + SimpleSAML_Logger::debug('No response from ' . $source['src'] . ' - attempting to re-use cached metadata'); + $this->addCachedMetadata($source); + return; + } elseif(preg_match('@^HTTP/1\.[01]\s304\s@', $responseHeaders[0])) { + // 304 response + SimpleSAML_Logger::debug('Received HTTP 304 (Not Modified) - attempting to re-use cached metadata'); + $this->addCachedMetadata($source); + return; + } elseif(!preg_match('@^HTTP/1\.[01]\s200\s@', $responseHeaders[0])) { + // Other error. + SimpleSAML_Logger::debug('Error from ' . $source['src'] . ' - attempting to re-use cached metadata'); + $this->addCachedMetadata($source); + return; + } + } else { + /* Local file. */ + $data = file_get_contents($source['src']); + $responseHeaders = NULL; } /* Everything OK. Proceed. */