/** * Tries to retrieve the user from current token. * If the token does not exist, AnonymousUser is returned. * * @throws FirewallException * @return bool|\Webiny\Component\Security\User\UserAbstract */ public function getUser() { if ($this->userAuthenticated) { return $this->user; } try { // get token $this->user = new AnonymousUser(); $tokenData = $this->getToken()->getUserFromToken(); if (!$tokenData) { $this->eventManager()->fire(SecurityEvent::NOT_AUTHENTICATED, new SecurityEvent($this->user)); $this->userAuthenticated = false; return $this->user; } else { $this->user->populate($tokenData->getUsername(), '', $tokenData->getRoles(), true); $this->user->setAuthProviderName($tokenData->getAuthProviderName()); $this->setUserRoles(); $this->userAuthenticated = true; return $this->user; } } catch (\Exception $e) { $this->userAuthenticated = true; throw new FirewallException($e->getMessage()); } }