一、概要

Spring Security 是Spring(Java 应用开发框架)家族成员,SpringSecurity 基于Spring 框架,提供例如一套Web 应用安全性的完整解决方案

关于安全方面的两个主要区域是“认证” 和“ 授权” (或者访问控制)Web 应用的安全性包括以下两个部分,也是SpringSecurity 的重要核心功能:

  • 用户认证(Authentication)
  • 用户授权(Authorization)

(1)用户认证

用户认证指的是:验证某个用户是否为系统中的合法主体,也就是说用户能否访问该系统。用户认证一般要求用户提供用户名和密码。系统通过校验用户名和密码来完成认证过程。通俗来说就是 系统认为用户能否登录

(2)用户授权:

用户授权指的是验证某个用户是否有权限执行某个操作。在一个系统中,不同用户所具有的权限是不同的。比如对一个文件来说,有的用户只能进行读取,而有的用户可以进行修改。一般来说,系统会为不同的用户分配不同的角色,而每个角色则对应一系列的权限。通俗来讲就是系统判断用户是否有权限去做某些事情。

二、同款对比

1.Spring Security : 是Spring 技术栈的组成部分,特点是:

  • 和Spring 无缝整合
  • 全面的权限控制
  • 专门为Web 开发而设计
  • 旧版本不能脱离Web 环境适应
  • 新版本对整个框架进行了分层抽取,分成了核心模块和Web模块。单独引入核心模块就可以脱离web 环境
  • 重量级

2. Shiro  :Apache 旗下的轻量级权限控制框架,特点是:

  • 轻量级:Shiro 主张的理念是把复杂的事情变简单,针对对性能有更高要求的互联网应用有更好表现
  • 通用性:
  • 优点:不局限于Web 环境,可以脱离Web 环境使用
  • 缺点: 在Web 环境下一些特定的需求需要手动编写代码定制

一般来说,常见的安全管理技术栈的组合是这样的:

  • SSM+Shiro
  • SpringBoot/ Spring Cloud+ SpringSecurity