Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Symfony\Config\Security\ProviderConfig broken during cache:clear #50713

Copy link
Copy link
Closed
@k0d3r1s

Description

@k0d3r1s
Issue body actions

Symfony version(s) affected

6.3.0

Description

image
Sometimes during cache:clear there is an error thrown about Symfony\Config\Security\ProviderConfig missing an entity method

How to reproduce

This is a tricky part as it is not happening every time but on random occasions.
Possible reproduction:

  1. have an entity config part in security.php config
  2. remove var/cache directory
  3. run bin/console cache:clear

Possible Solution

No response

Additional Context

php: 8.2.7

my config/packages/security.php:

<?php declare(strict_types = 1);

use App\Constants\Enum\Environment;
use App\Constants\Enum\Role;
use App\Entity\User;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symfony\Component\Security\Core\Authorization\Voter\AuthenticatedVoter;
use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
use Symfony\Config\SecurityConfig;

return static function (SecurityConfig $config, ContainerConfigurator $container): void {
    $config
        ->passwordHasher(PasswordAuthenticatedUserInterface::class, 'auto');

    $config
        ->provider('user_provider')
            ->entity()
                ->class(User::class)
                ->property('email');

    $config
        ->roleHierarchy(Role::ROLE_ADMIN->value, 'ROLE_ALLOWED_TO_SWITCH');

    $config
        ->accessControl()
        ->path('^/api/efconnect')
        ->roles(Role::ROLE_ADMIN->value);

    $config
        ->accessControl()
        ->path('^/api/elfinder')
        ->roles(Role::ROLE_ADMIN->value);

    $config
        ->accessControl()
        ->path('^/glide')
        ->roles(Role::ROLE_ADMIN->value);

    $config
        ->accessControl()
            ->path('^/')
            ->roles(AuthenticatedVoter::PUBLIC_ACCESS);

    $config
        ->firewall(Environment::DEV->value)
        ->pattern('/(_(wdt|profiler)|css|images|js|map|png|jpe?g|gif|bmp|ico|svg)/')
        ->security(false)
        ->lazy(true);

    $login = $config
        ->firewall('login');

    $login
        ->jsonLogin()
        ->usernamePath('email')
        ->checkPath('api_users_login');

    $login
        ->pattern('^/');

    $login
        ->logout()
        ->path('app_users_logout');

    $login
        ->switchUser()
        ->parameter('X-Switch-User');

    if (Environment::TEST->value === $container->env()) {
        $config
            ->passwordHasher(PasswordAuthenticatedUserInterface::class)
            ->algorithm($algo = 'xxh3')
            ->hashAlgorithm($algo)
            ->encodeAsBase64(false)
            ->iterations(0);
    }
};

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      Morty Proxy This is a proxified and sanitized view of the page, visit original site.