From 0707d13bb93b33200fdc3c79333a1c8176f005a2 Mon Sep 17 00:00:00 2001 From: Gregor Harlan Date: Tue, 29 Aug 2017 19:06:07 +0200 Subject: [PATCH 1/3] add log message containing user and impersonator_user --- .../Security/Http/Firewall/ContextListener.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/Symfony/Component/Security/Http/Firewall/ContextListener.php b/src/Symfony/Component/Security/Http/Firewall/ContextListener.php index 97abd4dce5622..c4224b8362804 100644 --- a/src/Symfony/Component/Security/Http/Firewall/ContextListener.php +++ b/src/Symfony/Component/Security/Http/Firewall/ContextListener.php @@ -23,6 +23,7 @@ use Symfony\Component\Security\Core\Authentication\Token\TokenInterface; use Symfony\Component\Security\Core\Exception\UsernameNotFoundException; use Symfony\Component\Security\Core\Exception\UnsupportedUserException; +use Symfony\Component\Security\Core\Role\SwitchUserRole; use Symfony\Component\Security\Core\User\UserInterface; use Symfony\Component\Security\Core\User\UserProviderInterface; use Symfony\Component\EventDispatcher\EventDispatcherInterface; @@ -96,6 +97,22 @@ public function handle(GetResponseEvent $event) if ($token instanceof TokenInterface) { $token = $this->refreshUser($token); + + if (null !== $this->logger) { + $impersonatorUser = null; + foreach ($token->getRoles() as $role) { + if ($role instanceof SwitchUserRole) { + $impersonatorUser = $role->getSource()->getUsername(); + break; + } + } + + $this->logger->debug('Refreshed existing security token.', array( + 'token_class' => get_class($token), + 'user' => $token->getUsername(), + 'impersonator_user' => $impersonatorUser, + )); + } } elseif (null !== $token) { if (null !== $this->logger) { $this->logger->warning('Expected a security token from the session, got something else.', array('key' => $this->sessionKey, 'received' => $token)); From 2c90db8b299c016ba826cc5774ff4440a7a4b5dd Mon Sep 17 00:00:00 2001 From: Gregor Harlan Date: Wed, 30 Aug 2017 11:13:01 +0200 Subject: [PATCH 2/3] reduced log messages --- .../Http/Firewall/ContextListener.php | 35 +++++++++---------- 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/src/Symfony/Component/Security/Http/Firewall/ContextListener.php b/src/Symfony/Component/Security/Http/Firewall/ContextListener.php index c4224b8362804..cebd5347ad256 100644 --- a/src/Symfony/Component/Security/Http/Firewall/ContextListener.php +++ b/src/Symfony/Component/Security/Http/Firewall/ContextListener.php @@ -92,27 +92,14 @@ public function handle(GetResponseEvent $event) $token = unserialize($token); if (null !== $this->logger) { - $this->logger->debug('Read existing security token from the session.', array('key' => $this->sessionKey)); + $this->logger->debug('Read existing security token from the session.', array( + 'key' => $this->sessionKey, + 'token_class' => is_object($token) ? get_class($token) : null, + )); } if ($token instanceof TokenInterface) { $token = $this->refreshUser($token); - - if (null !== $this->logger) { - $impersonatorUser = null; - foreach ($token->getRoles() as $role) { - if ($role instanceof SwitchUserRole) { - $impersonatorUser = $role->getSource()->getUsername(); - break; - } - } - - $this->logger->debug('Refreshed existing security token.', array( - 'token_class' => get_class($token), - 'user' => $token->getUsername(), - 'impersonator_user' => $impersonatorUser, - )); - } } elseif (null !== $token) { if (null !== $this->logger) { $this->logger->warning('Expected a security token from the session, got something else.', array('key' => $this->sessionKey, 'received' => $token)); @@ -186,7 +173,19 @@ protected function refreshUser(TokenInterface $token) $token->setUser($refreshedUser); if (null !== $this->logger) { - $this->logger->debug('User was reloaded from a user provider.', array('username' => $refreshedUser->getUsername(), 'provider' => get_class($provider))); + $impersonatorUsername = null; + foreach ($token->getRoles() as $role) { + if ($role instanceof SwitchUserRole) { + $impersonatorUsername = $role->getSource()->getUsername(); + break; + } + } + + $this->logger->debug('User was reloaded from a user provider.', array( + 'provider' => get_class($provider), + 'username' => $refreshedUser->getUsername(), + 'impersonator_username' => $impersonatorUsername, + )); } return $token; From 7de58d4f26cbdd37d0d8b609175a1a7e116586d7 Mon Sep 17 00:00:00 2001 From: Gregor Harlan Date: Thu, 31 Aug 2017 14:05:13 +0200 Subject: [PATCH 3/3] avoid empty impersonator_username --- .../Security/Http/Firewall/ContextListener.php | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/Symfony/Component/Security/Http/Firewall/ContextListener.php b/src/Symfony/Component/Security/Http/Firewall/ContextListener.php index cebd5347ad256..cd26d83ef7291 100644 --- a/src/Symfony/Component/Security/Http/Firewall/ContextListener.php +++ b/src/Symfony/Component/Security/Http/Firewall/ContextListener.php @@ -173,19 +173,16 @@ protected function refreshUser(TokenInterface $token) $token->setUser($refreshedUser); if (null !== $this->logger) { - $impersonatorUsername = null; + $context = array('provider' => get_class($provider), 'username' => $refreshedUser->getUsername()); + foreach ($token->getRoles() as $role) { if ($role instanceof SwitchUserRole) { - $impersonatorUsername = $role->getSource()->getUsername(); + $context['impersonator_username'] = $role->getSource()->getUsername(); break; } } - $this->logger->debug('User was reloaded from a user provider.', array( - 'provider' => get_class($provider), - 'username' => $refreshedUser->getUsername(), - 'impersonator_username' => $impersonatorUsername, - )); + $this->logger->debug('User was reloaded from a user provider.', $context); } return $token; pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy