源代碼鏈接
安裝httpie 需要 python 環(huán)境
pip install --upgrade httpie
進(jìn)入D:\Project目錄干花,在此目錄下打開(kāi)CMD匾效,調(diào)用httpie,創(chuàng)建 oauth2 項(xiàng)目
http -d https://start.spring.io/starter.zip javaVersion==17 groupId==com.my.demo artifactId==oauthService name==oauth-service baseDir==oauth-service bootVersion==2.6.6.RELEASE dependencies==cloud-starter
將生成的oauthService.zip解壓縮到當(dāng)前目錄吃沪,然后進(jìn)入到oauth-service文件夾
導(dǎo)入數(shù)據(jù)庫(kù)腳本 腳本地址
可見(jiàn) user_1的 isactive 為 0,用戶的密碼都是 {noop}123456 的明文方式
sts中導(dǎo)入項(xiàng)目
修改 POM文件,添加引用 javax.xml.bind等等一堆庫(kù) 是為解決springSecurityFilterChain的編譯錯(cuò)誤
修改 application.properties 配置文件
server.port=8509
spring.application.name=oauth-service
spring.redis.database=0
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.password=
spring.redis.timeout=2000
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/oauth2?serverTimezone=GMT%2B8&useSSL=false
spring.datasource.username=root
spring.datasource.password=
修改主類文件
主類文件夾下建立 config, service 兩個(gè)文件夾
config下添加兩個(gè)配置文件(WebSecurityConfig.java,AuthorizationServerConfig.java)绘雁,service目錄下添加Redis緩存Token實(shí)現(xiàn)(RedisTokenStoreService)
如果想用bcrypt編碼 則所有的數(shù)據(jù)庫(kù)端的密碼都保存成
{bcrypt}$2a$10$l4Su6LU.w.HIgpHXn31Hc.1VKbkv7.EY.P7VDzJxyImrZEMDW3Hkq
同時(shí)修改AuthorizationServerConfig.java 文件
@Autowired
private PasswordEncoder passwordEncoder;
@Bean
public ClientDetailsService clientDetails() {
JdbcClientDetailsService jdbcClientDetailsService = new JdbcClientDetailsService(dataSource);
jdbcClientDetailsService.setPasswordEncoder(passwordEncoder);
return jdbcClientDetailsService;
}
編譯,運(yùn)行
測(cè)試
可以看到 user_1 是被禁用的
換成 Test用戶援所,則可以獲取到Token
查看Redis緩存