Symfony 3防火墙保护区混乱
我想通过防火墙和登录/会话保护Symfony 3中的应用程序区域:Symfony 3防火墙保护区混乱,symfony,login,firewall,Symfony,Login,Firewall,我想通过防火墙和登录/会话保护Symfony 3中的应用程序区域: security: firewalls: seller: pattern: ^/somearea form_login: login_path: /somearea/login check_path: /somearea/login logout:
security:
firewalls:
seller:
pattern: ^/somearea
form_login:
login_path: /somearea/login
check_path: /somearea/login
logout:
path: /somearea/logout
target: /
anonymous: false
access_control:
- { path: ^/somearea/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/somearea, role: IS_AUTHENTICATED_FULLY }
但是,当我想进入/somearea区域时,应用程序会变得混乱,并且会出现“ERR_TOO_MANY_REDIRECTS”的情况,如果我(实际上我不想要的)让登录名不在该区域的后面(例如/some2login或其他任何不同的地方),则会说登录名必须以/somearea开头
我怎样才能解决这个问题?谢谢大家! 通过设置
anonymous:false
,您将不允许匿名访问,这就是访问控制不会生效的原因。最简单的解决方案可能是将该设置更改为匿名:~
,因为对^/somearea
的回退访问控制将确保不允许匿名用户
另一个解决方案是为登录设置单独的防火墙:
security:
firewalls:
login:
pattern: ^/somearea/login$
security: false
seller:
pattern: ^/somearea
form_login:
login_path: /somearea/login
check_path: /somearea/login_check
...
登录表单将落入第一个防火墙,该防火墙不安全且始终可访问,但在提交表单时,您将向与第一个防火墙不匹配的
/somearea/login\u check
发送请求,但是第二个选项,因此尝试对安全卖方区域进行身份验证。您通过设置匿名:false
来禁止匿名访问,这就是访问控制不会生效的原因。最简单的解决方案可能是将该设置更改为匿名:~
,因为对^/somearea
的回退访问控制将确保不允许匿名用户
另一个解决方案是为登录设置单独的防火墙:
security:
firewalls:
login:
pattern: ^/somearea/login$
security: false
seller:
pattern: ^/somearea
form_login:
login_path: /somearea/login
check_path: /somearea/login_check
...
登录表单将落入第一个防火墙,该防火墙不安全且始终可访问,但在提交表单时,您将向/somearea/login\u check
发送一个请求,该请求与第一个防火墙不匹配,但与第二个防火墙不匹配,因此尝试对安全的卖方区域进行身份验证