/** * Refresh organization context in token * * @param GetResponseEvent $event */ public function onKernelRequest(GetResponseEvent $event) { $token = $this->context->getToken(); if ($token instanceof OrganizationContextTokenInterface) { $token->setOrganizationContext($this->manager->getOrganizationById($token->getOrganizationContext()->getId())); } }
/** * Handles basic authentication. * * @param GetResponseEvent $event A GetResponseEvent instance */ public function handle(GetResponseEvent $event) { $request = $event->getRequest(); if (false === ($username = $request->headers->get('PHP_AUTH_USER', false))) { return; } if (null !== ($token = $this->securityContext->getToken())) { if ($token instanceof OrganizationContextTokenInterface && $token->isAuthenticated() && $token->getUsername() === $username) { return; } } $this->logProcess($username); try { $organizationId = $request->headers->get('PHP_AUTH_ORGANIZATION'); if ($organizationId) { $authToken = new UsernamePasswordOrganizationToken($username, $request->headers->get('PHP_AUTH_PW'), $this->providerKey, $this->manager->getOrganizationById($organizationId)); } else { $authToken = new UsernamePasswordToken($username, $request->headers->get('PHP_AUTH_PW'), $this->providerKey); } $this->securityContext->setToken($this->authenticationManager->authenticate($authToken)); } catch (AuthenticationException $failed) { $token = $this->securityContext->getToken(); if ($token instanceof UsernamePasswordToken && $this->providerKey === $token->getProviderKey()) { $this->securityContext->setToken(null); } $this->logError($username, $failed->getMessage()); if ($this->ignoreFailure) { return; } $event->setResponse($this->authenticationEntryPoint->start($request, $failed)); } }
/** * Refresh organization context in token * * @param GetResponseEvent $event */ public function onKernelRequest(GetResponseEvent $event) { $token = $this->context->getToken(); if ($token instanceof OrganizationContextTokenInterface) { try { $token->setOrganizationContext($this->manager->getOrganizationById($token->getOrganizationContext()->getId())); } catch (NoResultException $e) { $token->setAuthenticated(false); } } }
/** * Refresh organization context in token * * @param GetResponseEvent $event */ public function onKernelRequest(GetResponseEvent $event) { $token = $this->tokenStorage->getToken(); if ($token instanceof OrganizationContextTokenInterface) { try { $token->setOrganizationContext($this->manager->getOrganizationById($token->getOrganizationContext()->getId())); if (!$token->getUser()->getOrganizations(true)->contains($token->getOrganizationContext())) { $exception = new OrganizationAccessDeniedException(); $exception->setOrganizationName($token->getOrganizationContext()->getName()); $exception->setToken($token); $event->getRequest()->getSession()->set(Security::AUTHENTICATION_ERROR, $exception); $this->tokenStorage->setToken(null); throw $exception; } } catch (NoResultException $e) { $token->setAuthenticated(false); } } }