在我的应用中,我已设置路由和安全性,以便为某些路由使用安全连接:
<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要求(风险自负)。
目前我可以想到几种方式:
我可以有2个路由文件(1个带ssl,1个没有)和2个安全文件。然后根据用户在安装时的选择,应用程序可以决定使用哪个文件
或许我也可以自定义路由器的生成功能,根据_scheme设置和SSL状态生成http或https链接(如果用户有/没有SSL证书,用户可以启用/禁用)
有没有更好的方法来解决这个问题?
答案 0 :(得分:2)
我知道答案很晚,但是如果你在谷歌搜索时遇到这个问题:
只需添加一个到parameters.yml:
url_scheme: https
在你的security.yml:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: %url_scheme% }