php - Symfony 2 功能测试 : bypassing ssl

标签 php symfony ssl

我正在使用经过身份验证的用户来测试不使用 prod 环境中的 shibboleth 提供程序的登录页面。但是在运行测试时,我似乎获得了 500 http 状态。这是配置:

security_test.yml

security:
    encoders:
        Symfony\Component\Security\Core\User\User: plaintext

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

    providers:
        test:
            memory:
                users:
                    admin: { password: adminpass, roles: ['ROLE_ADMIN'] }

    firewalls:
        secured_area:
            pattern:    ^/apps
            http_basic:
                realm: "Secured Area"
            provider: test

ControllerTest.php

class GenerateResetcodeControllerTest extends WebTestCase {

    private $client = null;

    public function setUp()
    {
        $this->client = static::createClient();
    }

    /**
     * @group debug
     */
    public function testGenerateResetCodeAction()
    {

        $crawler = $this->client->request('GET', '/apps/resetcode', array(), array(), array(
            'PHP_AUTH_USER' => 'admin',
            'PHP_AUTH_PW'   => 'adminpass',
        ));
        $this->assertEquals(200, $this->client->getResponse()->getStatusCode());
    }
}

app/logs/test.log

[2015-03-24 11:15:54] app.CRITICAL: SSL connect error [] []
[2015-03-24 11:15:54] request.CRITICAL: Uncaught PHP Exception Util\XMLApiCallerBundle\Call\XMLApiCallerException: "System Unavailable" at /var/www/src/AccountServicesBundl
e/Services/AccountServiceRest.php line 149 {"exception":"[object] (Util\\XMLApiCallerBundle\\Call\\XMLApiCallerException(code: -1): System Unavailable at /var/www/src/AccountServicesBundle/Services/AccountServiceRest.php:149)"} []

有什么方法可以绕过 SSL 吗?

最佳答案

我认为您不必绕过安全连接。试试这个:

$crawler = $this->client->request('GET', '/apps/resetcode', array(), array(),
    array(
        'PHP_AUTH_USER' => 'admin',
        'PHP_AUTH_PW'   => 'adminpass',
        'HTTPS' => true
    )
);

public function setUp()
{
    $this->client = static::createClient(array(), array('HTTPS' => true));
}

它应该发出 HTTPS 请求。如果你真的想绕过 SSL,你可以为测试环境创建 routing_test.yml 并覆盖路由定义,但这取决于你如何强制 https 限制。

关于php - Symfony 2 功能测试 : bypassing ssl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29240161/

相关文章:

php - 使用 salesforce api 将联系人与帐户相关联

php - 如何从 URL 获取所有参数并在 PHP 中打印出来?

php - Symfony ExceptionHandler 抛出关于自身的错误

php - Symfony Sonata 管理语言不起作用

php - 使用属性序列化 XML 文档

ssl - 如何在服务器上签署 ssl

android - SDK 管理器未知主机 dl-ssl.google.com

php - 重组数组以将元素从第三个位置连接到数组末尾并存储为第三个元素

php - 如何在php上获取正确的sql值

iis - 在 IIS 下使用 SSL 的多个子域