bug #17559 [SecurityBundle] Fix HTTP Digest auth not being passed user checker (SamFleming)

This PR was merged into the 2.8 branch.

Discussion
----------

[SecurityBundle] Fix HTTP Digest auth not being passed user checker

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

Wasn't sure if this was a bug so posted here http://stackoverflow.com/q/35022776/727236. However, after comparing the 2.3 branch and 2.8 branch I think it was a bug.

When trying to use `http_digest` on Symfony 2.8 you're greeted with the error `Argument 2 passed to Symfony\Component\Security\Core\Authentication\Provider\DaoAuthenticationProvider::__construct() must be an instance of Symfony\Component\Security\Core\User\UserCheckerInterface`.

The exact same `security.yml` works fine on v2.3.37.

Comparing the branches for the SecurityBundle I found that commit 05be5da1710ab681a04334d58126f8c3d431e3cb added the ability to configure a user checker on a per firewall basis. It seems that this commit seems to have missed updating the HttpDigestFactory (although it did update the other factories such as the [HttpBasicFactory](05be5da171 (diff-5f3e10fcc9de40dd09a8f3df3bdc9316))).

Testing this in my Symfony 2.8 app now works. However, I haven't been able to figure out what unit tests to write confirming this, does anyone with more experience on the SecurityBundle have any pointers?

Commits
-------

517a9a2 Fixed HTTP Digest auth not being passed user checker
This commit is contained in:
Fabien Potencier 2016-01-27 11:43:22 +01:00
commit 786c485883

View File

@ -29,6 +29,7 @@ class HttpDigestFactory implements SecurityFactoryInterface
$container
->setDefinition($provider, new DefinitionDecorator('security.authentication.provider.dao'))
->replaceArgument(0, new Reference($userProvider))
->replaceArgument(1, new Reference('security.user_checker.'.$id))
->replaceArgument(2, $id)
;