X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=src%2FWallabag%2FCoreBundle%2FGuzzleSiteAuthenticator%2FGrabySiteConfigBuilder.php;h=90e00c62d9aaeff353e5f356ec6fcc4703e9d5db;hb=2a1ceb67b4400f46f4d3067e887ff54aa906f0a2;hp=94615687ea45418773c6cbc40da36670be0e8f0d;hpb=5a9bc00726ddaf7c8798d4932d0a8b7a38422670;p=github%2Fwallabag%2Fwallabag.git diff --git a/src/Wallabag/CoreBundle/GuzzleSiteAuthenticator/GrabySiteConfigBuilder.php b/src/Wallabag/CoreBundle/GuzzleSiteAuthenticator/GrabySiteConfigBuilder.php index 94615687..90e00c62 100644 --- a/src/Wallabag/CoreBundle/GuzzleSiteAuthenticator/GrabySiteConfigBuilder.php +++ b/src/Wallabag/CoreBundle/GuzzleSiteAuthenticator/GrabySiteConfigBuilder.php @@ -6,6 +6,7 @@ use BD\GuzzleSiteAuthenticator\SiteConfig\SiteConfig; use BD\GuzzleSiteAuthenticator\SiteConfig\SiteConfigBuilder; use Graby\SiteConfig\ConfigBuilder; use Psr\Log\LoggerInterface; +use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage; use Wallabag\CoreBundle\Repository\SiteCredentialRepository; use Wallabag\UserBundle\Entity\User; @@ -27,25 +28,27 @@ class GrabySiteConfigBuilder implements SiteConfigBuilder private $logger; /** - * @var User + * @var User|null */ private $currentUser; - /** * GrabySiteConfigBuilder constructor. * * @param ConfigBuilder $grabyConfigBuilder - * @param User $currentUser + * @param TokenStorage $token * @param SiteCredentialRepository $credentialRepository - * @param LoggerInterface $logger + * @param LoggerInterface $logger */ - public function __construct(ConfigBuilder $grabyConfigBuilder, User $currentUser, SiteCredentialRepository $credentialRepository, LoggerInterface $logger) + public function __construct(ConfigBuilder $grabyConfigBuilder, TokenStorage $token, SiteCredentialRepository $credentialRepository, LoggerInterface $logger) { $this->grabyConfigBuilder = $grabyConfigBuilder; $this->credentialRepository = $credentialRepository; - $this->currentUser = $currentUser; $this->logger = $logger; + + if ($token->getToken()) { + $this->currentUser = $token->getToken()->getUser(); + } } /** @@ -55,11 +58,14 @@ class GrabySiteConfigBuilder implements SiteConfigBuilder { // required by credentials below $host = strtolower($host); - if (substr($host, 0, 4) == 'www.') { + if ('www.' === substr($host, 0, 4)) { $host = substr($host, 4); } - $credentials = $this->credentialRepository->findOneByHostAndUser($host, $this->currentUser->getId()); + $credentials = null; + if ($this->currentUser) { + $credentials = $this->credentialRepository->findOneByHostAndUser($host, $this->currentUser->getId()); + } if (null === $credentials) { $this->logger->debug('Auth: no credentials available for host.', ['host' => $host]); @@ -82,7 +88,8 @@ class GrabySiteConfigBuilder implements SiteConfigBuilder $config = new SiteConfig($parameters); - // do not leak password in log + // do not leak usernames and passwords in log + $parameters['username'] = '**masked**'; $parameters['password'] = '**masked**'; $this->logger->debug('Auth: add parameters.', ['host' => $host, 'parameters' => $parameters]); @@ -100,13 +107,13 @@ class GrabySiteConfigBuilder implements SiteConfigBuilder */ protected function processExtraFields($extraFieldsStrings) { - if (!is_array($extraFieldsStrings)) { + if (!\is_array($extraFieldsStrings)) { return []; } $extraFields = []; foreach ($extraFieldsStrings as $extraField) { - if (strpos($extraField, '=') === false) { + if (false === strpos($extraField, '=')) { continue; }