_usedProperties['accessDeniedUrl'] = true; $this->accessDeniedUrl = $value; return $this; } /** * @default 'migrate' * @param ParamConfigurator|'none'|'migrate'|'invalidate' $value * @return $this */ public function sessionFixationStrategy($value): static { $this->_usedProperties['sessionFixationStrategy'] = true; $this->sessionFixationStrategy = $value; return $this; } /** * @default true * @param ParamConfigurator|bool $value * @return $this */ public function hideUserNotFound($value): static { $this->_usedProperties['hideUserNotFound'] = true; $this->hideUserNotFound = $value; return $this; } /** * @default true * @param ParamConfigurator|bool $value * @return $this */ public function eraseCredentials($value): static { $this->_usedProperties['eraseCredentials'] = true; $this->eraseCredentials = $value; return $this; } /** * @default true * @param ParamConfigurator|bool $value * @return $this */ public function enableAuthenticatorManager($value): static { $this->_usedProperties['enableAuthenticatorManager'] = true; $this->enableAuthenticatorManager = $value; return $this; } public function accessDecisionManager(array $value = []): \Symfony\Config\Security\AccessDecisionManagerConfig { if (null === $this->accessDecisionManager) { $this->_usedProperties['accessDecisionManager'] = true; $this->accessDecisionManager = new \Symfony\Config\Security\AccessDecisionManagerConfig($value); } elseif (0 < \func_num_args()) { throw new InvalidConfigurationException('The node created by "accessDecisionManager()" has already been initialized. You cannot pass values the second time you call accessDecisionManager().'); } return $this->accessDecisionManager; } /** * @return \Symfony\Config\Security\PasswordHasherConfig|$this */ public function passwordHasher(string $class, mixed $value = []): \Symfony\Config\Security\PasswordHasherConfig|static { if (!\is_array($value)) { $this->_usedProperties['passwordHashers'] = true; $this->passwordHashers[$class] = $value; return $this; } if (!isset($this->passwordHashers[$class]) || !$this->passwordHashers[$class] instanceof \Symfony\Config\Security\PasswordHasherConfig) { $this->_usedProperties['passwordHashers'] = true; $this->passwordHashers[$class] = new \Symfony\Config\Security\PasswordHasherConfig($value); } elseif (1 < \func_num_args()) { throw new InvalidConfigurationException('The node created by "passwordHasher()" has already been initialized. You cannot pass values the second time you call passwordHasher().'); } return $this->passwordHashers[$class]; } public function provider(string $name, array $value = []): \Symfony\Config\Security\ProviderConfig { if (!isset($this->providers[$name])) { $this->_usedProperties['providers'] = true; $this->providers[$name] = new \Symfony\Config\Security\ProviderConfig($value); } elseif (1 < \func_num_args()) { throw new InvalidConfigurationException('The node created by "provider()" has already been initialized. You cannot pass values the second time you call provider().'); } return $this->providers[$name]; } public function firewall(string $name, array $value = []): \Symfony\Config\Security\FirewallConfig { if (!isset($this->firewalls[$name])) { $this->_usedProperties['firewalls'] = true; $this->firewalls[$name] = new \Symfony\Config\Security\FirewallConfig($value); } elseif (1 < \func_num_args()) { throw new InvalidConfigurationException('The node created by "firewall()" has already been initialized. You cannot pass values the second time you call firewall().'); } return $this->firewalls[$name]; } public function accessControl(array $value = []): \Symfony\Config\Security\AccessControlConfig { $this->_usedProperties['accessControl'] = true; return $this->accessControl[] = new \Symfony\Config\Security\AccessControlConfig($value); } /** * @return $this */ public function roleHierarchy(string $id, mixed $value): static { $this->_usedProperties['roleHierarchy'] = true; $this->roleHierarchy[$id] = $value; return $this; } public function getExtensionAlias(): string { return 'security'; } public function __construct(array $value = []) { if (array_key_exists('access_denied_url', $value)) { $this->_usedProperties['accessDeniedUrl'] = true; $this->accessDeniedUrl = $value['access_denied_url']; unset($value['access_denied_url']); } if (array_key_exists('session_fixation_strategy', $value)) { $this->_usedProperties['sessionFixationStrategy'] = true; $this->sessionFixationStrategy = $value['session_fixation_strategy']; unset($value['session_fixation_strategy']); } if (array_key_exists('hide_user_not_found', $value)) { $this->_usedProperties['hideUserNotFound'] = true; $this->hideUserNotFound = $value['hide_user_not_found']; unset($value['hide_user_not_found']); } if (array_key_exists('erase_credentials', $value)) { $this->_usedProperties['eraseCredentials'] = true; $this->eraseCredentials = $value['erase_credentials']; unset($value['erase_credentials']); } if (array_key_exists('enable_authenticator_manager', $value)) { $this->_usedProperties['enableAuthenticatorManager'] = true; $this->enableAuthenticatorManager = $value['enable_authenticator_manager']; unset($value['enable_authenticator_manager']); } if (array_key_exists('access_decision_manager', $value)) { $this->_usedProperties['accessDecisionManager'] = true; $this->accessDecisionManager = new \Symfony\Config\Security\AccessDecisionManagerConfig($value['access_decision_manager']); unset($value['access_decision_manager']); } if (array_key_exists('password_hashers', $value)) { $this->_usedProperties['passwordHashers'] = true; $this->passwordHashers = array_map(function ($v) { return \is_array($v) ? new \Symfony\Config\Security\PasswordHasherConfig($v) : $v; }, $value['password_hashers']); unset($value['password_hashers']); } if (array_key_exists('providers', $value)) { $this->_usedProperties['providers'] = true; $this->providers = array_map(function ($v) { return new \Symfony\Config\Security\ProviderConfig($v); }, $value['providers']); unset($value['providers']); } if (array_key_exists('firewalls', $value)) { $this->_usedProperties['firewalls'] = true; $this->firewalls = array_map(function ($v) { return new \Symfony\Config\Security\FirewallConfig($v); }, $value['firewalls']); unset($value['firewalls']); } if (array_key_exists('access_control', $value)) { $this->_usedProperties['accessControl'] = true; $this->accessControl = array_map(function ($v) { return new \Symfony\Config\Security\AccessControlConfig($v); }, $value['access_control']); unset($value['access_control']); } if (array_key_exists('role_hierarchy', $value)) { $this->_usedProperties['roleHierarchy'] = true; $this->roleHierarchy = $value['role_hierarchy']; unset($value['role_hierarchy']); } if ([] !== $value) { throw new InvalidConfigurationException(sprintf('The following keys are not supported by "%s": ', __CLASS__).implode(', ', array_keys($value))); } } public function toArray(): array { $output = []; if (isset($this->_usedProperties['accessDeniedUrl'])) { $output['access_denied_url'] = $this->accessDeniedUrl; } if (isset($this->_usedProperties['sessionFixationStrategy'])) { $output['session_fixation_strategy'] = $this->sessionFixationStrategy; } if (isset($this->_usedProperties['hideUserNotFound'])) { $output['hide_user_not_found'] = $this->hideUserNotFound; } if (isset($this->_usedProperties['eraseCredentials'])) { $output['erase_credentials'] = $this->eraseCredentials; } if (isset($this->_usedProperties['enableAuthenticatorManager'])) { $output['enable_authenticator_manager'] = $this->enableAuthenticatorManager; } if (isset($this->_usedProperties['accessDecisionManager'])) { $output['access_decision_manager'] = $this->accessDecisionManager->toArray(); } if (isset($this->_usedProperties['passwordHashers'])) { $output['password_hashers'] = array_map(function ($v) { return $v instanceof \Symfony\Config\Security\PasswordHasherConfig ? $v->toArray() : $v; }, $this->passwordHashers); } if (isset($this->_usedProperties['providers'])) { $output['providers'] = array_map(function ($v) { return $v->toArray(); }, $this->providers); } if (isset($this->_usedProperties['firewalls'])) { $output['firewalls'] = array_map(function ($v) { return $v->toArray(); }, $this->firewalls); } if (isset($this->_usedProperties['accessControl'])) { $output['access_control'] = array_map(function ($v) { return $v->toArray(); }, $this->accessControl); } if (isset($this->_usedProperties['roleHierarchy'])) { $output['role_hierarchy'] = $this->roleHierarchy; } return $output; } }