我对Symfony2的安全功能有疑问。我想在/my
前缀下保护我的应用程序的特殊区域。
我的配置如下:
security.config:
providers:
my:
entity: { class: MyUserBundle:User, property: username }
firewalls:
public:
pattern: /my/login.*
security: false
my:
pattern: /my.*
form-login:
check_path: /my/login_check
login_path: /my/login
logout: true
access_control:
- { path: /my/login.*, roles: IS_AUTHENTICATED_ANONYMOUSLY }
当我尝试访问登录区域时,一切正常,提交表单会导致错误页面,因为_security_check
路由没有注册控制器,如guide中所述:
_security_login:
pattern: /my/login
defaults: { _controller: MyUserBundle:Auth:login }
_security_check:
pattern: /my/login_check
我认为通常SecurityBundle会破解这个过程,因此不需要控制器。 Symfony2的配置总是非常复杂。
我想我错过了什么,希望你能帮忙 提前谢谢!
答案 0 :(得分:1)
我在symfony users mailing group的帮助下解决了这个问题。
答案 1 :(得分:0)
您必须定义一个防火墙(描述所有路由)并使用access_control部分设置确定安全区域。