"Fossies" - the Fresh Open Source Software Archive

Member "mrbs-1.9.2/web/lib/CAS/ProxiedService/Abstract.php" (14 Oct 2020, 4737 Bytes) of package /linux/www/mrbs-1.9.2.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) PHP source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "Abstract.php" see the Fossies "Dox" file reference documentation.

    1 <?php
    2 
    3 /**
    4  * Licensed to Jasig under one or more contributor license
    5  * agreements. See the NOTICE file distributed with this work for
    6  * additional information regarding copyright ownership.
    7  *
    8  * Jasig licenses this file to you under the Apache License,
    9  * Version 2.0 (the "License"); you may not use this file except in
   10  * compliance with the License. You may obtain a copy of the License at:
   11  *
   12  * http://www.apache.org/licenses/LICENSE-2.0
   13  *
   14  * Unless required by applicable law or agreed to in writing, software
   15  * distributed under the License is distributed on an "AS IS" BASIS,
   16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   17  * See the License for the specific language governing permissions and
   18  * limitations under the License.
   19  *
   20  * PHP Version 5
   21  *
   22  * @file     CAS/ProxiedService/Abstract.php
   23  * @category Authentication
   24  * @package  PhpCAS
   25  * @author   Adam Franco <afranco@middlebury.edu>
   26  * @license  http://www.apache.org/licenses/LICENSE-2.0  Apache License 2.0
   27  * @link     https://wiki.jasig.org/display/CASC/phpCAS
   28  */
   29 
   30 /**
   31  * This class implements common methods for ProxiedService implementations included
   32  * with phpCAS.
   33  *
   34  * @class    CAS_ProxiedService_Abstract
   35  * @category Authentication
   36  * @package  PhpCAS
   37  * @author   Adam Franco <afranco@middlebury.edu>
   38  * @license  http://www.apache.org/licenses/LICENSE-2.0  Apache License 2.0
   39  * @link     https://wiki.jasig.org/display/CASC/phpCAS
   40  */
   41 abstract class CAS_ProxiedService_Abstract
   42 implements CAS_ProxiedService, CAS_ProxiedService_Testable
   43 {
   44 
   45     /**
   46      * The proxy ticket that can be used when making service requests.
   47      * @var string $_proxyTicket;
   48      */
   49     private $_proxyTicket;
   50 
   51     /**
   52      * Register a proxy ticket with the Proxy that it can use when making requests.
   53      *
   54      * @param string $proxyTicket proxy ticket
   55      *
   56      * @return void
   57      * @throws InvalidArgumentException If the $proxyTicket is invalid.
   58      * @throws CAS_OutOfSequenceException If called after a proxy ticket has
   59      *         already been initialized/set.
   60      */
   61     public function setProxyTicket ($proxyTicket)
   62     {
   63         if (empty($proxyTicket)) {
   64             throw new CAS_InvalidArgumentException(
   65                 'Trying to initialize with an empty proxy ticket.'
   66             );
   67         }
   68         if (!empty($this->_proxyTicket)) {
   69             throw new CAS_OutOfSequenceException(
   70                 'Already initialized, cannot change the proxy ticket.'
   71             );
   72         }
   73         $this->_proxyTicket = $proxyTicket;
   74     }
   75 
   76     /**
   77      * Answer the proxy ticket to be used when making requests.
   78      *
   79      * @return string
   80      * @throws CAS_OutOfSequenceException If called before a proxy ticket has
   81      * already been initialized/set.
   82      */
   83     protected function getProxyTicket ()
   84     {
   85         if (empty($this->_proxyTicket)) {
   86             throw new CAS_OutOfSequenceException(
   87                 'No proxy ticket yet. Call $this->initializeProxyTicket() to aquire the proxy ticket.'
   88             );
   89         }
   90 
   91         return $this->_proxyTicket;
   92     }
   93 
   94     /**
   95      * @var CAS_Client $_casClient;
   96      */
   97     private $_casClient;
   98 
   99     /**
  100      * Use a particular CAS_Client->initializeProxiedService() rather than the
  101      * static phpCAS::initializeProxiedService().
  102      *
  103      * This method should not be called in standard operation, but is needed for unit
  104      * testing.
  105      *
  106      * @param CAS_Client $casClient cas client
  107      *
  108      * @return void
  109      * @throws CAS_OutOfSequenceException If called after a proxy ticket has
  110      * already been initialized/set.
  111      */
  112     public function setCasClient (CAS_Client $casClient)
  113     {
  114         if (!empty($this->_proxyTicket)) {
  115             throw new CAS_OutOfSequenceException(
  116                 'Already initialized, cannot change the CAS_Client.'
  117             );
  118         }
  119 
  120         $this->_casClient = $casClient;
  121     }
  122 
  123     /**
  124      * Fetch our proxy ticket.
  125      *
  126      * Descendent classes should call this method once their service URL is available
  127      * to initialize their proxy ticket.
  128      *
  129      * @return void
  130      * @throws CAS_OutOfSequenceException If called after a proxy ticket has
  131      * already been initialized.
  132      */
  133     protected function initializeProxyTicket()
  134     {
  135         if (!empty($this->_proxyTicket)) {
  136             throw new CAS_OutOfSequenceException(
  137                 'Already initialized, cannot initialize again.'
  138             );
  139         }
  140         // Allow usage of a particular CAS_Client for unit testing.
  141         if (empty($this->_casClient)) {
  142             phpCAS::initializeProxiedService($this);
  143         } else {
  144             $this->_casClient->initializeProxiedService($this);
  145         }
  146     }
  147 
  148 }
  149 ?>