/** * Constructor. * * @param UserProviderInterface $userProvider An UserProviderInterface instance * @param PasswordEncoderInterface $encoder A PasswordEncoderInterface instance * @param Cache $nonceCache The nonce cache * @param int $lifetime The lifetime * @param string $dateFormat The date format */ public function __construct(UserProviderInterface $userProvider, $providerKey, PasswordEncoderInterface $encoder, Cache $nonceCache, $lifetime = 300, $dateFormat = '/^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$/') { if (empty($providerKey)) { throw new \InvalidArgumentException('$providerKey must not be empty.'); } parent::__construct($userProvider, $providerKey, $encoder, $nonceCache, $lifetime, $dateFormat); $this->userProvider = $userProvider; }
/** * {@inheritdoc} */ public function authenticate(TokenInterface $token) { /** @var User $user */ $user = $this->getUserProvider()->loadUserByUsername($token->getUsername()); if ($user) { $secret = $this->getSecret($user); if ($secret instanceof PersistentCollection) { $validUserApi = $this->getValidUserApi($token, $secret, $user); if ($validUserApi) { $authenticatedToken = new WsseToken($user->getRoles()); $authenticatedToken->setUser($user); $authenticatedToken->setOrganizationContext($validUserApi->getOrganization()); $authenticatedToken->setAuthenticated(true); return $authenticatedToken; } } else { return parent::authenticate($token); } } throw new AuthenticationException('WSSE authentication failed.'); }
/** * Constructor. * * @param UserProviderInterface $userProvider An UserProviderInterface instance * @param PasswordEncoderInterface $encoder A PasswordEncoderInterface instance * @param Cache $nonceCache Cache instance * @param int $lifetime The lifetime, in seconds */ public function __construct(UserProviderInterface $userProvider, PasswordEncoderInterface $encoder, Cache $nonceCache, $lifetime = 300) { parent::__construct($userProvider, $encoder, $nonceCache, $lifetime); $this->userProvider = $userProvider; }
/** * @test * @dataProvider providerSupports * @param $token * @param $expected */ public function supports($token, $expected) { $provider = new Provider($this->userProvider, 'someproviderkey', $this->encoder, $this->nonceCache); $this->assertEquals($expected, $provider->supports($token)); }