SpringBoot 集成 SpringSecurity 详解(一)-- SpringSecurity 简介
背景:最近公司工作比较闲,可是上班总得做些什么吧,于是就想写点东西,我选择了SpringSecurity 作为一个支点,写写相关的知识作为一个系列,我结合了工作经验,同时也参考了网上不少的博文,甚至实战视频。
我的目标是,从零开始,一步一个脚印写好各个知识点,最后将各个知识点整合成一个完整的模块,可以直接提供实际项目中使用。
希望读者能在这一系列文章中基本掌握 SpringSecurity 的用法和在实战中使用。
一、SpringSecurity 是什么
Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转Inversion of Control ,DI:Dependency Injection 依赖注入)和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。
以上解释来源于百度百科。可以一句话来概括,SpringSecurity 是一个安全框架。
二、SpringSecurity 能做什么
SpringSecurity 是一个安全框架,那它提供了哪些安全措施呢?主要是三个方面,
- 身份认证(你是谁?)
- 权限校验(你能做什么?允许操作的范围)
- 攻击防护(防止伪造身份)
三、同类产品
同类产品中的佼佼者就是 Shiro 了,那这两者有什么区别的吗?
3.1共同点
- 认证功能
- 授权功能
- 加密功能
- 会话功能
- remeberMe功能
……
就功能上来说基本是相似。
3.2 不同点
优点:
- Spring Security基于Spring开发,项目中如果使用Spring作为基础,配合Spring Security做权限更加方便。而Shiro需要和Spring进行整合。
- Spring Security功能比Shiro更加丰富,例如安全防护方面。
- Spring Security社区资源相对比Shiro更加丰富。
- 如果使用的是Spring Boot,Spring Cloud的话,三者可以无缝集成。
缺点:
- Shiro的配置和使用比较简单,Spring Security上手复杂些。
- Shiro依赖性低,不需要任何框架和容器,可以独立运行,而Spring Security依赖Spring容器。
本项目相关的代码会同步到github上