phpCAS::getProxiedService PHP Méthode

getProxiedService() public static méthode

Answer a proxy-authenticated service handler.
public static getProxiedService ( string $type ) : CAS_ProxiedService
$type string The service type. One of PHPCAS_PROXIED_SERVICE_HTTP_GET; PHPCAS_PROXIED_SERVICE_HTTP_POST; PHPCAS_PROXIED_SERVICE_IMAP
Résultat CAS_ProxiedService
    public static function getProxiedService($type)
    {
        phpCAS::traceBegin();
        phpCAS::_validateProxyExists();
        try {
            $res = self::$_PHPCAS_CLIENT->getProxiedService($type);
        } catch (Exception $e) {
            phpCAS::error(get_class($e) . ': ' . $e->getMessage());
        }
        phpCAS::traceEnd();
        return $res;
    }

Usage Example

 /**
  * Retrieves the data using the given url. The default implementation uses the file_get_content()
  * function to retrieve the request. Subclasses would need to implement this if a simple GET request
  * is not sufficient (i.e. you need POST or custom headers). 
  * @param string the url to retrieve
  * @return string the response from the server
  * @TODO support POST requests and custom headers and perhaps proxy requests
  */
 protected function retrieveData($url)
 {
     if ($this->debugMode) {
         error_log(sprintf(__CLASS__ . " Retrieving %s", $url));
     }
     try {
         if ($this->method == 'GET') {
             $http = phpCAS::getProxiedService(PHPCAS_PROXIED_SERVICE_HTTP_GET);
         } else {
             if ($this->method = 'POST') {
                 $http = phpCAS::getProxiedService(PHPCAS_PROXIED_SERVICE_HTTP_POST);
             } else {
                 throw new Exception('Unsupported HTTP method ' . $this->method);
             }
         }
         $http->setUrl($url);
         // Not yet supported in phpCAS-1.2.2, will be added in a future version.
         //      foreach ($this->getHeaders() as $header) {
         //          $http->addRequestHeader($header);
         //      }
         $http->send();
         $this->response = DataResponse::factory('HTTPDataResponse', array());
         $this->response->setRequest($this->method, $url, $this->filters, $this->requestHeaders);
         $this->response->setResponse($http->getResponseBody(), $http->getResponseHeaders());
         if ($this->debugMode) {
             error_log(sprintf(__CLASS__ . " Returned status %d and %d bytes", $this->getResponseCode(), strlen($data)));
         }
         return $http->getResponseBody();
     } catch (CAS_ProxyTicketException $e) {
         if ($this->debugMode) {
             error_log(__CLASS__ . " The user's proxy ticket expired, prompt for login.");
         }
         // For now we will just re-throw the exception and let the WebModule that
         // is calling us handle prompting for re-authentication.
         throw $e;
     }
 }
All Usage Examples Of phpCAS::getProxiedService