Spring Security是Spring项目组提供的安全服务框架,核心功能包括:认证和授权。他为系统提供了声名式安全访问控制功能,减少了为系统安全而编写大量重复的代码工作。
认证
认证即系统判断用户身份合法性,合法可继续访问,不合法则拒绝访问。常见的用户身份认证方式有:用户名密码登录、二维码登录、手机短信登录、脸部识别认证、指纹认证等。
认证是为了保护系统的隐私数据与资源,用户的身份合法才能访问该系统的资源。
授权
授权即认证通过后,根据用户的权限来控制用户访问资源的过程,拥有资源的访问权限则正常访问,没有权限则拒绝访问。比如在一些视频网站中,普通用户登录后只有观看免费视频的权限,而vip用户登录后,网站会给该用户提供观看vip视频的权限。
认证是为了保护用户身份的合法性,授权则是为了更细粒度的对隐私数据进行划分,控制不同的用户能够访问不同的资源。
举个例子:
认证是为了能进入公司大门,而授权则是为了你作为公司会计可以进入财务室查看账目,处理财务数据。
CSRF防护
跨站请求伪造,通过伪造用户请求访问受信任的站点从而进行非法请求访问,是一种攻击手段。spring security是为了防止csrf攻击,默认开启了csrf防护,这限制除了get请求以外的大多数方法。我们要想正常使用spring security需要突破csrf防护。
解决办法:http.csrf().disable();