1

Symfony2 工具栏有问题,当我添加requires_channel: https它以在网站的某些受保护区域中强制使用 HTTPS 时,该工具栏是隐藏的。如果我删除requires_channel: https,会显示 Symfony2 工具栏,我可以单击它来查看有关请求的一些详细信息(正常行为)。如果我添加requires_channel: https,尽管代码出现在页面末尾,但不会显示任何工具栏:

<div id="sfwdt4b56c8" class="sf-toolbar" style="display: none"></div><script>/*<![CDATA[*/    Sfjs = (function() {        "use strict"; [...]

我是否缺少在 HTTPS 防火墙后面启用 Symfony2 工具栏的东西?我使用本教程在本地计算机上的开发环境中设置 Apache2 中的 SSL。

请参阅下面的配置文件。

路由

php app/console router:debug

[router] Current routes
Name                                         Method Scheme Host Path
[...]
_wdt                                         ANY    ANY    ANY  /_wdt/{token}
_profiler_home                               ANY    ANY    ANY  /_profiler/
_profiler_search                             ANY    ANY    ANY  /_profiler/search
_profiler_search_bar                         ANY    ANY    ANY  /_profiler/search_bar
_profiler_purge                              ANY    ANY    ANY  /_profiler/purge
_profiler_info                               ANY    ANY    ANY  /_profiler/info/{about}
_profiler_import                             ANY    ANY    ANY  /_profiler/import
_profiler_export                             ANY    ANY    ANY  /_profiler/export/{token}.txt
_profiler_phpinfo                            ANY    ANY    ANY  /_profiler/phpinfo
_profiler_search_results                     ANY    ANY    ANY  /_profiler/{token}/search/results
_profiler                                    ANY    ANY    ANY  /_profiler/{token}
_profiler_router                             ANY    ANY    ANY  /_profiler/{token}/router
_profiler_exception                          ANY    ANY    ANY  /_profiler/{token}/exception
_profiler_exception_css                      ANY    ANY    ANY  /_profiler/{token}/exception.css
[...]

app/config/security.yml

security:
    [...]
    access_control:
        #~ no authentification:
        - { path: ^/(en|fr)/news, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: http }
        [...]
        #~ Logged in
        - { path: ^/(en|fr)/dashboard, roles: ROLE_USER, requires_channel: https }
        [...]

app/config/config_dev.yml

web_profiler:
    toolbar: true
    intercept_redirects: false
4

1 回答 1

0

我通过在开发环境中禁用 HTTPS 解决了这个问题,这个想法来自 Gottlieb Notschnabel 的一个不相关的答案

在不同的环境配置文件中定义了一个%auth_required_channel%值:

app/config/config_dev.yml

parameters:
    auth_required_channel: 'http'

app/config/config_test.yml

parameters:
    auth_required_channel: 'http'

app/config/config_prod.yml

parameters:
    auth_required_channel: 'https'

应用程序/配置/security.yml

此参数定义为需要 HTTP 或 HTTPS 通道:

security:
    [...]
    access_control:
        [...]
        - { path: ^/(en|fr)/admin, roles: ROLE_ADMIN, requires_channel: %auth_required_channel% }
于 2013-11-13T11:14:45.553 回答