/**
  * Create Authentication Provider instance.
  * @param \Silex\Application $app
  * @param UserProviderInterface $userProvider
  * @param string $providerKey
  * @return SimpleAuthenticationProvider
  */
 public function createAuthenticationProvider(\Silex\Application $app, UserProviderInterface $userProvider, $providerKey)
 {
     if (!$userProvider instanceof MutableUserProviderInterface) {
         throw new \InvalidArgumentException(sprintf('InitializableAuthenticationFactory expects the user provider to be an instance of MutableUserProviderInterface, received %s instead.', get_class($userProvider)));
     }
     return parent::createAuthenticationProvider($app, $userProvider, $providerKey);
 }