コード例 #1
0
 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;
 }
コード例 #2
0
 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);
     }
 }
コード例 #3
0
 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);
 }
コード例 #4
0
ファイル: ChoiceAuthProvider.php プロジェクト: nehlsen/fdadsb
 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;
 }
コード例 #5
0
 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;
         }
     }
 }
コード例 #6
0
 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);
 }
コード例 #7
0
 /**
  * @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);
 }
コード例 #8
0
 /**
  * @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;
 }
コード例 #9
0
ファイル: LegacyToken.php プロジェクト: emodric/LegacyBridge
 public function getAttributes()
 {
     return $this->innerToken->getAttributes();
 }