39 lines
902 B
PHP
39 lines
902 B
PHP
|
<?php defined('SYSPATH') OR die('No direct script access.');
|
||
|
|
||
|
class Kohana_HTTP_Exception_401 extends HTTP_Exception_Expected {
|
||
|
|
||
|
/**
|
||
|
* @var integer HTTP 401 Unauthorized
|
||
|
*/
|
||
|
protected $_code = 401;
|
||
|
|
||
|
/**
|
||
|
* Specifies the WWW-Authenticate challenge.
|
||
|
*
|
||
|
* @param string $challenge WWW-Authenticate challenge (eg `Basic realm="Control Panel"`)
|
||
|
*/
|
||
|
public function authenticate($challenge = NULL)
|
||
|
{
|
||
|
if ($challenge === NULL)
|
||
|
return $this->headers('www-authenticate');
|
||
|
|
||
|
$this->headers('www-authenticate', $challenge);
|
||
|
|
||
|
return $this;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Validate this exception contains everything needed to continue.
|
||
|
*
|
||
|
* @throws Kohana_Exception
|
||
|
* @return bool
|
||
|
*/
|
||
|
public function check()
|
||
|
{
|
||
|
if ($this->headers('www-authenticate') === NULL)
|
||
|
throw new Kohana_Exception('A \'www-authenticate\' header must be specified for a HTTP 401 Unauthorized');
|
||
|
|
||
|
return TRUE;
|
||
|
}
|
||
|
}
|