赞
踩
由于 spring security 使用广度不及 spring boot,且 spring 这两年废弃了许多项目,spring 的术语和称呼都有一些改变。
网上看到的一些教程大多是过时的,2019年之前的文章、教程大都跟不上最新的潮流,2019的文章和教程大部分又是转载的前几年的,因此需要看 spring 官方文档。
由于 spring 官方看起来也需要时间,因此特作此说明,以减少各位技术leader和爱好者们在项目的技术选型中花费的时间。
先上结论:
我的猜测:Spring 官方未来会废弃一切与 security 相关的子项目并迁移至 Spring Security 中,
未来想在 Spring 中寻找与 security 相关的部分,只需学习 spring security 即可。
在 spring security5.3.x 前可以选择使用 spring-security-oauth
(一年内不会被淘汰,未来终将被 spring security5.x取代)
不要再使用 spring-security-xxx
、spring-social
等
不推荐使用 spring-cloud-starter-oauth2
、spring-cloud-starter-security
(有计划被废弃)
该工程中,包含4个模块,一个依赖管理,一个基础模块,两个 starter(spring-cloud-starter-oauth2
、spring-cloud-starter-security
)
spring-cloud-starter-oauth2
、spring-cloud-starter-security
依赖,我要使用吗?spring-cloud-starter-oauth2
、spring-cloud-starter-security
在2.2.1版本(对应 spring-cloud Hoxton.SR2)将废弃,因此不再建议使用,[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S8BgwCqO-1580873604043)(img/spring-cloud-security-1.png)]
既然两个starter都没了,除了依赖管理模块,只剩一个spring-cloud-security
,那么要不要继续使用 spring-cloud-security 呢?
看一下他的源码,
发现其实该模块就提供了3个功能,也没几个类,因此即使依赖也没有任何关系,也十分容易迁移或者适配,
所以我的建议是无所谓,
虽然可以预见到,Spring官方未来会废弃一切与 security 相关的子项目并迁移至 Spring Security 中,
但spring 官方还没有正式出废弃 spring-cloud-security
的通知,
也没出迁移 spring-cloud-security 到 spring-security 5.2.x 的说明文档,
况且它本身的代码和功能不多,暂时使用也无妨。
结论:该系列项目均停止维护,新项目中直接考虑使用 spring-security 5.2.x+即可,因为这些项目提供的主要功能集成进 spring security 中了
github: spring-security 5.2.0.RELEASE
该项目是spring-security-xxx 系列中使用最广的项目,2年前 spring-security-oauth 是 spring 提供的 oauth 的解决方案,为什么现在不推荐使用了呢
该项目提供的能力逐渐由 spring-security 下的 spring-security-oauth-xxx 接管
该项目是 saml 协议的一个实现
spring-security-saml为什么刚出1.0版本就不维护了?
该项目是 kerberos 的一个实现
该项目主要用于依赖管理,作为 spring boot 1.x 系列的依赖管理项目,spring boot 2.x 现已经用 spring-boot-dependencies
替代
github上有一些基于 spring-social 实现的第三方登录 sdk,为什么现在废弃了?
spring-social
是与 spring-security-oauth
协同使用的模块,提供了第三方登录,作为 oauth client 的角色spring-security 5
开始将以上部分整合,5.2版本提供了部分 oauth2 支持,以上涉及的项目被逐渐合并至 spring security 5.2 以及以后的版本中,
spring-security 5.2.x
并不能完全替代以上的项目提供的功能,只是将上面中部分主要的功能先集成进来
预计在未来 spring-security 5.3.x
(5.3第一个版本大约在2020.3) 之后的版本,将可以只使用 spring-security
,不需要在学习以上的其他的部分
打开 官方文档 - 熟悉 spring boot demo
先看依赖
需要引入的 spring security 的jar有 spring-security-config、spring-security-web 这两个
看配置,发现不需要任何额外的配置
涉及到 spring security 的文件只有SecurityConfig.java
.authorizeRequests
配置认证、授权.formLogin
配置登录相关/user/**
的访问权限,改为 admin 后,发现访问不了Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。