public function authenticateToken(TokenInterface $token, UserProviderInterface $userProvider, $providerKey) { $username = $token->getUsername(); $user = $userProvider->loadUserByUsername($username); if ($user instanceof SamlUserInterface) { $user->setSamlAttributes($token->getAttributes()); } $authenticatedToken = new SamlToken($user, $user->getRoles()); $authenticatedToken->setAttributes($token->getAttributes()); return $authenticatedToken; }
public function authenticate(TokenInterface $token) { try { $localUser = $this->userProvider->loadUserByUsername($token->getUser()); $authorizedToken = new ConnectToken($localUser, $token->getAccessToken(), $token->getApiUser(), $this->providerKey, $token->getScope(), $localUser->getRoles()); $authorizedToken->setAttributes($token->getAttributes()); return $authorizedToken; } catch (\Exception $repositoryProblem) { throw new AuthenticationServiceException($repositoryProblem->getMessage(), $token, 0, $repositoryProblem); } }
public function createUser(TokenInterface $token) { $username = $token->getUser(); $attributes = $token->getAttributes(); if (is_null($token->getRoles())) { $roles = isset($attributes['roles']) ? $attributes['roles'] : null; unset($attributes['roles']); } else { $roles = $token->getRoles(); } return new SpawnedUser($username, $attributes, $roles); }
public function authenticate(TokenInterface $token) { $user = $this->userProvider->loadUserByUsername($token->getUsername()); if (!$user) { throw new AuthenticationException('The authentication failed.'); } $authenticatedToken = new ChoiceAuthToken($user->getRoles()); $authenticatedToken->setAttributes($token->getAttributes()); $authenticatedToken->setUser($user); $authenticatedToken->setProviderKey($this->providerKey); $authenticatedToken->setAuthenticated(true); return $authenticatedToken; }
public function authenticate(TokenInterface $token) { try { $localUser = $this->userProvider->loadUserByUsername($token->getUser()); $authorizedToken = new ConnectToken($localUser, $token->getAccessToken(), $token->getApiUser(), $this->providerKey, $token->getScope(), $localUser->getRoles()); $authorizedToken->setAttributes($token->getAttributes()); return $authorizedToken; } catch (\Exception $repositoryProblem) { if (!method_exists('Symfony\\Component\\Security\\Core\\Exception\\AuthenticationServiceException', 'setToken')) { throw new AuthenticationServiceException($repositoryProblem->getMessage(), $token, 0, $repositoryProblem); } else { $e = new AuthenticationServiceException($repositoryProblem->getMessage(), 0, $repositoryProblem); $e->setToken($token); throw $e; } } }
function let(UserProviderInterface $userProvider, LdapUserChecker $userChecker, LdapManager $ldap, TokenInterface $token, LdapUser $user, LdapConnectionInterface $connection, AuthenticationResponse $response, \Symfony\Component\EventDispatcher\EventDispatcherInterface $dispatcher) { $this->operation = (new AuthenticationOperation())->setUsername('foo')->setPassword('bar'); $token->getUsername()->willReturn('foo'); $token->getCredentials()->willReturn('bar'); $token->hasAttribute('ldap_domain')->willReturn(false); $token->getAttributes()->willReturn([]); $token->getUser()->willReturn($user); $userProvider->loadUserByUsername('foo')->willReturn($user); $connection->getConfig()->willReturn(new DomainConfiguration('foo.bar')); $connection->execute($this->operation)->willReturn($response); $response->isAuthenticated()->willReturn(true); $ldap->getConnection()->willReturn($connection); $ldap->getDomainContext()->willReturn('foo.bar'); $user->getUsername()->willReturn('foo'); $user->getRoles()->willReturn(['ROLE_USER']); $user->isAccountNonLocked()->willReturn(true); $user->isEnabled()->willReturn(true); $user->isAccountNonExpired()->willReturn(true); $user->isCredentialsNonExpired()->willReturn(true); $this->beConstructedWith('restricted', true, $userProvider, new LdapUserChecker(), $ldap, $dispatcher); }
/** * @param \Symfony\Component\Security\Core\User\UserProviderInterface $userProvider * @param \LdapTools\Bundle\LdapToolsBundle\Security\User\LdapUserChecker $userChecker * @param \LdapTools\LdapManager $ldap * @param \Symfony\Component\Security\Core\Authentication\Token\TokenInterface $token * @param \LdapTools\Bundle\LdapToolsBundle\Security\User\LdapUser $user * @param \LdapTools\Connection\LdapConnectionInterface $connection * @param \LdapTools\Operation\AuthenticationResponse $response * @param \Symfony\Component\EventDispatcher\EventDispatcherInterface $dispatcher */ function let($userProvider, $userChecker, $ldap, $token, $user, $connection, $response, $dispatcher) { $this->userProvider = $userProvider; $this->userChecker = $userChecker; $this->ldap = $ldap; $this->token = $token; $this->user = $user; $this->connection = $connection; $this->operation = (new AuthenticationOperation())->setUsername('foo')->setPassword('bar'); $this->response = $response; $this->dispatcher = $dispatcher; $token->getUsername()->willReturn('foo'); $token->getCredentials()->willReturn('bar'); $token->hasAttribute('ldap_domain')->willReturn(false); $token->getAttributes()->willReturn([]); $this->userProvider->loadUserByUsername('foo')->willReturn($user); $this->connection->getConfig()->willReturn(new DomainConfiguration('foo.bar')); $this->connection->execute($this->operation)->willReturn($this->response); $this->response->isAuthenticated()->willReturn(true); $this->ldap->getConnection()->willReturn($this->connection); $this->ldap->getDomainContext()->willReturn('foo.bar'); $this->user->getUsername()->willReturn('foo'); $this->user->getRoles()->willReturn(['ROLE_USER']); $this->user->isAccountNonLocked()->willReturn(true); $this->user->isEnabled()->willReturn(true); $this->user->isAccountNonExpired()->willReturn(true); $this->user->isCredentialsNonExpired()->willReturn(true); $this->beConstructedWith('restricted', true, $this->userProvider, new LdapUserChecker(), $this->ldap, $this->dispatcher); }
/** * @param UserInterface $user * @param TokenInterface $token * @return UsernamePasswordToken */ protected function doAuthentication(UserInterface $user, TokenInterface $token) { $auth = (new AuthenticationOperation())->setUsername($user->getUsername())->setPassword($token->getCredentials()); /** @var AuthenticationResponse $response */ $response = $this->ldap->getConnection()->execute($auth); if (!$response->isAuthenticated()) { $this->userChecker->checkLdapErrorCode($user, $response->getErrorCode(), $this->ldap->getConnection()->getConfig()->getLdapType()); throw new BadCredentialsException($response->getErrorMessage(), $response->getErrorCode()); } $this->dispatcher->dispatch(LdapLoginEvent::SUCCESS, new LdapLoginEvent($user, $token)); $newToken = new UsernamePasswordToken($user, null, $this->providerKey, $user->getRoles()); $newToken->setAttributes($token->getAttributes()); return $newToken; }
public function getAttributes() { return $this->innerToken->getAttributes(); }