Ejemplo n.º 1
0
 */
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . "vendor" . DIRECTORY_SEPARATOR . "autoload.php";
use RestService\Utils\Config;
use RestService\Utils\Logger;
use RestService\Http\HttpRequest;
use RestService\Http\IncomingHttpRequest;
use OAuth\Authorize;
use RestService\Http\HttpResponse;
$logger = NULL;
$request = NULL;
$response = NULL;
try {
    $config = new Config(dirname(__DIR__) . DIRECTORY_SEPARATOR . "config" . DIRECTORY_SEPARATOR . "oauth.ini");
    $logger = new Logger($config->getSectionValue('Log', 'logLevel'), $config->getValue('serviceName'), $config->getSectionValue('Log', 'logFile'), $config->getSectionValue('Log', 'logMail', FALSE));
    $a = new Authorize($config, $logger);
    $request = HttpRequest::fromIncomingHttpRequest(new IncomingHttpRequest());
    $response = $a->handleRequest($request);
} catch (Exception $e) {
    // internal server error, inform resource owner through browser
    $response = new HttpResponse(500);
    $loader = new \Twig_Loader_Filesystem(dirname(__DIR__) . DIRECTORY_SEPARATOR . "views");
    $twig = new \Twig_Environment($loader);
    $output = $twig->render("error.twig", array("statusCode" => $response->getStatusCode(), "statusReason" => $response->getStatusReason(), "errorMessage" => $e->getMessage()));
    $response->setContent($output);
    if (NULL !== $logger) {
        $logger->logFatal($e->getMessage() . PHP_EOL . $request . PHP_EOL . $response);
    }
}
if (NULL !== $logger) {
    $logger->logDebug($request);
}
 public function testNormalization()
 {
     $_SERVER['SERVER_NAME'] = "foo.example.org";
     $_SERVER['SERVER_PORT'] = 80;
     $_SERVER['REQUEST_URI'] = "/resource";
     $_SERVER['REQUEST_METHOD'] = "GET";
     $_SERVER['HTTP_AUTHORIZATION'] = 'Bearer xyz';
     $_SERVER['HTTP_USER_AGENT'] = 'Foo/Bar 1.0.0';
     $h = HttpRequest::fromIncomingHttpRequest(new IncomingHttpRequest());
     $this->assertEquals("Bearer xyz", $h->getHeader("AuThOrIzAtIoN"));
     $this->assertEquals("Bearer xyz", $h->getHeader("HTTP-AUTHORIZATION"));
     $this->assertEquals("Bearer xyz", $h->getHeader("HTTP_authorization"));
     $this->assertEquals("Foo/Bar 1.0.0", $h->getHeader("HTTP_USER_AGENT"));
     $this->assertEquals("Foo/Bar 1.0.0", $h->getHeader("USER_AGENT"));
     $this->assertEquals("Foo/Bar 1.0.0", $h->getHeader("USER-AGENT"));
 }