Spring Security——基础

一、概述 

        Spring Security是一个基于Spring Framework 的应用级的安全框架,致力于为Java应用提供全面安全解决方案。主要包括Authentication,Authorization 和ACLs。

1、Authentication(认证)

        认证的过程是应用来鉴别用户是否为他声称的那个人。在认证的过程中,一个用户会提供证明自己的信息(通常是用户名或密码),应用对其进行验证。过程如下:

Spring Security——基础

2、Authorization(授权)

        用户认证完成,仅仅意味着用户被系统识别,并不表示用户可以对系统随意操作。安全管理的下一步就是授权。授权来决定特定用户可以进行哪些操作,可以访问那些资源。

Spring Security——基础

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 提供了各种加密解密等实现。