安全框架就是解决系统安全问题的框架,如果没有安全框架,我们需要手动处理每个资源的访问控制,比较繁琐。使用安全框架,可以通过配置的方式实现对资源的访问限制
1. Spring Security优点
Spring Security基于Spring开发,所以Spring Security与Spring更契合;
Spring Security功能比Shiro更加强大,尤其是在安全防护方面;
Spring Security社区资源比Shiro更加丰富;
Spring Boot/Spring Cloud环境中,更容易集成Spring Security;
Spring Security 具备良好的扩展性,可以满足自定义的要求;
Spring Security对 OAuth2框架支持很好,而Shiro则对 OAuth2 支持不够。
2. Spring Security缺点
Shiro是一个轻量、简单、易于集成的老牌安全框架,而且使用流程简单清晰;反观Spring Security,则属于是重量级、配置繁琐、学习使用门槛高的安全框架。
Shiro依赖性低,不需要任何框架和容器,可以独立运行,而Spring Security需要依赖Spring容器。
3. 现在常见的安全技术栈
在目前的Java体系中,我们在进行关于安全方面的开发时,到底该选择Shiro还是Spring Security哪个框架呢?其实我们可以进行如下搭配:
SSM + Shiro
Spring Boot/Spring Cloud + Spring Security
就目前而言,Shiro 最大的问题在于和 Spring 家族的产品进行整合时较为不便。在Spring Boot 推出的很长一段时间里,Shiro 都没有提供相应的 starter,后来虽然有一个 shiro-spring-boot-web-starter 出来,但配置并没有简化多少。所以在 Spring Boot/Spring Cloud 技术栈的微服务项目中,Shiro 几乎不存在优势。