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

如何在Symfony上覆盖ssl(https)设置,symfony,Symfony,在我的应用程序中,我已设置路由和安全性,以便对某些路由使用安全连接: <route id="store_checkout" pattern="/checkout" scheme="https"> <default key="_controller">Store:Store:checkout</default> </route> access_control: - { path: ^/checkout, role: IS_AUTH

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

<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 }

商店:商店:结帐
访问控制:
-{path:^/checkout,角色:经过匿名身份验证,\u需要\u通道:https}
但是,由于该应用程序是开源的,可以在任何服务器上运行(可能没有SSL),因此如果用户选择禁用/忽略SSL要求,我希望允许用户禁用/忽略SSL要求(风险自负)

目前我可以想出几种方法:

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

  • 或者,我也可以自定义路由器的generate函数,根据_方案设置和SSL状态生成http或https链接(如果用户有/没有SSL证书,则可以启用/禁用)


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

    我知道答案已经晚了,但是如果你在谷歌搜索时偶然发现这个问题:

    只需在parameters.yml中添加一个:

    url_scheme: https
    
    在您的security.yml中:

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