Пакет
У пакета есть файл security.yaml. yaml, который определяет некоторые пути в управлении доступом:
Код: Выделить всё
security:
password_hashers:
Bundle\Entity\User:
algorithm: bcrypt
# ...
access_control:
- { path: ^/api/public, roles: PUBLIC_ACCESS }
- { path: ^/admin/, role: ROLE_ADMIN }
Код: Выделить всё
class BundleExtension extends Extension implements PrependExtensionInterface
public function prepend(ContainerBuilder $container): void
{
$yamlParser = new Parser();
$securityConfig = $yamlParser->parse(file_get_contents(__DIR__ . '/../Resources/config/security.yml'));
$container->prependExtensionConfig('security', $securityConfig['security']);
}
}
В проекте я хотел бы добавить или изменить пути в разделе access_control.
Я попробовал добавить это в Kernel.php:
Код: Выделить всё
class Kernel extends BaseKernel
{
use MicroKernelTrait;
protected function build(ContainerBuilder $container)
{
parent::build($container);
$container->addCompilerPass(new SecurityConfigCompilerPass());
}
}
Код: Выделить всё
class SecurityConfigCompilerPass implements CompilerPassInterface
{
public function process(ContainerBuilder $container): void
{
$securityConfigs = $container->getExtensionConfig('security');
foreach ($securityConfigs as $securityConfig) {
if (array_key_exists('access_control', $securityConfig)) {
$newConfig = $securityConfig;
array_push($newConfig['access_control'], [
"path" => "^/",
"role" => "ROLE_ADMIN",
]);
}
}
$securityExtension = $container->getExtension('security');
$securityExtension->load($newConfig, $container);
}
}
Нераспознанный параметр «Bundle\Entity\User» в разделе «Безопасность». Доступные параметры: «access_control», «access_decision_manager», «access_denied_url», «enable_authenticator_manager», «erase_credentials», «брандмауэры», «hide_user_not_found», «password_hashers», «providers», «role_hierarchy», «session_fixation_strategy».
Не уверен, что он больше не может вращать пространство имен Bundle\Entity\User. Есть ли лучший способ изменить пути access_control?
Подробнее здесь: https://stackoverflow.com/questions/782 ... -a-project
Мобильная версия