梦入琼楼寒有月,行过石树冻无烟

Spring security

Spring security 是一个功能呢个强大且高度可定制的身份验证和访问控制框架,主要用于保护Spring应用程序,并致力于为Java应用提供身份验证和授权。

Spring Security is a powerful and highly customizable authentication and access-control framework. It is the de-facto standard for securing Spring-based applications.
Spring Security is a framework that focuses on providing both authentication and authorization to Java applications. Like all Spring projects, the real power of Spring Security is found in how easily it can be extended to meet custom requirements

在Spring security成为 Spring 的子项目之前,他的前身名为“Acegi Security”,在成为spring的子项目之后更名为正式更名为“Spring security”。

认证和授权

spring security主要针对的即是认证和授权,分别通过认证和授权来起到一定的保护性作用,而这些通常不是spring security所独有的:

认证

认证是用于确认用户或个人在某个系统或场合中是否合法,这里主要应用在登入系统的用户。可以从我们日常生活中所了解,开门需要钥匙,则通过钥匙进去则为合法,这里的钥匙泛指注册,开门的动作泛指登录。spring security支
持广泛的认证技术,而这些认证技术大多由第三方组织或相关标准化组织进行开发,并由spring security进行集成,目前已经集成的认证技术如下:

ID DA FA
1 HTTP BASIC authentication haders 基于IEFT RFC 的标准认证
2 HTTP Diget authentication headers 基于IETF RFC 的标准认证
3 HTTP X.509 client certificate exchange 基于IETF RFC 的标准认证
4 LDAP Lightweight Directory Access Protocol 常见的跨平台身份验证方式
5 Form-based authentiation 用于简单的用户界面需求
6 OpenID authentication 去中心化身份验证方式
7 Authentication based on pre-established request head 一种用户身份验证及授权的集中式的安全基础方案
8 Jasig Ceantral Authentication Service 单点登入解决方案
9 Transparent authentication context propagation for Remote Method Invocation (RIM) and HttpInvoker Spring 远程调用协议
10 Automatic “remember-me” authentication 允许在指定到期前自行重新登入
11 Anonymous authentication 允许匿名用户使用特定的身份安全的访问资源
12 Run-as authentication 允许在会话中变换用户的身份机制
13 Java Authentication and Authorization Service JAAS Java 验证和授权API
14 Java EE container authentication 允许系统继续使用容器管理这种身份验证方式
15 Kerberos 使用对称密钥机制,允许客户端与服务器相互确认身份验证协议

授权

授权的过程是指用户通过认证之后,是否允许对某个功能的操作过程。我们可以假设授权是指你家里的客人开完门之后,是否可以进入你的主卧,需要征得你的同意。这里我们可分为用户和管理员两个核心的概念,你是家里的主人,即管理员,客人是用户,是否能进入某个地方需要征得你的同意。

除以上之外,Spring security还引入了很多的第三方包用于支持更多的认证技术,Spring security允许编写自己独一无二的认证技术,在绝大的情况下,既然使用 Spring boot 、 spring 开发项目,使用自家的spring security岂不是更好?且完美。除了认证以外,在授权上,Spring srcurity不仅仅支持基于URL的web请求授权,还支持方法访问授权对象授权等,覆盖了大部分的授权范围和场景。

⬅️ Go back