From 2b2985012334af54a3ae9cdd684db32087c41d0d Mon Sep 17 00:00:00 2001 From: Jacek Kowalski <jkowalsk@student.agh.edu.pl> Date: Fri, 04 Sep 2015 22:34:31 +0000 Subject: [PATCH] Add missing return statement in getCurrentUrl() method --- uphpCAS.php | 64 ++++++++++++++++++++------------ 1 files changed, 40 insertions(+), 24 deletions(-) diff --git a/uphpCAS.php b/uphpCAS.php index e1276bb..b0d510b 100644 --- a/uphpCAS.php +++ b/uphpCAS.php @@ -51,6 +51,8 @@ $url .= ':'.$port; } $url .= $_SERVER['REQUEST_URI']; + + return $url; } public function getServerUrl() { @@ -67,7 +69,7 @@ $this->serviceUrl = $serviceUrl; } - public function getSessionName($sessionName) { + public function getSessionName() { return $this->sessionName; } public function setSessionName($sessionName) { @@ -112,8 +114,26 @@ } } - public function verifyTicket($ticket) { - $context = array( + protected function findCaFile() { + $cafiles = array( + '/etc/ssl/certs/ca-certificates.crt', + '/etc/ssl/certs/ca-bundle.crt', + '/etc/pki/tls/certs/ca-bundle.crt', + ); + + $cafile = NULL; + foreach($cafiles as $file) { + if(is_file($file)) { + $cafile = $file; + break; + } + } + + return $cafile; + } + + protected function createStreamContext($hostname) { + $context = stream_context_create(array( 'http' => array( 'method' => 'GET', 'user_agent' => 'uphpCAS/'.self::VERSION, @@ -126,33 +146,29 @@ 'allow_self_signed' => FALSE, 'disable_compression' => TRUE, ), - ); + )); if(version_compare(PHP_VERSION, '5.6', '<')) { - $cafiles = array( - '/etc/ssl/certs/ca-certificates.crt', - '/etc/ssl/certs/ca-bundle.crt', - '/etc/pki/tls/certs/ca-bundle.crt', - ); - $cafile = NULL; - foreach($cafiles as $file) { - if(is_file($file)) { - $cafile = $file; - break; - } - } - - $url = parse_url($this->serverUrl); - $context['ssl']['cafile'] = $cafile; - $context['ssl']['ciphers'] = 'ECDH:DH:AES:CAMELLIA:!SSLv2:!aNULL' - .':!eNULL:!EXPORT:!DES:!3DES:!MD5:!RC4:!ADH:!PSK:!SRP'; - $context['ssl']['CN_match'] = $url['host']; + stream_context_set_option($context, array( + 'ssl' => array( + 'cafile' => $this->findCaFile(), + 'ciphers' => 'ECDH:DH:AES:CAMELLIA:!SSLv2:!aNULL:!eNULL' + .':!EXPORT:!DES:!3DES:!MD5:!RC4:!ADH:!PSK:!SRP', + 'CN_match' => $hostname, + ), + )); } + + return $context; + } + + public function verifyTicket($ticket) { + $url = parse_url($this->serverUrl); + $context = $this->createStreamContext($url['host']); $data = file_get_contents($this->serverUrl .'/serviceValidate?service='.urlencode($this->serviceUrl) - .'&ticket='.urlencode($ticket), - FALSE, stream_context_create($context)); + .'&ticket='.urlencode($ticket), FALSE, $context); if($data === FALSE) { throw new JasigException('Authentication error: CAS server is unavailable'); } -- Gitblit v1.9.1