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
