如何覆盖Symfony上的ssl(https)设置

时间:2013-03-27 08:30:02

标签: symfony

在我的应用中,我已设置路由和安全性,以便为某些路由使用安全连接:

<route id="store_checkout" pattern="/checkout" scheme="https">
    <default key="_controller">Store:Store:checkout</default>
</route>


access_control:
    - { path: ^/checkout, role: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }

但是,由于这个应用程序是开源的,可以在任何服务器上运行(可能没有SSL),我想允许用户在他们选择的情况下禁用/忽略SSL要求(风险自负)。

目前我可以想到几种方式:

  1. 我可以有2个路由文件(1个带ssl,1个没有)和2个安全文件。然后根据用户在安装时的选择,应用程序可以决定使用哪个文件

  2. 或许我也可以自定义路由器的生成功能,根据_scheme设置和SSL状态生成http或https链接(如果用户有/没有SSL证书,用户可以启用/禁用)

  3. 有没有更好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:2)

我知道答案很晚,但是如果你在谷歌搜索时遇到这个问题:

只需添加一个到parameters.yml:

url_scheme: https

在你的security.yml:

- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: %url_scheme% }