0

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

<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 证书,用户可以启用/禁用)

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

4

1 回答 1

2

我知道答案很晚,但如果你在谷歌搜索时偶然发现:

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

url_scheme: https

在你的 security.yml 中:

- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: %url_scheme% }
于 2013-09-16T11:44:01.373 回答