当前位置: 首页 > 后端技术 > Java

再见,SpringSecurityOAuth!!

时间:2023-04-01 15:23:58 Java

新品官宣近日,Spring正式上线了《Spring Authorization Server》项目:本次的《Spring Authorization Server》项目正式上线,去掉了之前的体验状态。此举与版本0.2.0的发布同时进行,这也是第一个正式支持的生产就绪版本。项目前辈先看一个2019SpringSecurityOAuth2.0路线图更新说明:SpringSecurityOAuth2.0RoadmapUpdatehttps://spring.io/blog/2019/1...大概意思是:SpringSecurity项目是用来支持的授权服务器不是一个合适的选择,因为授权服务器需要一个库来构建,而SpringSecurity作为一个框架,不适合参与构建库或产品。市面上有大量商业和开源的授权服务器可供选择,因此,SpringSecurity团队决定不再提供对授权服务器的支持。.另外,2018年初,Spring宣布SpringSecurityOAuth项目正式进入维护模式,并计划在近期完全停止支持。我们进入SpringSecurityOAuth项目的主页:https://projects.spring.io/sp...可以看到弃用通知:SpringSecurityOAuth项目已经被弃用,提供最新的OAuth2.0支持由SpringSecurity项目。更多详细信息请参见OAuth2.0迁移指南:https://github.com/spring-pro...即使SpringSecurityOAuth项目已被SpringSecurity项目接管,但SpringSecurity不再包含对授权服务器的支持支持,可以用商业的,开源的,也可以自己搭建,反正Spring已经不提供了,纯属框架。.项目背景Spring放弃授权服务器后,来自社区的反馈、博客、Gitter中的讨论、GitHub中的评论都得到了热烈的反响。他们都强烈要求Spring提供对授权服务器的支持。Spring可能顶不住压力,或者真的意识到Spring生态真的需要一个授权服务器。.于是在2020/04/15,Spring团队宣布了一个新的《Spring Authorization Server》项目,继续为Spring授权服务器提供支持。https://spring.io/blog/2020/0...这是一个由SpringSecurity团队主导的社区驱动项目,专注于为Spring社区提供授权服务器支持。这个项目也开始替换为AuthorizationServer支持提供的SpringSecurityOAuth。完整功能列表:TheOAuth2.0AuthorizationFrameworkAuthorizationGrantAuthorizationCodeClientCredentialsRefreshTokenClientAuthenticationHTTPBasicHTTPPOSTUserConsentAuthorizationCodeGrantProofKeyforCodeExchangebyOAuthPublicClients(PKCE)OAuth2.0TokenRevocationOAuth2.0TokenIntrospectionOAuth2.0AuthorizationServerMetadataJSONJWebToken(JWT)JWS)JSONWebKey(JWK)OpenIDConnectCore1.0AuthorizationCodeFlowOpenIDConnectDiscovery1.0ProviderConfigurationEndpointOpenIDConnectDynamicClientRegistration1.0ClientRegistrationEndpointUpcomingFeatures:JSONWebToken(JWT)ProfileforOAuth2.0ClientAuthenticationandAuthorizationGrants2.0OAuthMutual-TLSClientAuthenticationandCertificate-BoundAccessTokensOpenIDConnectCore1.0UserInfoEndpointOAuth2.0TokenExchange这部分就不介绍了。后续栈长有时间会进行详细的理论+实战。关注公众号Java技术栈,No.立即推送。为什么需要授权服务器?你需要了解OAuth2.0协议,它定义了四种角色:Client:客户端,即请求授权用户资源的第三方应用;ResourceOwner:资源拥有者,授权Client访问其账户的用户;Authorizationserver:授权服务器,即服务提供者用来处理用户授权和认证的服务器;Resourceserver:资源服务器,即服务商为用户提供受保护资源的服务器;另外,OAuth2.0支持四种运行模式:授权码模式隐式授权模式Password模式Client模式但一般我们使用较多的是授权码模式。授权码方式的操作流程如下:流程说明:1.客户端请求用户授权;2、用户同意授权客户端并返回授权码;3、客户端通过授权码向认证服务器申请token;4、认证服务器对客户端进行认证,返回token;5、客户端使用token向资源服务器获取资源;6、资源服务器验证token,返回资源;如流程所示,OAuth2授权码方式的运行过程中AuthorizationServer(授权服务器)必不可少。授权服务器用于授权认证,以及AccessToken(令牌)的颁发、管理和撤销。授权服务器可以与资源服务器在不同的服务器上,也可以是同一台服务器。综上所述,Spring于2020年4月正式宣布上线《Spring Authorization Server》项目,上线一年多。效率很高,团队的目标也很明确,就是让《Spring Authorization Server》项目最终成为一个Java平台。OAuth2授权服务器上事实上的标准框架。好了,今天的分享就到这里,后面栈长会继续解读更多Java主流技术,关注公众号Java技术栈,第一时间推送。另外我也整理了Spring系列的主流面试题和参考答案,关注公众号Java技术栈回复关键词“面试”刷题。最后,如果觉得我的文章对你有用,动动你的小手,送给正在看的人,转发吧,原创不易,楼主需要你的鼓励。版权声明:本文为公众号《Java技术栈》原创。原创并不容易。转载或引用本文内容请注明出处。禁止抄袭和洗稿。学习。近期热点文章推荐:1.1,000+Java面试题及答案(2021最新版)2.别在满屏的if/else中,试试策略模式,真的很好吃!!3.操!Java中xx≠null的新语法是什么?4、SpringBoot2.5发布,深色模式太炸了!5.《Java开发手册(嵩山版)》为最新版本,赶快下载吧!感觉不错,别忘了点赞+转发!