1<?php 2 3namespace Sabre\HTTP\Auth; 4 5use Sabre\HTTP\RequestInterface; 6use Sabre\HTTP\ResponseInterface; 7 8/** 9 * HTTP Authentication base class. 10 * 11 * This class provides some common functionality for the various base classes. 12 * 13 * @copyright Copyright (C) fruux GmbH (https://fruux.com/) 14 * @author Evert Pot (http://evertpot.com/) 15 * @license http://sabre.io/license/ Modified BSD License 16 */ 17abstract class AbstractAuth { 18 19 /** 20 * Authentication realm 21 * 22 * @var string 23 */ 24 protected $realm; 25 26 /** 27 * Request object 28 * 29 * @var RequestInterface 30 */ 31 protected $request; 32 33 /** 34 * Response object 35 * 36 * @var ResponseInterface 37 */ 38 protected $response; 39 40 /** 41 * Creates the object 42 * 43 * @param string $realm 44 * @return void 45 */ 46 function __construct($realm = 'SabreTooth', RequestInterface $request, ResponseInterface $response) { 47 48 $this->realm = $realm; 49 $this->request = $request; 50 $this->response = $response; 51 52 } 53 54 /** 55 * This method sends the needed HTTP header and statuscode (401) to force 56 * the user to login. 57 * 58 * @return void 59 */ 60 abstract function requireLogin(); 61 62 /** 63 * Returns the HTTP realm 64 * 65 * @return string 66 */ 67 function getRealm() { 68 69 return $this->realm; 70 71 } 72 73} 74