Spring Security——基础
一、概述
Spring Security是一个基于Spring Framework 的应用级的安全框架,致力于为Java应用提供全面安全解决方案。主要包括Authentication,Authorization 和ACLs。
1、Authentication(认证)
认证的过程是应用来鉴别用户是否为他声称的那个人。在认证的过程中,一个用户会提供证明自己的信息(通常是用户名或密码),应用对其进行验证。过程如下:
2、Authorization(授权)
用户认证完成,仅仅意味着用户被系统识别,并不表示用户可以对系统随意操作。安全管理的下一步就是授权。授权来决定特定用户可以进行哪些操作,可以访问那些资源。
3、ACLs(Access control lists)
ACLs是Authorization过程中的一部分。主要区别在于ACLs通常作用于细粒度(fine grained)。ACLs是一个简单的集合,包含了资源,用户以及权限的对应关系。
二、核心概念
1、User:指允许接入系统的用户,具有抽象含义,不一定是人。
2、Credentials:用来证明自己身份的方法。通常只有用户自己知道,例如密码。
3、Role:角色,可以认为是一组用户,它们拥有同样的权限。
4、Resource:可以是应用的任何部分,例如一个URL,某个数据等。
5、Permission:权限。
6、Encryption:加密方法。包括单项加密(one-wayencryption)、对称加密(Symmetirc encryption)、公钥密码*
(Public Key cryptograptly)
三、模块
名称 | 描述 |
core | 主模块,提供了核心的功能,其他模块都基于该模块。包括了主要的类和接口。 |
web |
实现基于web-layer的安全。包括Servlet请求前后的Servlet Filter, HTTP 状态码生成等其他相关的web功能。 |
config | 命名空间定义。 |
taglib | JSP级别的安全配置。 |
acl | acl控制信息 |
remoting | Spring HttpInvoker, Java RMI。 |
ldap | 包含LDAP服务的所有功能。 |
cas | 包含JA-SIG Central Authentication Service。 |
openid | 包含OpenID支持。 |
aspect | 包含一个AspectJ Aspect。 |
crypto | 提供了各种加密解密等实现。 |