Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 21
App\Models\BasicAuth
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 3
42
0.00% covered (danger)
0.00%
0 / 21
 __construct
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 5
 authenticate
0.00% covered (danger)
0.00%
0 / 1
20
0.00% covered (danger)
0.00%
0 / 13
 setAuthHeaders
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 3
<?php
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
namespace App\Models;
/**
 * Description of BasicAuth
 *
 * @author lennartbinscheck
 */
class BasicAuth {
    private $users = [];
    private $serverPhpUserAuth;
    private $serverPhpAuthPw;
    public function __construct() {
        $this->serverPhpUserAuth = $_SERVER["PHP_AUTH_USER"];
        $this->serverPhpAuthPw = $_SERVER['PHP_AUTH_PW'];
        $this->users = ["björn" => "björn", "lennart" => "lennart"];
        $this->authenticate();
    }
    private function authenticate() {
        if (!isset($this->serverPhpUserAuth)) {
            $this->setAuthHeaders();
            echo "Credentials are required to access the webpage!";
            exit;
        } else {
            if (!array_key_exists($this->serverPhpUserAuth, $this->users) ||
                    $this->users[$this->serverPhpUserAuth] !== $this->serverPhpAuthPw) {
                $this->setAuthHeaders();
                echo "Improper credentials";
                exit;
            }
        }
    }
    private function setAuthHeaders() {
        header('WWW-Authenticate: Basic realm="Azubis Only"');
        header('HTTP/1.0 401 Unauthorized');
    }
}