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

歡迎訪問 生活随笔!

生活随笔

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

javascript

Spring Security OAuth笔记

發布時間:2025/7/14 javascript 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Security OAuth笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  因為工作需要,系統權限安全方面可能要用到Spring Security OAuth2.0,所以,近幾天了解了一下OAuth相關的東西。目前好像還沒有系統的學習資料,學習主要是通過博客,內容都是大同小異而且講述的比較亂,可能還摻雜了一些個人不夠全面的理解,所以有必要的話后面還得自己查看源碼。

  本來說寫個demo先用起來試試,但是在用的時候遇到了一些問題暫時還沒找到原因,因為Spring Security OAuth是基于Spring Security的,可能得去看一下Security的內容才能解決這些問題,所以這篇博客只是簡單記錄一下近幾天學習到的內容。

  網上普遍都用了一個“云沖印”的例子來說明OAuth的應用場景,就是第三方登錄,比如在某個網站使用QQ登錄、微博登錄、微信登錄等都屬于OAuth的體現,就是讓該網站獲取賬號的一些數據或者執行一些操作,但是不泄露賬號密碼等重要信息來保證賬號安全。OAuth2授權已然是互聯網開放平臺的統一標配。除了第三方登錄,還通常應用在微服務架構中各服務間的調用,保證服務間的安全性。

  OAuth推薦可以看看這篇博客:理解OAuth 2.0

OAuth2.0分為兩個部分:

  • 1、認證服務器 Authorization Service

認證服務器負責對客戶端進行認證授權,為客戶端頒發令牌(token),OAuth2.0提供了4種授權模式。客戶端必須得到用戶的授權,才能獲得令牌,OAuth2.0還提供了刷新令牌的功能。

?

  • 2、資源服務器 Resource Service

資源服務器提供了一些受token令牌保護的資源,資源服務器通過對token進行驗證來判斷是否允許客戶端的訪問操作。

?

一、在項目中使用需要添加以下maven依賴:

?

二、配置認證服務器

?

?

配置認證服務器需要重寫AuthorizationServerConfigurerAdapter中的配置方法,用 @EnableAuthorizationServer 注解來配置OAuth2.0 授權服務機制,重寫用@Bean注解的幾個configure方法一起來配置這個授權服務。包括以下3個配置項: ?
  • ClientDetailsServiceConfigurer:用來配置客戶端詳情(ClientDetailsService),客戶端詳情信息在這里進行初始化,可以使用內存或者JDBC來存儲調取詳情信息。

它是AuthorizationServerConfigurer 的一個回調配置項,配置時有以下幾個重要的屬性:

?

clientId:(必須的)用來標識客戶的Id。

secret:(需要值得信任的客戶端)客戶端安全碼,如果有的話。

scope:用來限制客戶端的訪問范圍,如果為空(默認)的話,那么客戶端擁有全部的訪問范圍。

authorizedGrantTypes:此客戶端可以使用的授權類型,默認為空。

authorities:此客戶端可以使用的權限(基于Spring Security authorities)。

?

  • AuthorizationServerSecurityConfigurer:用來配置令牌端點(Token Endpoint)的安全約束。
  • AuthorizationServerEndpointsConfigurer:用來配置授權(authorization)以及令牌(token)的訪問端點和令牌服務(token services)。

?

這個配置對象是AuthorizationServerConfigurer的一個回調配置項,有一個叫做 pathMapping() 的方法用來配置端點URL鏈接,它有兩個參數:

?

第一個參數:這個端點URL的默認鏈接(String)。

第二個參數:你要進行替代的URL鏈接(String)。

?

框架的默認URL鏈接如下列表,可以作為這個 pathMapping() 方法的第一個參數:

?

/oauth/authorize:授權端點,這個URL應該被Spring Security保護起來只供授權用戶訪問。

/oauth/token:令牌端點。

/oauth/confirm_access:用戶確認授權提交端點。

/oauth/error:授權服務錯誤信息端點。

/oauth/check_token:用于資源服務訪問的令牌解析端點。

/oauth/token_key:提供公有密匙的端點,如果你使用JWT令牌的話。

?

二、配置資源服務器

?

?

  配置資源服務器必須通過 @EnableResourceServer 注解到一個 @Configuration 配置類上,并且必須使用 ResourceServerConfigurer 這個配置對象來進行配置,(這里選擇繼承自 ResourceServerConfigurerAdapter 然后重寫其中的方法,參數就是這個對象的實例),@EnableResourceServer 注解自動增加了一個類型為 OAuth2AuthenticationProcessingFilter 的過濾器鏈。下面是一些可以配置的屬性:

?

tokenServices:ResourceServerTokenServices 類的實例,用來實現令牌服務。

resourceId:這個資源服務的ID,這個屬性是可選的,但是推薦設置并在授權服務中進行驗證。

其他的拓展屬性:例如 tokenExtractor 令牌提取器用來提取請求中的令牌。

請求匹配器:用來設置需要進行保護的資源路徑,默認的情況下是受保護資源服務的全部路徑。

受保護資源的訪問規則:默認的規則是簡單的身份驗證(plain authenticated)。

其他的自定義權限保護規則:通過 HttpSecurity 來進行配置。

?

  因為Spring Security OAuth是基于Spring Security的,所以還需要配置Spring Security。到目前為止,配置還是存在一些問題的,初步認為是和Spring Security有關,所以這部分配置后面弄清楚了再說。

轉載于:https://www.cnblogs.com/Mr-XiaoLiu/p/9796240.html

總結

以上是生活随笔為你收集整理的Spring Security OAuth笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

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