From f124d46f65a13eec18b8cfd6be4f941b4f257f3b Mon Sep 17 00:00:00 2001 From: Jacek Kowalski <jkowalsk@student.agh.edu.pl> Date: Thu, 20 Aug 2015 13:40:13 +0000 Subject: [PATCH] Add returnUrl parameter to logout() method --- uphpCAS.php | 37 ++++++++++++++++++++++++++++++++++--- 1 files changed, 34 insertions(+), 3 deletions(-) diff --git a/uphpCAS.php b/uphpCAS.php index 63bfc51..4119ece 100644 --- a/uphpCAS.php +++ b/uphpCAS.php @@ -46,10 +46,16 @@ } } + public function getServerUrl($serverUrl) { + return $this->serverUrl; + } public function setServerUrl($serverUrl) { $this->serverUrl = $serverUrl; } + public function getServiceUrl() { + return $this->serviceUrl; + } public function setServiceUrl($serviceUrl) { $this->serviceUrl = $serviceUrl; } @@ -58,8 +64,8 @@ return $this->serverUrl.'/login?method=POST&service='.urlencode($this->serviceUrl); } - public function logoutUrl() { - return $this->serverUrl.'/logout'; + public function logoutUrl($returnUrl = NULL) { + return $this->serverUrl.'/logout'.($returnUrl ? '?service='.urlencode($returnUrl) : ''); } public function logout() { @@ -71,9 +77,13 @@ die(); } + public function isAuthenticated() { + return isset($_SESSION['uphpCAS-user']); + } + public function authenticate() { session_start(); - if(isset($_SESSION['uphpCAS-user'])) { + if($this->isAuthenticated()) { return $_SESSION['uphpCAS-user']; } elseif(isset($_REQUEST['ticket'])) { $user = $this->verifyTicket($_REQUEST['ticket']); @@ -101,6 +111,27 @@ ), ); + 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']; + } + $data = file_get_contents($this->serverUrl .'/serviceValidate?service='.urlencode($this->serviceUrl) .'&ticket='.urlencode($ticket), -- Gitblit v1.9.1