javascript
springcloud gateway 鉴权_SuperBoot框架是基于SpringCloud、SpringBoot敏捷开发框架
項(xiàng)目介紹
SuperBoot框架是基于SpringCloud、SpringBoot敏捷開(kāi)發(fā)框架,框架開(kāi)發(fā)初衷是為了方便快速開(kāi)發(fā)項(xiàng)目,無(wú)需關(guān)心基礎(chǔ)代碼的編寫(xiě),可以更專(zhuān)注于業(yè)務(wù)本身。框架實(shí)現(xiàn)基于JWT Token授權(quán)驗(yàn)證,實(shí)現(xiàn)單點(diǎn)登錄SSO,服務(wù)鑒權(quán),實(shí)現(xiàn)Redis數(shù)據(jù)緩存,在保證數(shù)據(jù)一致性的前提下提高接口響應(yīng)速度。無(wú)縫集成MongoDB數(shù)據(jù)庫(kù),提供對(duì)非結(jié)構(gòu)型數(shù)據(jù)存儲(chǔ),解決關(guān)系型數(shù)據(jù)庫(kù)瓶頸問(wèn)題。集成swagger框架,實(shí)現(xiàn)自動(dòng)API測(cè)試及調(diào)試功能,解決程序員最反感的編寫(xiě)技術(shù)文檔的問(wèn)題。數(shù)據(jù)源基于Druid,提供更高性能及SQL監(jiān)控。框架提供統(tǒng)一異常處理,統(tǒng)一響應(yīng)結(jié)果,增加對(duì)JPA、Mongo的AOP攔截,由Snowflake ID自動(dòng)生成賦值主鍵,數(shù)據(jù)實(shí)體無(wú)需開(kāi)發(fā)均可由Idea自動(dòng)生成。增刪改查默認(rèn)基于方法名稱(chēng)即可實(shí)現(xiàn),無(wú)需寫(xiě)具體SQL。查詢(xún)支持JPA、QueryDSL、Mybatis等方式。支持?jǐn)?shù)據(jù)庫(kù)讀寫(xiě)分離,Feign增加服務(wù)直接的安全調(diào)用。v01版本是基礎(chǔ)學(xué)習(xí),主分支基于目前線(xiàn)上功能拆出來(lái)的功能模塊,實(shí)現(xiàn)開(kāi)箱即用。
如果GITHUB訪問(wèn)較慢,可以訪問(wèn)碼云上面的同步代碼
https://gitee.com/7040210/SuperBoot
項(xiàng)目結(jié)構(gòu)
super-boot├── client-config -- 項(xiàng)目配置文件信息,業(yè)務(wù)模塊通過(guò)配置中心讀取自動(dòng)配置服務(wù)├── project_info -- 項(xiàng)目相關(guān)信息包含數(shù)據(jù)字典、SQL語(yǔ)句、工具等├── super-boot-utils -- 項(xiàng)目公用工具模塊├── super-boot-base -- 項(xiàng)目公用常量模塊├── super-boot-global -- 項(xiàng)目公用全局模塊├── super-boot-registry -- 注冊(cè)中心├── super-boot-config -- 配置中心├── super-boot-gateway -- 網(wǎng)關(guān)中心├── super-boot-user -- 用戶(hù)中心數(shù)據(jù)流程圖
客戶(hù)端->> 網(wǎng)關(guān):提交請(qǐng)求網(wǎng)關(guān)->> 驗(yàn)證身份:身份驗(yàn)證驗(yàn)證身份-->>客戶(hù)端:驗(yàn)證未通過(guò)驗(yàn)證身份->>Redis:寫(xiě)入用戶(hù)信息網(wǎng)關(guān)->> 業(yè)務(wù)處理:提交業(yè)務(wù)請(qǐng)求數(shù)據(jù)Redis-->>業(yè)務(wù)處理:獲取用戶(hù)信息業(yè)務(wù)處理->>客戶(hù)端:返回結(jié)果數(shù)據(jù)網(wǎng)關(guān)->>注冊(cè)中心:注冊(cè)服務(wù)微服務(wù)->>注冊(cè)中心:注冊(cè)服務(wù)配置中心->>注冊(cè)中心:注冊(cè)服務(wù)配置中心->>網(wǎng)關(guān):獲取配置配置中心->>微服務(wù):獲取配置客戶(hù)端->>網(wǎng)關(guān):提交請(qǐng)求Note right of 網(wǎng)關(guān): 驗(yàn)證用戶(hù)身份、生成用戶(hù)Redis信息網(wǎng)關(guān)->>微服務(wù):獲取用戶(hù)信息微服務(wù)->>網(wǎng)關(guān):返回用戶(hù)信息網(wǎng)關(guān)->>客戶(hù)端:返回結(jié)果數(shù)據(jù)項(xiàng)目依賴(lài)
此分布式項(xiàng)目要求配置人員有相關(guān)的從業(yè)經(jīng)驗(yàn),在啟用之前要安裝好MongoDB,Zookeeper、Kafka、Mysql、Redis等環(huán)境,然后修改項(xiàng)目?jī)?nèi)的具體配置信息。最后導(dǎo)入db.sql文件到數(shù)據(jù)庫(kù)即可。相關(guān)賬號(hào)密碼
注冊(cè)中心及配置中心:
賬號(hào):admin密碼:superboot.orgMYSQL:
用戶(hù):root密碼:root系統(tǒng)管理員:
賬號(hào):admin密碼:123456組織管理員:
賬號(hào):group密碼:123456項(xiàng)目啟動(dòng)順序
1、啟動(dòng)注冊(cè)中心(super-boot-registry)
2、啟動(dòng)配置中心(super-boot-config)
3、啟動(dòng)網(wǎng)關(guān)中心(super-boot-gateway)
4、啟動(dòng)業(yè)務(wù)模塊(無(wú)先后順序,項(xiàng)目?jī)?nèi)包含user為用戶(hù)中心)
模塊介紹
super-boot-utils
此模塊項(xiàng)目共用工具類(lèi)及通用方法常量等信息,項(xiàng)目打包的時(shí)候會(huì)打包為jar包放入項(xiàng)目lib中。
super-boot-base
此模塊項(xiàng)目公用常量信息,項(xiàng)目打包的時(shí)候會(huì)打包為jar包放入項(xiàng)目lib中。
super-boot-global
此模塊項(xiàng)目公共服務(wù),提供讀寫(xiě)分離、緩存、鑒權(quán)、多語(yǔ)等一系列功能,項(xiàng)目打包的時(shí)候會(huì)打包為jar包放入項(xiàng)目lib中。
super-boot-registry
此模塊為注冊(cè)中心,提供所有服務(wù)模塊的注冊(cè)、容錯(cuò)、負(fù)載均衡等功能。分布式環(huán)境中需要配置為高可用集群模式,要保證注冊(cè)中心的穩(wěn)定。
啟動(dòng)后可以訪問(wèn) http://localhost:10000
super-boot-config
此模塊為配置中心,在分布式環(huán)境中需要配置為高可用集群模式,增加安全及穩(wěn)定性。
啟動(dòng)后可以訪問(wèn) http://localhost:11000/config-info.yml
super-boot-gateway
此模塊為API網(wǎng)關(guān)中心,提供統(tǒng)一的API調(diào)用接口及相關(guān)配置功能,支持限流、權(quán)限認(rèn)證等功能。
啟動(dòng)后可以訪問(wèn) http://localhost:9080/swagger-ui.html
super-boot-user
此模塊為用戶(hù)中心,提供用戶(hù)注冊(cè)、密碼修改等相關(guān)功能。
啟動(dòng)后可以訪問(wèn) http://localhost:8090/swagger-ui.html
Idea逆向生成數(shù)據(jù)庫(kù)實(shí)體類(lèi)
第一步配置 數(shù)據(jù)庫(kù)
第二步配置 數(shù)據(jù)庫(kù)連接信
第三步 配置hibernate,如果沒(méi)有cfg.xml文件,點(diǎn)擊ok后會(huì)自動(dòng)生成
第四步 選擇hibernate配置文件生成實(shí)體
第五步 設(shè)置完點(diǎn)擊,選中要生成的實(shí)體的表
項(xiàng)目API接口自動(dòng)添加到數(shù)據(jù)庫(kù)示例代碼
生成效果圖
使用方式為在啟動(dòng)類(lèi)添加如下代碼即可
@Autowired private Pub_DBUtils pub_DBUtils; /** * 掃描URL,如果數(shù)據(jù)庫(kù)中不存在,則保存入數(shù)據(jù)庫(kù) */ //這個(gè)注解很重要,可以在每次啟動(dòng)的時(shí)候檢查是否有URL更新,RequestMappingHandlerMapping只能在controller層用。這里我們放在主類(lèi)中 @PostConstruct public void detectHandlerMethods() { pub_DBUtils.addApiToDB(); }項(xiàng)目啟用校驗(yàn)國(guó)際化功能
1、RESTful增加 @Validated 注解
2、實(shí)體類(lèi)增加需要校驗(yàn)的注解類(lèi)型即可
主要用到的注解類(lèi)型
Spring Data JPA 為此提供了一些表達(dá)條件查詢(xún)的關(guān)鍵字,大致如下:
And --- 等價(jià)于 SQL 中的 and 關(guān)鍵字,比如 findByUsernameAndPassword(String user, Striang pwd)
Or --- 等價(jià)于 SQL 中的 or 關(guān)鍵字,比如 findByUsernameOrAddress(String user, String addr)
Between --- 等價(jià)于 SQL 中的 between 關(guān)鍵字,比如 findBySalaryBetween(int max, int min)
LessThan --- 等價(jià)于 SQL 中的 "
GreaterThan --- 等價(jià)于 SQL 中的">",比如 findBySalaryGreaterThan(int min)
IsNull --- 等價(jià)于 SQL 中的 "is null",比如 findByUsernameIsNull()
IsNotNull --- 等價(jià)于 SQL 中的 "is not null",比如 findByUsernameIsNotNull()
NotNull --- 與 IsNotNull 等價(jià)
Like --- 等價(jià)于 SQL 中的 "like",比如 findByUsernameLike(String user)
NotLike --- 等價(jià)于 SQL 中的 "not like",比如 findByUsernameNotLike(String user)
OrderBy ---等價(jià)于 SQL 中的 "order by",比如 findByUsernameOrderBySalaryAsc(String user)
Not --- 等價(jià)于 SQL 中的 "! =",比如 findByUsernameNot(String user)
In --- 等價(jià)于 SQL 中的 "in",比如 findByUsernameIn(Collection userList) ,方法的參數(shù)可以是 Collection 類(lèi)型,也可以是數(shù)組或者不定長(zhǎng)參數(shù)
NotIn --- 等價(jià)于 SQL 中的 "not in",比如 findByUsernameNotIn(Collection userList) ,方法的參數(shù)可以是 Collection 類(lèi)型,也可以是數(shù)組或者不定長(zhǎng)參數(shù)
總結(jié)
以上是生活随笔為你收集整理的springcloud gateway 鉴权_SuperBoot框架是基于SpringCloud、SpringBoot敏捷开发框架的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: windows比linux差在哪,怎么让
- 下一篇: Linux open函数使用方法记录