以下全文SpringAuthorizationServer简称:SAS背景Spring团队正式宣布SpringSecurityOAuth将停止维护,该项目将不再进行任何迭代。目前Spring生态中的OAuth2授权服务器是SpringAuthorizationServer,作为SpringBoot3.0可以正式投入生产,SpringBoot2.7.0的过渡版本已经过期大量关于SpringSecurity的配置类。如果使用过期配置的旧版本,则无法向上升级。迁移过程本文以PIG微服务开发平台为例,适用于SpringSecurityOAuth2.3<->2.5认证中心迁移①Java1.8支持最新的基于Java11的SAS0.3,低版本Java无法使用.之后和SpringSecurity官方Team沟通0.3.1会继续兼容Java1.8。我们联合springboot中文社区编译了适配Java1.8的版本。坐标如下io.springboot.securityspring-security-oauth2-authorization-server0.3.0②授权方式扩展扩展支持密码方式,基于oauth2.1协议的SAS不支持密码方式扩展支持短信登录③Redis令牌存储官方目前没有提供基于Redis令牌的持久化方案。PIG扩展PigRedisOAuth2AuthorizationService以支持④Token输出格式。使用内省令牌时,默认实现是ku4R4n7YD1f584KXj4k_3GP9o-HbdY-PDIIh-twPVJTmvHa5mLOifaNhbBvFNBbse6_wAMcRoOWuQs9qeBWpxLQ4QVZfH1vo9Uc7WL3SP3u82j0XU5x结合redis高效获取token,结合RDM分组也可以更方便的图形化观察统一prefix::tokentype::clientID::username::uuid@BeanpublicOAuth2TokenGeneratoroAuth2TokenGenerator(){);//注入Token添加关联用户信息accessTokenGenerator.setAccessTokenCustomizer(newCustomeOAuth2TokenCustomizer());返回新的DelegatingOAuth2TokenGenerator(accessTokenGenerator,newOAuth2RefreshTokenGenerator());Format{"access_token":"xx","refresh_token":"xx","scope":"server","token_type":"Bearer","expires_in":43199}Token增强输出关联用户信息{"sub":"admin","clientId":"test","access_token":"xx","refresh_token":"xx","license":"https://pig4cloud.com",“user_info”:{“username”:“admin”,“accountNonExpired”:true,“accountNonLocked”:true,“credentialsNonExpired”:true,“enabled”:true,“id”:1,“deptId”:1,“phone":"17034642999","name":"admin","attributes":{}}}⑥授权码方式个性化⑦资源服务器自检方案扩展支持资源服务器本地查询扩展资源服务器本地自检-优点:1。实时更新用户状态2.减少网络调用,提升性能源码:https://github.com/pig-mesh/pig