Skip to content

Commit

Permalink
[Security] added key normalization, and removed some conditionals
Browse files Browse the repository at this point in the history
  • Loading branch information
schmittjoh authored and fabpot committed Jan 29, 2011
1 parent af696f6 commit 8a87953
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 59 deletions.
Expand Up @@ -39,9 +39,7 @@ public function create(ContainerBuilder $container, $id, $config, $userProvider,

// add remember-me tag
$rememberMe = true;
if (isset($config['remember-me']) && false === $config['remember-me']) {
$rememberMe = false;
} else if (isset($config['remember_me']) && false === $config['remember_me']) {
if (isset($config['remember_me']) && false === $config['remember_me']) {
$rememberMe = false;
}
if ($rememberMe) {
Expand Down Expand Up @@ -69,18 +67,12 @@ public function create(ContainerBuilder $container, $id, $config, $userProvider,

// success handler
if (isset($config['success_handler'])) {
$config['success-handler'] = $config['success_handler'];
}
if (isset($config['success-handler'])) {
$listener->setArgument(5, new Reference($config['success-handler']));
$listener->setArgument(5, new Reference($config['success_handler']));
}

// failure handler
if (isset($config['failure_handler'])) {
$config['failure-handler'] = $config['failure_handler'];
}
if (isset($config['failure-handler'])) {
$listener->setArgument(6, new Reference($config['failure-handler']));
$listener->setArgument(6, new Reference($config['failure_handler']));
}

// form entry point
Expand Down
Expand Up @@ -38,14 +38,14 @@ class SecurityExtension extends Extension
public function configLoad(array $configs, ContainerBuilder $container)
{
foreach ($configs as $config) {
$this->doConfigLoad($config, $container);
$this->doConfigLoad($this->normalizeKeys($config), $container);
}
}

public function aclLoad(array $configs, ContainerBuilder $container)
{
foreach ($configs as $config) {
$this->doAclLoad($config, $container);
$this->doAclLoad($this->normalizeKeys($config), $container);
}
}

Expand All @@ -67,16 +67,13 @@ protected function doConfigLoad($config, ContainerBuilder $container)
$loader->load('collectors.xml');
}

if (isset($config['access-denied-url'])) {
$container->setParameter('security.access.denied_url', $config['access-denied-url']);
if (isset($config['access_denied_url'])) {
$container->setParameter('security.access.denied_url', $config['access_denied_url']);
}

// session fixation protection
if (isset($config['session_fixation_protection'])) {
$config['session-fixation-protection'] = $config['session_fixation_protection'];
}
if (isset($config['session-fixation-protection'])) {
$container->setParameter('security.authentication.session_strategy.strategy', $config['session-fixation-protection']);
$container->setParameter('security.authentication.session_strategy.strategy', $config['session_fixation_protection']);
}

$this->createFirewalls($config, $container);
Expand All @@ -91,8 +88,6 @@ protected function createRoleHierarchy($config, ContainerBuilder $container)
$roles = array();
if (isset($config['role_hierarchy'])) {
$roles = $config['role_hierarchy'];
} elseif (isset($config['role-hierarchy'])) {
$roles = $config['role-hierarchy'];
}

if (isset($roles['role']) && is_int(key($roles['role']))) {
Expand Down Expand Up @@ -123,8 +118,6 @@ protected function createAuthorization($config, ContainerBuilder $container)
$rules = array();
if (isset($config['access_control'])) {
$rules = $config['access_control'];
} elseif (isset($config['access-control'])) {
$rules = $config['access-control'];
}

if (isset($rules['rule']) && is_array($rules['rule'])) {
Expand All @@ -134,9 +127,7 @@ protected function createAuthorization($config, ContainerBuilder $container)
foreach ($rules as $i => $access) {
$roles = isset($access['role']) ? (is_array($access['role']) ? $access['role'] : preg_split('/\s*,\s*/', $access['role'])) : array();
$channel = null;
if (isset($access['requires-channel'])) {
$channel = $access['requires-channel'];
} elseif (isset($access['requires_channel'])) {
if (isset($access['requires_channel'])) {
$channel = $access['requires_channel'];
}

Expand Down Expand Up @@ -218,11 +209,7 @@ protected function createFirewall(ContainerBuilder $container, $firewall, $provi
$i = 0;
$matcher = null;
if (isset($firewall['request_matcher'])) {
$firewall['request-matcher'] = $firewall['request_matcher'];
}

if (isset($firewall['request-matcher'])) {
$matcher = new Reference($firewall['request-matcher']);
$matcher = new Reference($firewall['request_matcher']);
} else if (isset($firewall['pattern'])) {
$matcher = $this->createRequestMatcher($container, $firewall['pattern']);
}
Expand Down Expand Up @@ -280,11 +267,8 @@ protected function createFirewall(ContainerBuilder $container, $firewall, $provi

// add session logout handler
$invalidateSession = true;
if (array_key_exists('invalidate_session', $firewall['logout'])) {
$firewall['logout']['invalidate-session'] = $firewall['logout']['invalidate_session'];
}
if (array_key_exists('invalidate-session', $firewall['logout'])) {
$invalidateSession = (Boolean) $invalidateSession;
if (isset($firewall['logout']['invalidate_session'])) {
$invalidateSession = (Boolean) $firewall['logout']['invalidate_session'];
}
if (true === $invalidateSession && (!isset($firewall['stateless']) || !$firewall['stateless'])) {
$listener->addMethodCall('addHandler', array(new Reference('security.logout.handler.session')));
Expand Down Expand Up @@ -315,18 +299,12 @@ protected function createFirewall(ContainerBuilder $container, $firewall, $provi

// Switch user listener
if (array_key_exists('switch_user', $firewall)) {
$firewall['switch-user'] = $firewall['switch_user'];
}
if (array_key_exists('switch-user', $firewall)) {
$listeners[] = new Reference($this->createSwitchUserListener($container, $id, $firewall['switch-user'], $defaultProvider));
$listeners[] = new Reference($this->createSwitchUserListener($container, $id, $firewall['switch_user'], $defaultProvider));
}

// Determine default entry point
if (isset($firewall['entry_point'])) {
$firewall['entry-point'] = $firewall['entry_point'];
}
if (isset($firewall['entry-point'])) {
$defaultEntryPoint = $firewall['entry-point'];
$defaultEntryPoint = $firewall['entry_point'];
}

// Exception listener
Expand Down Expand Up @@ -493,8 +471,8 @@ protected function createEncoder(array $encoderMap, $accountClass, $config, Cont
if ('plaintext' === $config['algorithm']) {
$arguments = array();

if (array_key_exists('ignore-case', $config)) {
$arguments[0] = (Boolean) $config['ignore-case'];
if (isset($config['ignore_case'])) {
$arguments[0] = (Boolean) $config['ignore_case'];
}

$encoderMap[$accountClass] = array(
Expand All @@ -509,8 +487,8 @@ protected function createEncoder(array $encoderMap, $accountClass, $config, Cont
$arguments = array($config['algorithm']);

// add optional arguments
if (isset($config['encode-as-base64'])) {
$arguments[1] = (Boolean) $config['encode-as-base64'];
if (isset($config['encode_as_base64'])) {
$arguments[1] = (Boolean) $config['encode_as_base64'];
} else {
$arguments[1] = false;
}
Expand Down Expand Up @@ -627,22 +605,15 @@ protected function getUserProviderId($name)

protected function createExceptionListener($container, $config, $id, $defaultEntryPoint)
{
if (isset($config['access_denied_handler'])) {
$config['access-denied-handler'] = $config['access_denied_handler'];
}
if (isset($config['access_denied_url'])) {
$config['access-denied-url'] = $config['access_denied_url'];
}

$exceptionListenerId = 'security.exception_listener.'.$id;
$listener = $container->setDefinition($exceptionListenerId, new DefinitionDecorator('security.exception_listener'));
$listener->setArgument(2, null === $defaultEntryPoint ? null : new Reference($defaultEntryPoint));

// access denied handler setup
if (isset($config['access-denied-handler'])) {
$listener->setArgument(4, new Reference($config['access-denied-handler']));
} else if (isset($config['access-denied-url'])) {
$listener->setArgument(3, $config['access-denied-url']);
if (isset($config['access_denied_handler'])) {
$listener->setArgument(4, new Reference($config['access_denied_handler']));
} else if (isset($config['access_denied_url'])) {
$listener->setArgument(3, $config['access_denied_url']);
}

return $exceptionListenerId;
Expand Down

0 comments on commit 8a87953

Please sign in to comment.