Skip to content
Snippets Groups Projects
Select Git revision
  • 4be86c89f06bf3ad45fdbb55e2f12be79be4f90b
  • main default protected
  • renovate/lock-file-maintenance
  • demo protected
  • person-select-custom
  • dbp-translation-component
  • icon-set-mapping
  • port-i18next-parser
  • remove-sentry
  • favorites-and-recent-files
  • revert-6c632dc6
  • lit2
  • advertisement
  • wc-part
  • automagic
  • publish
  • wip-cleanup
  • demo-file-handling
18 results

errorreport.js

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');
        }
    }