日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring Security——OAuth 2.0 Client自动配置源代码分析

發布時間:2024/10/5 javascript 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Security——OAuth 2.0 Client自动配置源代码分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

基本概念

OAuth2.0:OAuth2.0是OAuth協議的延續版本,但不向前兼容OAuth 1.0(即完全廢止了OAuth1.0)。 OAuth 2.0關注客戶端開發者的簡易性。要么通過組織在資源擁有者和HTTP服務商之間的被批準的交互動作代表用戶,要么允許第三方應用代表用戶獲得訪問的權限。同時為Web應用,桌面應用和手機,和起居室設備提供專門的認證流程。?

官方文檔

https://docs.spring.io/spring-security/site/docs/5.2.3.RELEASE/reference/html5/#oauth2

Maven

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-oauth2-client</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>

源代碼分析

?用于OAuth客戶端支持的Spring Boot 2.x自動配置類為OAuth2ClientAutoConfiguration。

功能:?

  • 從配置的OAuth客戶端屬性中注冊ClientRegistrationRepository?@Bean由組成的ClientRegistration。
  • 提供WebSecurityConfigurerAdapter?@Configuration并通過啟用OAuth 2.0登錄httpSecurity.oauth2Login()。

?OAuth2ClientAutoConfiguration類中導入OAuth2ClientRegistrationRepositoryConfiguration類 和OAuth2WebSecurityConfiguration類。

OAuth2ClientRegistrationRepositoryConfiguration類 ?

OAuth2ClientProperties類

封裝application.properties中spring.security.oauth2.client的配置信息

OAuth2ClientPropertiesRegistrationAdapter

整合預定義配置和自定義配置

?OAuth2WebSecurityConfiguration類?

自定義配置DEMO?

@Configuration public class OAuth2LoginConfig {@EnableWebSecuritypublic static class OAuth2LoginSecurityConfig extends WebSecurityConfigurerAdapter {@Overrideprotected void configure(HttpSecurity http) throws Exception {http.authorizeRequests(authorizeRequests ->authorizeRequests.anyRequest().authenticated()).oauth2Login(withDefaults());}}@Beanpublic ClientRegistrationRepository clientRegistrationRepository() {return new InMemoryClientRegistrationRepository(this.googleClientRegistration());}private ClientRegistration googleClientRegistration() {return ClientRegistration.withRegistrationId("google").clientId("google-client-id").clientSecret("google-client-secret").clientAuthenticationMethod(ClientAuthenticationMethod.BASIC).authorizationGrantType(AuthorizationGrantType.AUTHORIZATION_CODE).redirectUriTemplate("{baseUrl}/login/oauth2/code/{registrationId}").scope("openid", "profile", "email", "address", "phone").authorizationUri("https://accounts.google.com/o/oauth2/v2/auth").tokenUri("https://www.googleapis.com/oauth2/v4/token").userInfoUri("https://www.googleapis.com/oauth2/v3/userinfo").userNameAttributeName(IdTokenClaimNames.SUB).jwkSetUri("https://www.googleapis.com/oauth2/v3/certs").clientName("Google").build();} }

?

參考文章

https://shentuzhigang.blog.csdn.net/article/details/105641709

總結

以上是生活随笔為你收集整理的Spring Security——OAuth 2.0 Client自动配置源代码分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。