Spring Authorization Server 0.2.3发布,放出联合身份DEMO
2022-03-26 13:39
851 查看
很快啊Spring Authorization Server又发新版本了,现在的版本是0.2.3。本次都有什么改动呢?我们来了解一下。
0.2.3版本特性
本次更新的新特性不少。
为公开客户端提供默认的设置
根据RFC6479,包含授权码(
authorization_code)授权并且客户端认证方式
ClientAuthenticationMethod只有一种,为
none的客户端都是公开(Public)客户端,反之就是机密(Confidential)客户端。
在0.2.3中,为公开的客户端提供了客户端默认配置
ClientSettings。
if (this.clientSettings == null) { ClientSettings.Builder builder = ClientSettings.builder(); if (isPublicClientType()) { // @formatter:off builder .requireProofKey(true) .requireAuthorizationConsent(true); // @formatter:on } this.clientSettings = builder.build(); }
这里多说点,公开客户端现在不单纯是
authorization_code模式授权,必须加上PKCE。
OAuth2ClientAuthenticationProvider被细分
Spring Authorization Server目前支持的客户端认证方式有:
client_secret_basic
client_secret_post
client_secret_jwt
private_key_jwt
none
之前由
OAuth2ClientAuthenticationProvider一手包办,现在职责分离了。
JwtClientAssertionAuthenticationProvider
负责
private_key_jwt和
client_secret_jwt,具体细节请关注我的专栏。 目前胖哥已经实现了完整的
private_key_jwt认证的DEMO。
ClientSecretAuthenticationProvider
默认的
client_secret_basic和
client_secret_post由它负责。
PublicClientAuthenticationProvider
处理上面所说的公开客户端的认证方式。
InMemoryOAuth2AuthorizationService优化
主要优化了对未完成授权信息
OAuth2Authorization存储的淘汰策略,如果内存中存储的数量超过
100,会把最老存储的信息淘汰掉。
增加了联合身份的DEMO
Federated Identity Pattern (联合身份模式)举个例子,你同时对接了好几个身份提供商(IDP),你都需要跳不同的授权服务器页面并输入对应的密码,现在这些IDP可以都放在Spring Authorization Server下面,委托给Spring Authorization Server来处理身份认证授权。这样你不用跳来跳去了,只需要维护Spring Authorization Server中IDP的关系了。
请注意该功能不是Spring Authorization Server本身自带的功能。
OAuth2TokenGenerator
0.2.3抽象了
OAuth2Token的的生成模型:
@FunctionalInterface public interface OAuth2TokenGenerator<T extends OAuth2Token> { @Nullable T generate(OAuth2TokenContext context); }
OAuth2授权码使用统一的Token生成模型
授权码授权中的
code的生成现在也需要由
OAuth2TokenGenerator实现,实现类为
OAuth2AuthorizationCodeGenerator。
OAuth2刷新Token使用统一的Token生成模型
OAuth2刷新令牌
OAuth2RefreshToken现在同样需要由
OAuth2TokenGenerator实现。
JWT的生成使用统一的模型
现在JWT的生成也由
OAuth2TokenGenerator来实现,具体的实现类为
JwtGenerator。
支持不透明令牌
现在你可以自定义一个
OAuth2TokenGenerator并注入到Spring IoC来实现自定义的令牌生成逻辑,这意味着不透明令牌也可以通过自定义来实现。
令牌自省过滤器配置现在可以自定义
0.2.3版本之前令牌自省的配置由
OAuth2AuthorizationServerConfigurer负责,现在它由独立的配置类
OAuth2TokenIntrospectionEndpointConfigurer负责。
依赖升级
0.2.3也对部分的依赖进行了升级,具体为:
- 更新到Reactor 2020.0.16
- 更新到Spring Security 5.5.5
- 更新到Spring Framework 5.3.16
- 更新到Spring Boot 2.5.10
胖哥也将跟进变化,对依赖进行逐步升级。
关注公众号:Felordcn 获取更多资讯
相关文章推荐
- Spring整合JMS发布/订阅入门小Demo
- [置顶] 安装docker-compose 并且发布spring boot整合redis做访问计数demo
- ASP.NET Core的身份认证框架IdentityServer4 实践demo
- spring-boot war包启动方式(发布到web容器的demo)
- OAuth2.0学习(3-1)发布 spring-oauth-client 和 spring-oauth-server
- 发布一个demo maven+freemarker+shiro+springmvc+spring+mybatis+redis+mysql
- 由SpringSource发布dm Server的联想
- 由SpringSource发布dm Server的联想
- SpringBoot WebService cxf接口发布以及logbok日志集成 demo源码下载
- Nginx + FastCGI 程序(C/C++) 搭建高性能web service的Demo及部署发布
- 第二篇:spring+activeMQ实现消息队列简单demo
- spring mvc+mybatis整合cms内容发布平台
- springboot2.3.1集成springsecurity的最基础demo
- 在WCF中调用Server.MapPath 获取服务发布目录路径
- 发布SpringMVC项目报错java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
- Spring AOP切面日志Demo 配置文件方式
- 【iHMI43 4.3寸液晶模块】demo例程(版本1.00)发布
- 创建springbootdemo后运行报MongoSocketOpenException错误解决方法
- dubbo+zookeeper+spring的demo
- CXF实现和Spring整合发布WebService