gpt4 book ai didi

php - Symfony2 : Retrieving user credentials from test config

转载 作者:搜寻专家 更新时间:2023-10-31 20:49:51 25 4
gpt4 key购买 nike

我正在我的 Symfony2 应用程序中进行一些功能测试,并希望通过检查是否只有具有适当角色的用户才能访问我的 Controller 操作来断言 Controller 安全性。我设置了两个具有不同角色的用户,他们使用基本凭据进行身份验证:

providers:
in_memory:
users:
basic: { password: basic, roles: ROLE_BASIC }
admin: { password: admin, roles: ROLE_ADMIN }

我不想将这些用户硬编码到我编写的每个测试中(我会写很多)。理想情况下,我想从容器中获取我在配置中定义的用户的详细信息。这可能吗? IE。而不是这样做:

$crawler = $client->request('GET', '/inventory/index', array(), array(), 
array(
'PHP_AUTH_USER' => 'admin',
'PHP_AUTH_PW' => 'admin'
));

我想这样做:

// Get the user details from the container
$users = $this->container->get('something');
$user = $users['admin'];

$crawler = $client->request('GET', '/inventory/index', array(), array(),
array(
'PHP_AUTH_USER' => $user->getUsername(),
'PHP_AUTH_PW' => $user->getPassword()
));

最佳答案

如果您在测试环境中并且不想深入研究复杂的东西,真正最简单的方法是使用 Yaml 解析器解析包含内存中提供程序的文件,并且用它来满足您的客户请求。

使用 LiipFunctionalTestBundle 会强制您定义一个并且只有一个用户来连接。此外,它会迫使您复制此信息,一次是在您的安全提供程序部分,一次是在您的 DI 参数中。

最后一个选项是定义您自己的服务,该服务使用私有(private)安全服务来配置自身。这比简单的 yaml 解析要复杂得多,也更难维护 :)。

关于php - Symfony2 : Retrieving user credentials from test config,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9112754/

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