Spring Security整合Oauth2實現(xiàn)流程詳解
一、創(chuàng)建項目并導入依賴
<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> <dependency> <groupId>org.springframework.security.oauth</groupId> <artifactId>spring-security-oauth2</artifactId> <version>2.3.6.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
注:這里的oauth2不是springboot那個,這是springsecurity。
Oauth2一共有四種認證模式是
本篇是password的認證模式,用于前后端分離登陸
第三方登陸一般是授權碼模式
二、相關配置和代碼
注:授權服務器和資源服務器一般是分開來的,我這里就不分開了
2.1)application.properties
spring.redis.host=192.168.21.135
spring.redis.port=6379
spring.redis.database=0
spring.redis.password=520hufei520
2.2)創(chuàng)建授權服務
2.2.1)實現(xiàn)AuthorizationServiceConfigurerAdapter
@Configuration表示這個一個配置類
@EnableAuthorizationServer表示開啟授權服務
2.2.2)注入AuthenticationManager、RedisConnectionFactory、UserDetailsService
AuthenticationManager表示支持password認證模式
RedisConnectionFactory登陸成功后的token需要存在redis里面,因為redis里面有過期機制
UserDetailsService里面存放著用戶信息
2.2.3)重寫方法
2.3)創(chuàng)建資源服務
2.3.1)實現(xiàn)ResourceServerConfigurerAdapter
@configuration表示這是一個配置類
@enbaleResourceServer表示開啟資源服務
2.3.2)重寫方法
2.4)創(chuàng)建Security配置類
2.4.1)實現(xiàn)WebSecurityConfigurerAdapter
2.4.2)將授權服務需要的兩個bean,提供給它
@Bean表示告訴方法,產(chǎn)生一個Bean對象,然后這個Bean對象交給Spring管理。產(chǎn)生這個Bean對象的方法Spring只會調用一次,隨后這個Spring將會將這個Bean對象放在自己的IOC容器中。
@Bean和@Component作用一樣都是將bean注冊到spring容器中去
2.4.3)重寫方法
2.5)創(chuàng)建Controller
三、測試&效果
3.1)獲取訪問資源服務的token
3.2)訪問資源服務
3.3)刷新token
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Spring @Scheduler使用cron表達式時的執(zhí)行問題詳解
Spring給程序猿們帶來了許多便利。下面這篇文章主要給大家介紹了關于Spring @Scheduler使用cron表達式時的執(zhí)行問題的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧2018-09-09Springboot實現(xiàn)Excel批量導入數(shù)據(jù)并保存到本地
這篇文章主要為大家詳細介紹了Springboot實現(xiàn)Excel批量導入數(shù)據(jù)并將文件保存到本地效果的方法,文中的示例代講解詳細,需要的可以參考一下2022-09-09Java 實戰(zhàn)范例之線上婚紗攝影預定系統(tǒng)的實現(xiàn)
讀萬卷書不如行萬里路,只學書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+javaweb+SSM+springboot+mysql實現(xiàn)一個線上婚紗攝影預定系統(tǒng),大家可以在過程中查缺補漏,提升水平2021-11-11Java開發(fā)SpringBoot集成接口文檔實現(xiàn)示例
這篇文章主要為大家介紹了Java開發(fā)SpringBoot如何集成接口文檔的實現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步2021-10-10IntelliJ?IDEA?2022.1.1?沒有CVS的過程分析
這篇文章主要介紹了IntelliJ?IDEA?2022.1.1?沒有CVS的過程解析,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07Intellij IDEA 與maven 版本不符 Unable to import maven project See
這篇文章主要介紹了Intellij IDEA 與maven 版本不符 Unable to import maven project See logs for details: No implementation for org.apache.maven.model.path.PathTranslator was bound,本文通過圖文給大家分享解決方案,需要的朋友可以參考下2020-08-08springboot?log4j2.xml如何讀取application.yml中屬性值
這篇文章主要介紹了springboot?log4j2.xml如何讀取application.yml中屬性值問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12