Spring Security概述

Spring Security基于Spring框架,提供了一套Web应用安全性的完整解决方案。

Web应用的安全性包括用户认证(Authentication) 和 用户授权(Authonzation),这两点也是Spring Security重要核心功能。

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

用户授权:验证某个用户是否有权限执行某个操作。在一个系统中,不同用户所具有的权限是不同的。一般来说,系统会为不同的用户分配不同的角色,而每个角色则对应一系列的权限。通俗点说就是系统判断用户是否有权限去做某些事情。

Spring Security 和 Shiro 对比

Spring Security特点:

  • 和Spring无缝整合

  • 在SSM中整合比较繁琐

  • 全面的权限控制

  • 专门为Web开发而设计

    旧版本不能脱离Web环境使用。

新版本进行了分层,分成了核心模块和Web模块。单独引入核心模块就可以脱离Web环境。

  • 重量级

Shiro特点:

  • 轻量级

    针对对性能有更高要求的互联网应用有更好表现

  • 通用性

    好处:不局限Web环境,可以脱离Web环境使用

缺陷:在Web环境下一些特定的需求需要手动编写代码定制

常用的技术栈组合:

  • SSM + Shiro
  • Spring Boot/Spring Cloud + Spring Security

模块划分

  • Core

    spring-security-core.jar

核心模块

  • Remoting

    spring-security-remoting.jar

  • Web

    spring-security-web.jar

  • Config

    spring-security-config.jar

  • LDAP

    spring-security-ldap.jar

  • Oauth 2.0 Core

    spring-security-oauth2-core.jar

  • Oauth 2.0 Client

    spring-security-oauth2-client.jar

  • OAuth 2.0 JOSE

    spring-security-oauth2-jose.jar

  • OAuth 2.0 Resource Server

    spring-security-oauth2-resource-server.jar

  • ACL

    spring-security-acl.jar

  • CAS

    spring-security-cas.jar

  • OpenID

    spring-security-openid.jar

  • Test

    spring-security-test.jar