Symfony学习笔记 - Symfony Documentation - Security
为保证系统安全,Symfony提供了很多工具,具体包括:
1、可以在config/packages/security.yaml中,进行安全配置
2、所有的安全,均与用户相关,可以建立一个User Class,可以是Doctrine,也可以不是
a、User Class需要实现UserInterface
b、User Provider。可以是内置的,也可以自定义Provider
c、User Class需要实现PasswordAuthenticatedUserInterface
d、Firewall的配置是security.yaml最重要的部分,firewall是 Symfony 安全系统的核心组件,负责处理应用程序的安全层,包括认证、授权和请求过滤。
e、在security.yaml中,正常配置之后,symfony可以自动调用内置的FormLoginAuthenticator来完成登录认证,这个FormLoginAuthenticator也可以自己来实现
security: ... firewalls: main: # ... form_login: // "app_login" is the name of the route created previously login_path: login //在路由到login_path时,就会自动调用LoginAuthenticator进行认证,认证成功了,进入到LoginController之中 check_path: login
f、支持JSON login登录。当发送json login请求时,symfony对请求进行拦截认证,认证成功之后,交给Controller进行处理,Controller可以返回token等相关数据
g、支持HTTP Basic登录。http Basic是curl发送username/password及要访问的受限资源的一种认证方式
h、支持login link。类似于微信认证、QQ认证
i、可以通过配置security.yaml,限制登录尝试
j、logout也可以在配置中进行配置,也可以通过编程动态实现
3、Authorization:当用户登录成功后,Symfony会自动调用User Class的getRoles方法,获取用户角色。
4、可以使用Voter(推荐)或者第三方的Bundle比如Symfony ACL,实现对更细粒度的权限(比如CRUD权限)进行控制。

浙公网安备 33010602011771号