Skip to content

Commit

Permalink
[SecurityBundle] made realm configurable for HTTP basic and digest au…
Browse files Browse the repository at this point in the history
…thentication
  • Loading branch information
fabpot committed Mar 16, 2011
1 parent db27b4d commit b638cf0
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 29 deletions.
Expand Up @@ -33,16 +33,16 @@ public function create(ContainerBuilder $container, $id, $config, $userProvider,
->setArgument(2, $id)
;

// entry point
$entryPointId = $this->createEntryPoint($container, $id, $config, $defaultEntryPoint);

// listener
$listenerId = 'security.authentication.listener.basic.'.$id;
$listener = $container->setDefinition($listenerId, new DefinitionDecorator('security.authentication.listener.basic'));
$listener->setArgument(2, $id);
$listener->setArgument(3, new Reference($entryPointId));

if (null === $defaultEntryPoint) {
$defaultEntryPoint = 'security.authentication.basic_entry_point';
}

return array($provider, $listenerId, $defaultEntryPoint);
return array($provider, $listenerId, $entryPointId);
}

public function getPosition()
Expand All @@ -59,6 +59,22 @@ public function addConfiguration(NodeBuilder $builder)
{
$builder
->scalarNode('provider')->end()
->scalarNode('realm')->defaultValue('Secured Area')->end()
;
}

protected function createEntryPoint($container, $id, $config, $defaultEntryPoint)
{
if (null !== $defaultEntryPoint) {
return $defaultEntryPoint;
}

$entryPointId = 'security.authentication.basic_entry_point.'.$id;
$container
->setDefinition($entryPointId, new DefinitionDecorator('security.authentication.basic_entry_point'))
->addArgument($config['realm'])
;

return $entryPointId;
}
}
Expand Up @@ -33,16 +33,17 @@ public function create(ContainerBuilder $container, $id, $config, $userProvider,
->setArgument(2, $id)
;

// entry point
$entryPointId = $this->createEntryPoint($container, $id, $config, $defaultEntryPoint);

// listener
$listenerId = 'security.authentication.listener.digest.'.$id;
$listener = $container->setDefinition($listenerId, new DefinitionDecorator('security.authentication.listener.digest'));
$listener->setArgument(1, new Reference($userProvider));
$listener->setArgument(2, $id);
$listener->setArgument(3, new Reference($entryPointId));

if (null === $defaultEntryPoint) {
$defaultEntryPoint = 'security.authentication.digest_entry_point';
}

return array($provider, $listenerId, $defaultEntryPoint);
return array($provider, $listenerId, $entryPointId);
}

public function getPosition()
Expand All @@ -59,6 +60,24 @@ public function addConfiguration(NodeBuilder $builder)
{
$builder
->scalarNode('provider')->end()
->scalarNode('realm')->defaultValue('Secured Area')->end()
->scalarNode('key')->cannotBeEmpty()->end()
;
}

protected function createEntryPoint($container, $id, $config, $defaultEntryPoint)
{
if (null !== $defaultEntryPoint) {
return $defaultEntryPoint;
}

$entryPointId = 'security.authentication.digest_entry_point.'.$id;
$container
->setDefinition($entryPointId, new DefinitionDecorator('security.authentication.digest_entry_point'))
->addArgument($config['realm'])
->addArgument($config['key'])
;

return $entryPointId;
}
}
Expand Up @@ -14,12 +14,9 @@

<parameter key="security.authentication.listener.basic.class">Symfony\Component\Security\Http\Firewall\BasicAuthenticationListener</parameter>
<parameter key="security.authentication.basic_entry_point.class">Symfony\Component\Security\Http\EntryPoint\BasicAuthenticationEntryPoint</parameter>
<parameter key="security.authentication.basic_entry_point.realm">Symfony2</parameter>

<parameter key="security.authentication.listener.digest.class">Symfony\Component\Security\Http\Firewall\DigestAuthenticationListener</parameter>
<parameter key="security.authentication.digest_entry_point.class">Symfony\Component\Security\Http\EntryPoint\DigestAuthenticationEntryPoint</parameter>
<parameter key="security.authentication.digest_entry_point.realm">Symfony2</parameter>
<parameter key="security.authentication.digest_entry_point.key">SomethingUnique</parameter>

<parameter key="security.authentication.listener.x509.class">Symfony\Component\Security\Http\Firewall\X509AuthenticationListener</parameter>
<parameter key="security.authentication.x509.user">SSL_CLIENT_S_DN_Email</parameter>
Expand Down Expand Up @@ -58,14 +55,9 @@

<service id="security.authentication.retry_entry_point" class="%security.authentication.retry_entry_point.class%" public="false" />

<service id="security.authentication.basic_entry_point" class="%security.authentication.basic_entry_point.class%" public="false">
<argument>%security.authentication.basic_entry_point.realm%</argument>
</service>
<service id="security.authentication.basic_entry_point" class="%security.authentication.basic_entry_point.class%" public="false" />

<service id="security.authentication.digest_entry_point" class="%security.authentication.digest_entry_point.class%" public="false">
<argument>%security.authentication.digest_entry_point.realm%</argument>
<argument>%security.authentication.digest_entry_point.key%</argument>
</service>
<service id="security.authentication.digest_entry_point" class="%security.authentication.digest_entry_point.class%" public="false" />

<service id="security.channel_listener" class="%security.channel_listener.class%" public="false">
<argument type="service" id="security.access_map" />
Expand Down Expand Up @@ -125,31 +117,31 @@
<service id="security.authentication.listener.basic" class="%security.authentication.listener.basic.class%" public="false" abstract="true">
<argument type="service" id="security.context" />
<argument type="service" id="security.authentication.manager" />
<argument></argument>
<argument type="service" id="security.authentication.basic_entry_point" />
<argument /> <!-- Provider-shared Key -->
<argument /> <!-- Entry Point -->
<argument type="service" id="logger" on-invalid="null" />
</service>

<service id="security.authentication.listener.digest" class="%security.authentication.listener.digest.class%" public="false" abstract="true">
<argument type="service" id="security.context" />
<argument type="service" id="security.user.provider.in_memory" />
<argument></argument>
<argument type="service" id="security.authentication.digest_entry_point" />
<argument /> <!-- User Provider -->
<argument /> <!-- Provider-shared Key -->
<argument /> <!-- Entry Point -->
<argument type="service" id="logger" on-invalid="null" />
</service>

<service id="security.authentication.provider.dao" class="%security.authentication.provider.dao.class%" abstract="true" public="false">
<argument /> <!-- User Provider -->
<argument type="service" id="security.user_checker" />
<argument /> <!-- Provider-shared Key -->
<argument type="service" id="security.encoder_factory" />
</service>

<service id="security.authentication.provider.pre_authenticated" class="%security.authentication.provider.pre_authenticated.class%" abstract="true" public="false">
<argument /> <!-- User Provider -->
<argument type="service" id="security.user_checker" />
</service>

<service id="security.exception_listener" class="%security.exception_listener.class%" public="false" abstract="true">
<argument type="service" id="security.context" />
<argument type="service" id="security.authentication.trust_resolver" />
Expand Down Expand Up @@ -179,4 +171,4 @@
<argument type="service" id="logger" on-invalid="null" />
</service>
</services>
</container>
</container>

0 comments on commit b638cf0

Please sign in to comment.