我正在为安全配置一个新的symfony安装,但我的登录表单不会表现。无论何时我被重定向到登录页面,symfony都会重定向到https,并将80添加到域中。Symfony安全强制HTTPS尽管requires_channel http
这里是我的security.yml
# app/config/security.yml
security:
firewalls:
login:
pattern: ^/login
anonymous: true
main:
pattern: ^/
anonymous: false
form_login:
login_path: /login
check_path: /login_check
logout:
path: /logout
target: /home
access_control:
- { path: ^/login$, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: http }
- { path: ^/secure, roles: IS_AUTHENTICATED_FULLY }
- { path: ^/secure/max, roles: ROLE_ADMIN }
providers:
in_memory:
memory:
users:
ryan: { password: ryanpass, roles: 'ROLE_USER' }
admin: { password: kitten, roles: 'ROLE_ADMIN' }
encoders:
Symfony\Component\Security\Core\User\User: plaintext
为我登录路径控制器的路由文件:
login:
pattern: /login
defaults: { _controller: RGCoreBundle:Default:login }
login_check:
pattern: /login_check
当我访问主页,我重定向到:
https://myserver.com:80/login
...这显然不工作,因为我没有配置SSL ...
我试图改变登录路由的路径,它会在新的路径更新到一点,所以它肯定读取配置文件...
我还有什么地方应该看?这是全新的安装,我已经删除了ACME包。
更新:
我潜水我通过与调试器和打印报表内核的方式。
到目前为止,我可以确定,因为,在验证失败(因为它应该),是为“login_path”生成重定向响应它这样做。到generateUri调用调用原始请求对象的geturi”功能。
跟踪这一点,原因至今是Request对象的ServerBag有HTTPS = ON>。
如该得到的我还没有想出设置虽然
听起来像它可能是一个htaccess的事情。你在那里有什么? – Chausser
没有.htaccess文件。 Nginx配置为忽略它们,我唯一拥有的应用是/,它只是说“拒绝所有” – Fodagus
这似乎仍然是与你的web服务器不同,而不是使用symfony。我会在你的项目中搜索“80”,排除你的供应商,看看你是否在任何地方设置端口。如果你无法找到一个位置,那么它可能是一个Web服务器重定向。 – Chausser