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;
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();
+ }
}
/**
{
// 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]);
$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]);
*/
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;
}