gpt4 book ai didi

php - 带有 Fosuserbundle 的 webtests symfony 2.5

转载 作者:搜寻专家 更新时间:2023-10-31 22:02:28 24 4
gpt4 key购买 nike

我尝试使用身份验证 fosuserbundle 进行测试,但仍然失败,我找到了 symfony 2.3 的解决方案,但它不起作用

https://gist.github.com/deltaepsilon/6391565

我也尝试用两个函数创建客户端

protected function createAuthorizedClient2()
{
$client = static::createClient();
$container = $client->getContainer();

$session = $container->get('session');
/** @var $userManager \FOS\UserBundle\Doctrine\UserManager */
$userManager = $container->get('fos_user.user_manager');
/** @var $loginManager \FOS\UserBundle\Security\LoginManager */
$loginManager = $container->get('fos_user.security.login_manager');
$firewallName = $container->getParameter('fos_user.firewall_name');

$user = $userManager->findUserBy(array('username' => 'admin'));
$loginManager->loginUser($firewallName, $user);

// save the login token into the session and put it in a cookie
$container->get('session')->set('_security_' . $firewallName, serialize($container->get('security.context')->getToken()));
$container->get('session')->save();
$client->getCookieJar()->set(new Cookie($session->getName(), $session->getId()));

return $client;
}

protected function createAuthorizedClient()
{
$client = static::createClient();
$container = static::$kernel->getContainer();
$session = $container->get('session');
$person = self::$kernel->getContainer()->get('doctrine')->getRepository('BergUserDataBundle:UserLogin')->findOneByUsername('admin');

$token = new UsernamePasswordToken($person, null, 'main', $person->getRoles());
$session->set('_security_main', serialize($token));
$session->save();

$client->getCookieJar()->set(new Cookie($session->getName(), $session->getId()));

return $client;
}

最佳答案

这不再是使用经过身份验证的客户端进行测试的推荐方法。

新推荐的方法要简单得多 - 提交普通的旧 HTTP 凭据,然后告诉您的测试环境防火墙通过此方法而不是 FOS 用户提供程序进行身份验证。

参见 http://symfony.com/doc/current/cookbook/testing/http_authentication.html

关于php - 带有 Fosuserbundle 的 webtests symfony 2.5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26054259/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com