🚀 优质资源分享 🚀
学习路线指引(点击解锁) | 知识定位 | 人群定位 |
---|---|---|
🧡 Python实战微信订餐小程序 🧡 | 进阶级 | 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。 |
💛Python量化交易实战💛 | 入门级 | 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统 |
**摘要:**Spring Security是一个安全框架,作为Spring家族的一员。
本文分享自华为云社区《【云驻共创】深入浅出Spring Security》,作者:香菜聊游戏。
一、前言
1.历史
Spring Security最早叫Acegi Security,这个名称并不是说它和Spring就没有关系,它依然是为Spring框架提供安全支持的。Acegi Security基于Spring,可以帮助我们为项目建立丰富的角色与权限管理系统。Acegi Security虽然好用,但是最为人诟病的则是它臃肿繁琐的配置,这一问题最终也遗传给了Spring Security。Acegi Security最终被并入Spring Security项目中,并于2008年4月发布了改名后的第一个版本Spring Security 2.0.0。
2.对比
和Shiro相比,Spring Security重量级并且配置繁琐。其实自从Spring Boot推出后,就彻底颠覆了传统了JavaEE开发,自动化配置让许多事情变得非常容易。在一个Spring Boot项目中,我们甚至只需要引入一个依赖,不需要任何额外配置,项目的所有接口就会被自动保护起来了。在Spring Cloud中很多涉及安全管理的问题,也是一个Spring Security依赖两行配置就能搞定,在和Spring家族的产品一起使用时,Spring Security的优势就非常明显了。因此在微服务时代,我们不需要纠结要不要学习Spring Security,我们要考虑的是如何快速掌握Spring Security,并且能够使用Spring Security实现我们微服务的安全管理。
3.为什么选择
不同于其他领域,在Java企业级开发中,安全管理方面的框架非常少,一般来说,主要有三种方案:
• Shiro
• Spring Security
• 开发者自己实现
Shiro本身是一个老牌的安全管理框架,有着众多的优点,例如轻量、简单、易于集成,可以在JavaSE环境中使用等。不过在微服务面前,它无法充分展示自己的优势。也有开发者选择自己实现安全管理,不过一个系统的安全,不仅仅是登录和权限控制这么简单,我们还要考虑各种各样可能存在的网络攻击以及防御策略,从这个角度来说,只有大公司才有足够的人力物力去支持这件事情。 Spring Security作为Spring家族的一员,在和Spring家族的其他成员进行整合时,具有其他框架无可比拟的优势,同时对OAuth2有着良好的支持,再加上Spring Cloud对Spring Security的不断加持,让Spring Security成为微服务项目的首选安全管理方案。
二、Spring Security简介
Sp