Ejemplo n.º 1
0
 /**
  * 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));
     }
 }
Ejemplo n.º 3
0
 /**
  * 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);
         }
     }
 }
Ejemplo n.º 4
0
 /**
  * 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);
         }
     }
 }