/** * {@inheritdoc} */ protected function checkAuthentication(UserInterface $user, UsernamePasswordToken $token) { $username = $token->getUsername(); $password = $token->getCredentials(); try { $username = $this->ldap->escape($username, '', LDAP_ESCAPE_DN); $dn = str_replace('{username}', $username, $this->dnString); $this->ldap->bind($dn, $password); } catch (ConnectionException $e) { throw new BadCredentialsException('The presented password is invalid.'); } }
public function attemptAuthentication(Request $request) { if ($this->options['post_only'] && 'post' !== strtolower($request->getMethod())) { if (null !== $this->logger) { $this->logger->debug(sprintf('Authentication method not supported: %s.', $request->getMethod())); } return null; } if (null !== $this->csrfProvider) { $csrfToken = $request->get($this->options['csrf_parameter'], null, true); if (false === $this->csrfProvider->isCsrfTokenValid($this->options['intention'], $csrfToken)) { throw new InvalidCsrfTokenException('Invalid CSRF token.'); } } $username = trim($request->get($this->options['username_parameter'], null, true)); $password = $request->get($this->options['password_parameter'], null, true); $request->getSession()->set(SecurityContextInterface::LAST_USERNAME, $username); $token = new UsernamePasswordToken($username, $password, $this->providerKey); $this->logger->debug(sprintf('Attempting to authenticate user: %s.', $token->getUsername())); $this->logger->debug(sprintf('Requested path is: %s.', $request->getUri())); return $this->authenticationManager->authenticate($token); }
/** * Update user using imap data source * * @param \Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken $token * @return \Symfony\Component\Security\Core\User\UserInterface */ public function updateUser(UsernamePasswordToken $token) { $user = $this->loadUserByUsername($token->getUsername()); $this->setUserData($user, $token); return $user; }
/** * @param \Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken $token * @return string */ public function getSessionKey(UsernamePasswordToken $token) { return sprintf('sonata_user_google_authenticator_%s_%s', $token->getProviderKey(), $token->getUsername()); }
/** * Authenticates the user via ldap * * @param \Symfony\Component\Security\Core\User\UserInterface $user * @param \Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken $token * @return boolean $passwordValid * @throws BadCredentialsException */ protected function checkAuthenticationLdap(UserInterface $user, UsernamePasswordToken $token) { $currentUser = $token->getUser(); // Due to ldap restrinctions we expect a user authenticated once the token // contains a user object if ($currentUser instanceof UserInterface) { return true; } try { $this->ldapManager->bind($token->getUsername(), $token->getCredentials()); $passwordValid = (bool) $this->ldapManager->getBoundUser(); if (null !== $this->logger && !$token->isAuthenticated()) { $this->logger->info("[LdapAuthenticator] Ldap authentication successful.", array('user' => $this->ldapManager->getBoundUser())); } return $passwordValid; } catch (\Zend\Ldap\Exception\LdapException $e) { throw new BadCredentialsException('Ldap authentication failed', 0, $e); } }