因为在工作中遇到了使用SpringSecurity作为安全控制的框架,所以这里打算写一些内容来记录下自己学习过程中了解的情况。
搜索Spring Security,进到官网。看到有下面这些版本,下面我们选择5.0.7的GA版本的Reference Doc开始学习
引言,没细看。直接到第二章。
What?Spring Security为基于Java ee的企业软件应用程序提供全面的安全服务。
Why?就是说Java EE的 Servlet 规范 和 EJB 规范缺少企业应用所需要的深度,并且在WAR级别和EAR 的level上是不可携带的(这一段理解的好拗口 ,ear包还没有见过,war和jar比较常见)Java的JAR包, EAR包 ,WAR包中区别
Do What?如果您切换服务器环境,在新的目标环境中重新配置应用程序的安全性通常需要大量工作。使用Spring Security克服了这些问题,还为您带来了许多其他有用的、可定制的安全特性。
==========================分割线==================================
下面提到了authentication(认证)和authorization(授权)(access-control),这两个在Security中很重要的概念:
个人理解认证决定了“你是谁”,授权决定了“你能做什么”。这两个概念是通用的,不仅仅针对SpringSecurity框架。
====================
然后下面就列举了一大部分Spring Security 支持authentication 的技术。(这里就不列举了)
由于身份认证的灵活性,可以把Spring Security和客户需要的结果绑定在一起,而且如果不用上面列到的技术的话,Spring Security 也支持你编写自定义的身份验证机制。
无论身份认证的机制是怎么样的,Spring Security 也提供了大量的授权功能。主要分为三个方面:
(前面两个比较好理解,第三点是不是指对一个对象内容访问的权限?先往下看吧)
一个最小的SpringSecurity项目要往pom依赖添加下面两个内容
org.springframework.security
spring-security-web
5.0.7.RELEASE
org.springframework.security
spring-security-config
5.0.7.RELEASE
相关maven仓库的说明:
所有的GA版本(即以. release结尾的版本)都部署到Maven Central,因此不需要在pom中声明额外的Maven存储库。如果您使用的是snapshot(快照)版本,那么您需要确保Spring快照存储库的定义如下:
spring-snapshot
Spring Snapshot Repository
http://repo.spring.io/snapshot
使用的是release版本,则要配置成
spring-milestone
Spring Milestone Repository
http://repo.spring.io/milestone
(默默吐槽下,spring.io的仓库貌似很慢。还是找下其他的吧)
Spring Security是构建与Spring Framework 5.0.8.RELEASE 版本上的,但是应该和Spring Framework 4.0.x版本集成工作。许多用户都会遇到Spring Security的传递依赖关系会引发奇怪的classpath问题,使Spring Framework 5.0.8发生问题。
解决这个问题的一种方法是在pom的部分中包含所有的Spring框架模块。
另一种方法是在pom的部分中包含spring-frameworkbom。xml,如下所示:
org.springframework
spring-framework-bom
5.0.8.RELEASE
pom
import
这将确保Spring安全性的所有传递依赖项都使用Spring 5.0.8的modules。
这一块主要讲了jar包的构成(暂且跳过吧)
可以通过下面git地址去获取源代码
git clone https://github.com/spring-projects/spring-security.git
WebFlux响应式编程(Spring5.0特性)没听说过,搜索下mark篇文章有时间再看Spring WebFlux 快速上手