Spring Security简介

1. Spring Security 是基于 Spring 的身份认证(Authentication)和用户授权(Authorization)框架,提供了一套 Web 应用安全性的完整解决方案。其中核心技术使用了 Servlet 过滤器、IOC 和 AOP 等。

2. 什么是身份认证

身份认证指的是用户去访问系统资源时,系统要求验证用户的身份信息,用户身份合法才访问对应资源。常见的身份认证一般要求用户提供用户名和密码。系统通过校验用户名和密码来完成认证过程。

3. 什么是用户授权

当身份认证通过后,去访问系统的资源,系统会判断用户是否拥有访问该资源的权限,只允许访问有权限的系统资源,没有权限的资源将无法访问,这个过程叫用户授权。比如 会员管理模块有增删改查功能,有的用户只能进行查询,而有的用户可以进行修改、删除。一般来说,系统会为不同的用户分配不同的角色,而每个角色则对应一系列的权限

说白了:认证就是判断账号密码是否正确(可能还有锁定等状态)

              授权就是登陆人有没有权限访问某个接口

Shiro 简介

1. Shiro 是 Apache 下的项目,相对简单、轻巧,更容易上手使用。

2. Shiro 权限功能基本都能满足,单点登录都可以实现。且不用与任何的框架或者容器绑定, 可以独立运行

Shiro 与 Spring Security 对比

1. Spring Security 相对 Shiro 上手更复杂;

2. Spring Security 功能比 Shiro 更加丰富些;

3. Spring Security 是 Spring 家族的产品,与 Spring 无缝对接, 社区资源相对比 Shiro 更加丰富;

4. Spring Security 对 Oauth2 也有支持, Shiro 则需要自己手动实现。而且 Spring Security 的权限细粒度更高。

如何选择

1.如果项目体系不是很庞大,没有用到 Spring,那就不要考虑使用 Spring Security ,Shiro 足够满足, 建议使用。

2. 如果项目使用 Spring 作为基础,配合 Spring Security 做权限更加方便,而 Shiro 需要和 Spring 进行整合开