У меня есть правило брандмауэра, которое вместе с аннотациями разрешает доступ только к действиям в качестве конкретного пользователя.Symfony 2 Защита входа с IP-адресом
Кроме того, я хотел бы заблокировать ЛЮБОЙ логин, если он не из определенной сети. В поисках решения я столкнулся с дополнительными правилами access_control после этого guide.
Проблема в том, что я ограничу свою страницу входа через правила IP. Я всегда получаю ошибку ERR_TOO_MANY_REDIRECTS
, если кто-то пытается ее достичь. Я бы предпочел, чтобы у меня появилось сообщение «Страница не найдена», даже чтобы кто-то извне не знал, что может быть какой-либо логин.
Как я могу это сделать с Symfony?
security.yml:
security:
...
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
default:
form_login:
provider: fos_userbundle
login_path: /login
use_forward: false
logout: true
anonymous: true
access_control:
- { path: ^/logout$, role: ROLE_ADMIN }
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https, ips: [127.0.0.1, fe80::1, ::1]}
- { path: ^/login$, roles: ROLE_NO_ACCESS }
- { path: ^/admin, role: ROLE_ADMIN, requires_channel: https}
Что произошло в apache error.log? –
Ничего, просто «Ребенок: начало 150 рабочих потоков». Это сообщение перезагрузки. Вы можете видеть только что-то в access.log, где 31 раз «127.0.0.1 - - [11/Ноябрь/2015: 17: 20: 47 +0100]» GET/login HTTP/1.1 »302 344'is writen – lony
, когда вы удаление 'require_channel: https' бесконечный цикл все еще существует? –