Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony2在集成测试中通过API对用户进行身份验证_Symfony_Authentication_Redis_Integration Testing_Wsse - Fatal编程技术网

Symfony2在集成测试中通过API对用户进行身份验证

Symfony2在集成测试中通过API对用户进行身份验证,symfony,authentication,redis,integration-testing,wsse,Symfony,Authentication,Redis,Integration Testing,Wsse,我想通过运行集成测试的API(外部用户提供程序)对用户进行身份验证 my config_test.yml imports: - { resource: config.yml } - { resource: parameters_test.yml } framework: test: ~ session: storage_id: session.storage.mock_file monolog: handlers: ma

我想通过运行集成测试的API(外部用户提供程序)对用户进行身份验证

my config_test.yml

imports:
    - { resource: config.yml }
    - { resource: parameters_test.yml }

framework:
    test: ~
    session:
        storage_id: session.storage.mock_file

monolog:
    handlers:
        main:
            type:  stream
            path:  %kernel.logs_dir%/%kernel.environment%.log
            level: info
登录(成功)后,下一步是询问用户信息,我得到:

"Full authentication is required to access this resource."
我猜存储的会话发生了一些问题。 我在dev和prod上使用Redis来存储会话。 在测试环境上模拟会话,因为

"Failed to start the session because headers have already been sent by "/path/to/bin/phpunit" at line 2."

手动操作非常有效。

session.storage.mock_file
默认情况下使用
%kernel.cache_dir%/sessions
存储会话文件。检查此文件夹对于服务器用户和cli用户是否都可写

“设置权限”

另外两个可能的错误原因:

  • 无状态:在
    防火墙
    部分的防火墙上为true
    。不会创建
    ContextListener
    ,也不会将令牌保存到会话中。将匿名令牌分配给下一个请求

  • stateless:true
    如果启用了
    记住我
    功能,您还可以使用
    记住我
    而不是
    匿名令牌
    。这个代币也不是完全成熟的

  • 更新

    确保
    config\u test.yml
    中的
    intercept\u redirects
    为false,因为它可能会中断所有重定向

    web_profiler:
        toolbar: false
        intercept_redirects: false
    

    权限是完全正确的,
    无状态
    ?您的身份验证和用户信息url是否在同一防火墙下?您使用什么身份验证类型?与无状态身份验证相同。是的,两者都在同一防火墙内。我的提供程序类型是rest_webservice(自定义)还记得我使用Redis来存储会话您是否对后续请求使用相同的
    Client
    $Client=WebTestCase::createClient()$客户->提交(…)$客户->请求(…),等等?