Spring Security整合Oauth2實(shí)現(xiàn)流程詳解
一、創(chuàng)建項(xiàng)目并導(dǎo)入依賴
<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那個(gè),這是springsecurity。
Oauth2一共有四種認(rèn)證模式是
本篇是password的認(rèn)證模式,用于前后端分離登陸
第三方登陸一般是授權(quán)碼模式
二、相關(guān)配置和代碼
注:授權(quán)服務(wù)器和資源服務(wù)器一般是分開來的,我這里就不分開了
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)建授權(quán)服務(wù)
2.2.1)實(shí)現(xiàn)AuthorizationServiceConfigurerAdapter

@Configuration表示這個(gè)一個(gè)配置類
@EnableAuthorizationServer表示開啟授權(quán)服務(wù)
2.2.2)注入AuthenticationManager、RedisConnectionFactory、UserDetailsService

AuthenticationManager表示支持password認(rèn)證模式
RedisConnectionFactory登陸成功后的token需要存在redis里面,因?yàn)閞edis里面有過期機(jī)制
UserDetailsService里面存放著用戶信息
2.2.3)重寫方法


2.3)創(chuàng)建資源服務(wù)
2.3.1)實(shí)現(xiàn)ResourceServerConfigurerAdapter

@configuration表示這是一個(gè)配置類
@enbaleResourceServer表示開啟資源服務(wù)
2.3.2)重寫方法

2.4)創(chuàng)建Security配置類
2.4.1)實(shí)現(xiàn)WebSecurityConfigurerAdapter

2.4.2)將授權(quán)服務(wù)需要的兩個(gè)bean,提供給它


@Bean表示告訴方法,產(chǎn)生一個(gè)Bean對象,然后這個(gè)Bean對象交給Spring管理。產(chǎn)生這個(gè)Bean對象的方法Spring只會(huì)調(diào)用一次,隨后這個(gè)Spring將會(huì)將這個(gè)Bean對象放在自己的IOC容器中。
@Bean和@Component作用一樣都是將bean注冊到spring容器中去
2.4.3)重寫方法

2.5)創(chuàng)建Controller

三、測試&效果
3.1)獲取訪問資源服務(wù)的token

3.2)訪問資源服務(wù)

3.3)刷新token

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Springsecurity Oauth2如何設(shè)置token的過期時(shí)間
- 詳解使用Spring Security OAuth 實(shí)現(xiàn)OAuth 2.0 授權(quán)
- Spring Security OAuth2實(shí)現(xiàn)使用JWT的示例代碼
- 基于Spring Security的Oauth2授權(quán)實(shí)現(xiàn)方法
- SpringSecurityOAuth2 如何自定義token信息
- SpringSecurity OAuth2單點(diǎn)登錄和登出的實(shí)現(xiàn)
- SpringBoot的Security和OAuth2的使用示例小結(jié)
- Spring Security OAuth過期的解決方法
- Spring Security OAuth2認(rèn)證授權(quán)示例詳解
- Spring Security OAuth2.0登出的實(shí)現(xiàn)
相關(guān)文章
Springcloud ribbon負(fù)載均衡算法實(shí)現(xiàn)
這篇文章主要介紹了Springcloud ribbon負(fù)載均衡算法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
Netty分布式NioEventLoop任務(wù)隊(duì)列執(zhí)行源碼分析
這篇文章主要為大家介紹了Netty分布式NioEventLoop任務(wù)隊(duì)列執(zhí)行源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03
Java基礎(chǔ)知識(shí)精通二維數(shù)組的應(yīng)用
為了方便組織各種信息,計(jì)算機(jī)常將信息以表的形式進(jìn)行組織,然后再以行和列的形式呈現(xiàn)出來。二維數(shù)組的結(jié)構(gòu)決定了其能非常方便地表示計(jì)算機(jī)中的表,以第一個(gè)下標(biāo)表示元素所在的行,第二個(gè)下標(biāo)表示元素所在的列。下面簡單了解一下二維數(shù)組,包括數(shù)組的聲明和初始化2022-04-04
線程局部變量的實(shí)現(xiàn)?ThreadLocal使用及場景介紹
這篇文章主要為大家介紹了線程局部變量的實(shí)現(xiàn)?ThreadLocal使用及場景詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01
eclipse下整合springboot和mybatis的方法步驟
這篇文章主要介紹了eclipse下整合springboot和mybatis的方法步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-03-03

