Skip to content

Commit

Permalink
Added HttpAuthFilter.php
Browse files Browse the repository at this point in the history
  • Loading branch information
DaSourcerer committed Oct 14, 2013
1 parent 7ea888f commit 86c2c23
Showing 1 changed file with 55 additions and 0 deletions.
55 changes: 55 additions & 0 deletions HttpAuthFilter.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
<?php
/* Copyright 2013 Da:Sourcerer
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

/**
* HttpAuthFilter class
*
* @author Da:Sourcerer
* @version 1.0
* @license http://www.apache.org/licenses/LICENSE-2.0 ASL 2.0
*/
class HttpAuthFilter extends CFilter
{
public $authModel='LoginForm';
public $realm;

public function preFilter($filterChain)
{
if(!Yii::app()->user->isGuest)
return true;

if(!array_key_exists('PHP_AUTH_USER', $_SERVER))
$this->sendAuthHeaders();

$model=new $this->authModel;
$model->username=$_SERVER['PHP_AUTH_USER'];
$model->password=$_SERVER['PHP_AUTH_PW'];

if(!$model->login())
$this->sendAuthHeaders();

return true;
}

protected function sendAuthHeaders()
{
if($this->realm===null)
$this->realm=Yii::app()->name;
$this->realm=addcslashes($this->realm, '"\\');
header(sprintf('WWW-Authenticate: Basic realm="%s"', $this->realm));
throw new CHttpException(401);
}
}

0 comments on commit 86c2c23

Please sign in to comment.