public function test_isAuthenticated_returns_true_when_cookie_present_but_route_not_secured()
 {
     $request = $this->getMockRequest();
     $request->expects($this->any())->method('getPath')->will($this->returnValue('/doesNotRequireAuth'));
     $slim = $this->getMockSlim();
     $slim->expects($this->once())->method('request')->will($this->returnValue($request));
     $this->cookieReturnsValidCookie($slim);
     $service = new SlimAuthenticationService($slim, $this->userRepo, $this->userAuth);
     $service->addRoute('admin');
     $this->assertTrue($service->isAuthenticated('cookiename'));
 }
Esempio n. 2
0
<?php

define('AUTHCOOKIE', 'superblorg');
use Infrastructure\Persistence\Doctrine\UnitOfWork;
use Presentation\Services\SlimAuthenticationService;
use Infrastructure\Persistence\Doctrine\UserRepository;
use Domain\UserAuthenticator;
use Domain\PasswordHasher;
$app = new Slim(array('view' => 'TwigView', 'templates.path' => dirname(dirname(__FILE__)) . DS . 'Views'));
//common objects
$unitOfWork = new UnitOfWork();
$userRepo = new UserRepository();
$authService = new SlimAuthenticationService($app, $userRepo, new UserAuthenticator($userRepo, new PasswordHasher()));
$app->hook('slim.before', function () use($app, $authService, $unitOfWork) {
    if (!$authService->isAuthenticated(AUTHCOOKIE)) {
        $app->response()->redirect('/login', 303);
    }
    if ($user = $authService->getLoggedInUser(AUTHCOOKIE)) {
        $authService->regenerateUserCookie(AUTHCOOKIE, $user);
    }
    $unitOfWork->begin();
});
$app->hook('slim.after', function () use($app, $unitOfWork) {
    $unitOfWork->commit();
});