/** * {@inheritdoc} */ protected function retrieveUser($username, UsernamePasswordToken $token) { $user = $token->getUser(); if ($user instanceof UserInterface) { return $user; } try { if ($this->getAuthService()->hasPartnerAuth()) { try { $user = $this->userProvider->loadUserByUsername($username); $bind = $this->getUserService()->getUserBindByTypeAndUserId($this->getAuthService()->getPartnerName(), $user['id']); if ($bind) { $partnerUser = $this->getAuthService()->checkPartnerLoginById($bind['fromId'], $token->getCredentials()); if ($partnerUser) { $user = $this->syncEmailAndPassword($user, $partnerUser, $token); } } } catch (UsernameNotFoundException $notFound) { if (filter_var($username, FILTER_VALIDATE_EMAIL)) { $partnerUser = $this->getAuthService()->checkPartnerLoginByEmail($username, $token->getCredentials()); } else { $partnerUser = $this->getAuthService()->checkPartnerLoginByNickname($username, $token->getCredentials()); } if (empty($partnerUser)) { throw $notFound; } $bind = $this->getUserService()->getUserBindByTypeAndFromId($this->getAuthService()->getPartnerName(), $partnerUser['id']); if ($bind) { $user = $this->getUserService()->getUser($bind['toId']); $user = $this->syncEmailAndPassword($user, $partnerUser, $token); } else { $setting = $this->getSettingService()->get('user_partner', array()); $email_filter = explode("\n", $setting['email_filter']); if (in_array($partnerUser['email'], $email_filter)) { $partnerUser['email'] = $partnerUser['id'] . '_dz_' . $this->getRandomString(5) . '@edusoho.net'; } $registration = array(); $registration['nickname'] = $partnerUser['nickname']; $registration['email'] = $partnerUser['email']; $registration['password'] = $token->getCredentials(); $registration['createdIp'] = $partnerUser['createdIp']; $registration['token'] = array('userId' => $partnerUser['id']); $this->getUserService()->register($registration, $this->getAuthService()->getPartnerName()); $user = $this->userProvider->loadUserByUsername($username); } } } else { $user = $this->userProvider->loadUserByUsername($username); } if (!$user instanceof UserInterface) { throw new AuthenticationServiceException('The user provider must return a UserInterface object.'); } return $user; } catch (UsernameNotFoundException $notFound) { $notFound->setUsername($username); throw $notFound; } catch (\Exception $repositoryProblem) { $ex = new AuthenticationServiceException($repositoryProblem->getMessage(), 0, $repositoryProblem); $ex->setToken($token); throw $ex; } }
/** * @param string $username */ private function retrieveUser($username, TokenInterface $token) { $user = $token->getUser(); if ($user instanceof UserInterface) { return $user; } try { return $this->getUser($username); } catch (UsernameNotFoundException $notFound) { $this->hideUserNotFoundExceptions($notFound, $username); } catch (\Exception $repositoryProblem) { $ex = new AuthenticationServiceException($repositoryProblem->getMessage(), 0, $repositoryProblem); $ex->setToken($token); throw $ex; } }
/** * {@inheritdoc} */ protected function retrieveUser($username, UsernamePasswordToken $token) { $user = $token->getUser(); if ($user instanceof UserInterface) { return $user; } try { $user = $this->userProvider->loadUserByUsername($username); return $user; } catch (UsernameNotFoundException $notFound) { throw $notFound; } catch (\Exception $repositoryProblem) { $e = new AuthenticationServiceException($repositoryProblem->getMessage(), (int) $repositoryProblem->getCode(), $repositoryProblem); $e->setToken($token); throw $e; } }
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; } } }
/** * {@inheritdoc} */ protected function retrieveUser($username, UsernamePasswordToken $token) { $user = $token->getUser(); if ($user instanceof UserInterface) { return $user; } try { $user = $this->userProvider->loadUserByUsername($username); if (!$user instanceof UserInterface) { throw new AuthenticationServiceException('The user provider must return a UserInterface object.'); } return $user; } catch (UsernameNotFoundException $notFound) { $notFound->setUsername($username); throw $notFound; } catch (\Exception $repositoryProblem) { $ex = new AuthenticationServiceException($repositoryProblem->getMessage(), 0, $repositoryProblem); $ex->setToken($token); throw $ex; } }