Skip to content
Snippets Groups Projects
Select Git revision
  • ci-update
  • main default
  • keycloak-deprecate
  • remove-jwt-easy
  • v0.1.15
  • v0.1.14
  • v0.1.13
  • v0.1.12
  • v0.1.11
  • v0.1.10
  • v0.1.9
  • v0.1.8
  • v0.1.7
  • v0.1.6
  • v0.1.5
  • v0.1.4
  • v0.1.3
  • v0.1.2
  • v0.1.1
  • v0.1.0
20 results

BearerUserProviderTest.php

Blame
  • BearerUserProviderTest.php 1.63 KiB
    <?php
    
    declare(strict_types=1);
    
    namespace Dbp\Relay\AuthBundle\Tests\Authenticator;
    
    use ApiPlatform\Core\Bridge\Symfony\Bundle\Test\ApiTestCase;
    use Dbp\Relay\AuthBundle\Authenticator\BearerUserProvider;
    use Dbp\Relay\AuthBundle\OIDC\OIDProvider;
    use Dbp\Relay\AuthBundle\Tests\DummyUserSession;
    use Psr\Log\NullLogger;
    use Symfony\Component\Security\Core\Exception\AuthenticationException;
    
    class BearerUserProviderTest extends ApiTestCase
    {
        public function testWithIdentifier()
        {
            $oid = new OIDProvider();
            $udprov = new DummyUserSession('foo', ['role']);
            $prov = new BearerUserProvider($udprov, $oid);
            $user = $prov->loadUserByValidatedToken([]);
            $this->assertSame('foo', $user->getUserIdentifier());
            $this->assertSame(['role'], $user->getRoles());
        }
    
        public function testWithoutIdentifier()
        {
            $oid = new OIDProvider();
            $udprov = new DummyUserSession(null, ['role']);
            $prov = new BearerUserProvider($udprov, $oid);
            $user = $prov->loadUserByValidatedToken([]);
            $this->assertSame('', $user->getUserIdentifier());
            $this->assertSame(['role'], $user->getRoles());
        }
    
        public function testInvalidTokenLocal()
        {
            $oid = new OIDProvider();
            $udprov = new DummyUserSession('foo', ['role']);
            $prov = new BearerUserProvider($udprov, $oid);
            $prov->setLogger(new NullLogger());
            $prov->setConfig([
                'remote_validation' => false,
                'local_validation_leeway' => 0,
            ]);
            $this->expectException(AuthenticationException::class);
            $prov->loadUserByToken('mytoken');
        }
    }