国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 3行代碼快速實現Spring Boot Oauth2服務功能

3行代碼快速實現Spring Boot Oauth2服務功能

2021-04-23 11:52五毛程序員 Java教程

oauthserver是一個基于Spring Boot Oauth2的完整的獨立的Oauth服務器。僅僅需要創(chuàng)建相關數據表,修改數據庫的連接信息,你就可以得到一個Oauth服務器。這篇文章給大家介紹3行代碼快速實現Spring Boot Oauth2服務功能,需要的朋友參考下吧

這里的3行代碼并不是指真的只需要寫3行代碼,而是基于我已經寫好的一個spring boot oauth2服務。僅僅需要修改3行數據庫配置信息,即可得到一個spring boot oauth2服務。

項目地址 https://github.com/jeesun/oauthserver

oauthserver

簡介

oauthserver是一個基于spring boot oauth2的完整的獨立的oauth服務器。僅僅需要創(chuàng)建相關數據表,修改數據庫的連接信息,你就可以得到一個oauth服務器。

支持的關系型數據庫:

  • postgresql
  • mysql

已實現的功能:

  1. 集成spring boot oauth2,實現oauth服務;
  2. token保存到關系型數據庫;
  3. 日志記錄保存到文件,并按日歸檔;
  4. 數據庫連接信息加密;
  5. 集成druid數據庫連接池。

使用流程

1. 建表

postgresql

請執(zhí)行src/main/resources/schema-pg.sql,完成數據表的創(chuàng)建和測試數據的導入。

mysql

請執(zhí)行src/main/resources/schema-mysql.sql,完成數據表的創(chuàng)建和測試數據的導入。

2. 修改數據庫連接信息

在application.yml中,配置著數據庫的連接信息。其中,配置項username和password是要經過jasypt加密的,不能直接填明文。加密密鑰由jasypt.encryptor.password配置。你需要使用test目錄下的utiltests工具得到加密字符串。

 
1
2
3
4
5
6
7
8
9
10
11
12
postgresql
# postgresql連接信息
  driver-class-name: org.postgresql.driver
  url: jdbc:postgresql://127.0.0.1:5432/thymelteuseunicode=true&characterencoding=utf-8
  username: enc(htpbg9fq+7p3sntmxuntdxbtwdqrupv+)
  password: enc(abdq6lyospryfqhcqzemtxrozyjvjia4)
mysql
# mysql連接信息
  driver-class-name: com.mysql.jdbc.driver
  url: jdbc:mysql://127.0.0.1:3306/testuseunicode=true&characterencoding=utf-8&usessl=false
  username: enc(yiyjvwtuldgn//yab3kbua==)
  password: enc(9oaijkfggsdfahh3oxy63rhwq+amdmij)

3. 運行

現在,一切已準備就緒。運行項目,當程序成功啟動時,即表明你已配置成功。

4. 測試

在建表時,我已經向表添加了測試數據。以下請求參數的值,均是測試數據,在數據表中可以找得到。請根據需求到數據表中修改對應的值。

在表oauth_client_details表中,已有一條測試數據。列client_id和client_secret的值,分別對應basic oauth的請求參數username和password的值。而列access_token_validity和列refresh_token_validity,分別代表access_token和refresh_token的有效期時間,以秒為單位。測試數據7200和5184000,分別代表2個小時和2個月(60天)。這是一個比較合理的有效期時間的設置,可以參考。

token相關的接口,都需要進行basic oauth認證。

1、根據用戶名和密碼獲取access_token

post http://localhost:8182/oauth/tokengrant_type=password&username=jeesun&password=1234567890c

成功示例:

 
1
2
3
4
5
6
7
{
  "access_token": "ca582cd1-be6c-4a5a-82ec-10af7a8e06eb",
  "token_type": "bearer",
  "refresh_token": "c24a6143-97c8-4642-88b9-d5c5b902b487",
  "expires_in": 3824,
  "scope": "read write trust"
}

失敗示例(用戶名或者密碼錯誤)

 
1
2
3
4
{
  "error": "invalid_grant",
  "error_description": "bad credentials"
}

2、檢查access_token

get http://localhost:8182/oauth/check_tokentoken=ca582cd1-be6c-4a5a-82ec-10af7a8e06eb

成功示例

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
  "aud": [
    "oauth2-resource"
  ],
  "exp": 1524507296,
  "user_name": "jeesun",
  "authorities": [
    "role_admin",
    "role_user"
  ],
  "client_id": "clientidpassword",
  "scope": [
    "read",
    "write",
    "trust"
  ]
}

失敗示例(access_token已過期)

 
1
2
3
4
{
  "error": "invalid_token",
  "error_description": "token was not recognised"
}

3、根據refresh_token獲取新的access_token

post http://localhost:8182/oauth/tokengrant_type=refresh_token&refresh_token=c24a6143-97c8-4642-88b9-d5c5b902b487

成功示例

 
1
2
3
4
5
6
7
{
  "access_token": "690ecd7d-f2b7-4faa-ac45-5b7a319478e8",
  "token_type": "bearer",
  "refresh_token": "c24a6143-97c8-4642-88b9-d5c5b902b487",
  "expires_in": 7199,
  "scope": "read write trust"
}

app實踐指南

app獲取到token信息后,需要保存token信息和請求時間。在傳access_token之前,需要檢查access_token是否過期。為了減少后臺壓力,檢查access_token是否過期應該是在app本地完成。通過token的keyexpires_in(剩余有效期)的值,以及本地記錄的請求時間,和當前時間做對比,可以很方便地判斷出access_token是否過期。如果過期了,需要通過refresh_token獲取新的access_token。因為access_token的有效期只有2個小時,這個驗證是必須的。refresh_token同理。

總結

以上所述是小編給大家介紹的3行代碼快速實現spring boot oauth2服務,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:https://www.jianshu.com/p/20488e032771

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 综合色区| 国产日韩欧美在线观看 | 97成人在线免费视频 | 激情视频网站 | 亚洲精品国产a久久久久久 99热少妇 | www中文字幕 | 欧美精品成人 | 午夜成人在线视频 | 99久久夜色精品国产网站 | 精品一二区 | 在线欧美一区 | 亚洲综合无码一区二区 | 91精品国产91久久久久久最新 | 曰韩中文字幕 | www.国产精品 | 久久久人成影片一区二区三区 | 亚州精品天堂中文字幕 | 欧美成年黄网站色视频 | 亚洲视频中文字幕在线观看 | 国内成人自拍视频 | 国产欧美视频一区二区三区 | 亚洲精品乱码久久久久久蜜桃91 | 国产精品视频一区二区三区不卡 | 亚洲区视频 | 亚洲精品视频一区二区三区 | 亚洲欧美日韩另类一区二区 | 色综合天天天天做夜夜夜夜做 | 成人欧美 | 99久久99久久久精品色圆 | 91亚洲精品乱码久久久久久蜜桃 | 欧美一二 | 日韩精品中文字幕在线 | 日韩美一级 | 国产精品自拍视频网站 | 91av导航 | 亚洲自拍小视频 | 国精产品99永久一区一区 | 中文字幕黄色 | 在线无吗 | 一呦二呦三呦国产精品 | 国产综合精品一区二区三区 |