JAP(JustAuthPlus) v1.0.1-alpha 版本已于2021年03月05日發(fā)布。
本版本為預(yù)覽版本掂摔,如果遇到問題,請(qǐng)通過 Issue 告知:
jap-core
新功能
- 增加
JapErrorCode
枚舉類赢赊,限定異常碼和提示 - 增加
JapResponse
類乙漓,規(guī)范接口返回內(nèi)容 - 增加
JapTokenHelper
類,統(tǒng)一管理用戶的Token - 增加
JapContext
類释移,維護(hù) JAP 上下文信息 - 增加
JapAuthentication
類叭披,統(tǒng)一管理登錄狀態(tài)信息以及 JAP 上下文信息
修改
修改包結(jié)構(gòu)
- 將
AuthenticateConfig
,JapConfig
移到com.fujieid.jap.core.config
包中 - 將
JapUtil
移到com.fujieid.jap.core.util
包中
刪除文件
- 刪除
JapCacheContextHolder
修改代碼
- 重構(gòu)
AbstractJapStrategy
,引入上下文JapContext
和JapAuthentication
類 - 重構(gòu)
JapConfig
類玩讳,僅保留sso
和ssoConfig
屬性涩蜘,同時(shí)增加tokenExpireTime
和cacheExpireTime
參數(shù) - 修改
JapCacheConfig
中的緩存默認(rèn)有效期為7天 - 修改
JapUserService
接口類中的默認(rèn)內(nèi)容 - 在
JapCache
中添加void removeKey(String key)
方法 - 在
JapException
中增加errorCode
和errorMessage
屬性,方便將異常信息處理為統(tǒng)一格式的返回?cái)?shù)據(jù) - 在
JapStrategy
接口中authenticate
方法的返回類型修改為JapResponse
熏纯,所有模塊的策略方法都返回統(tǒng)一格式的數(shù)據(jù) - 在
JapUser
中增加token
屬性同诫,登錄完成后將自動(dòng)返回 JAP Token - 在
JapUtil
類中為redirect
方法打上@Deprecated
標(biāo)記,未來可能刪除樟澜。同時(shí)增加createToken
方法
jap-oauth2
- 修改
Oauth2Strategy
的authenticate
方法误窖,統(tǒng)一返回JapResponse
jap-oidc
- 修改
OidcStrategy
的authenticate
方法叮盘,統(tǒng)一返回JapResponse
jap-simple
- 修改
SimpleStrategy
的authenticate
方法,統(tǒng)一返回JapResponse
jap-social
- 修改
SocialStrategy
的authenticate
方法贩猎,統(tǒng)一返回JapResponse
jap-sso
- 修改
JapSsoHelper#login
方法的返回值為當(dāng)前用戶的 JAP Token - 新增
JapSsoUtil
類熊户,處理 Token -
JapSsoConfig
類中萍膛,刪除loginUrl
和logoutUrl
屬性
Other
- 增加一些單元測(cè)試
可選 Demo
- 普通示例項(xiàng)目:jap-demo
- 前后端分離項(xiàng)目示例:jap-demo-vue
JAP 是什么吭服?
JAP 是一款開源的登錄中間件,基于模塊化設(shè)計(jì)蝗罗,并且與業(yè)務(wù)高度解耦艇棕,使用起來非常靈活,開發(fā)者可以毫不費(fèi)力地將 JAP 集成到任何 web 應(yīng)用程序中串塑,就像集成 JA 一樣沼琉,簡(jiǎn)單方便。
JAP 要做的是為所有需要登錄認(rèn)證的應(yīng)用提供一套標(biāo)準(zhǔn)的解決方案桩匪,集成所有 APP打瘪。方便開發(fā)者無縫對(duì)接任何第三方應(yīng)用或者自有系統(tǒng)。
- JAP 口號(hào):Just auth into any app!
- JAP 目標(biāo):讓身份鏈接無處可藏
- JAP 價(jià)值:方便開發(fā)者無縫對(duì)接任何第三方應(yīng)用或者自有系統(tǒng)傻昙,提高開發(fā)效率闺骚,減少代碼維護(hù)成本
- JAP 愿景:以開源的方式,受惠于開源社區(qū)妆档,賦能于開發(fā)者僻爽。使之成為開發(fā)者生態(tài)內(nèi)必不可少的“基礎(chǔ)設(shè)施”,以期形成新的技術(shù)標(biāo)準(zhǔn)贾惦。
致開發(fā)者:我們要讓開發(fā)者可以基于 JAP 開發(fā)出自己的 IAM 或者 IDaaS 系統(tǒng)胸梆。
JAP 有什么特點(diǎn)?
- 單點(diǎn)登錄:一處登錄须板,處處通行
- 開箱即用:API 設(shè)計(jì)趨近于白話碰镜,類似并參考 JustAuth
- 多平臺(tái):
- 國內(nèi)外數(shù)十家第三方平臺(tái)(基于 JustAuth)
- OAuth(OIDC) 協(xié)議的平臺(tái),內(nèi)置國內(nèi)外常見平臺(tái)
- SAML 協(xié)議的平臺(tái)习瑰,內(nèi)置國內(nèi)外常見平臺(tái)
- 業(yè)務(wù)解耦:JAP 不深入具體的業(yè)務(wù)洋措,只將授權(quán)認(rèn)證方面的功能抽象出一套標(biāo)準(zhǔn)的組件,方便任意系統(tǒng)快速對(duì)接
- 模塊化:JAP 基于模塊開發(fā)杰刽,基本做到菠发,用哪種引哪種
- 統(tǒng)一標(biāo)準(zhǔn):一切內(nèi)置實(shí)現(xiàn)或者自定義的實(shí)現(xiàn),都基于標(biāo)準(zhǔn)的策略
- 多語言支持:Java贺嫂、Python滓鸠、Go、Node等
適用于哪些場(chǎng)景第喳?
- 新項(xiàng)目立項(xiàng)糜俗,你們需要研發(fā)一套獨(dú)立的、統(tǒng)一的、包含登錄悠抹、認(rèn)證的系統(tǒng)
- 現(xiàn)有登錄模塊為自研珠月,但是新一輪的技術(shù)規(guī)劃中,你們想將登錄認(rèn)證模塊重構(gòu)楔敌,以更加靈活的架構(gòu)適應(yīng)后面的新需求啤挎,比如:集成 MFA 登錄、集成 OAuth 登錄等
- 你們的項(xiàng)目太多卵凑,每個(gè)項(xiàng)目都需要登錄認(rèn)證模塊庆聘,想解決這種重復(fù)勞動(dòng)的問題
- 從長遠(yuǎn)方面考慮,公司或組織或個(gè)人需要一套標(biāo)準(zhǔn)的勺卢、靈活的伙判、功能全面的登錄認(rèn)證功能
- 你們不想將研發(fā)成本放到登錄認(rèn)證這種必須但想做完善又需要花費(fèi)大量時(shí)間成本、人力成本的事情上黑忱,希望有一個(gè)中間件可以完美集成登錄認(rèn)證功能宴抚,使研發(fā)人員有更多的時(shí)間和精力投入到業(yè)務(wù)開發(fā)中,提高研發(fā)產(chǎn)能和研發(fā)效率
- 你們除了需要對(duì)接標(biāo)準(zhǔn)的身份提供商外甫煞,還有一些非標(biāo)準(zhǔn)的身份提供商菇曲,需要投入研發(fā)人員單獨(dú)定制開發(fā)
- 你們企業(yè)中用到的開發(fā)語言較多,比如:Java危虱、Python羊娃、Node等,每種語言對(duì)應(yīng)的系統(tǒng)埃跷,都要使用不同語言實(shí)現(xiàn)相同的登錄認(rèn)證功能
- 你們需要研發(fā)一個(gè)支持 OAuth 登錄的 Web 應(yīng)用程序
- 你們想讓自己的系統(tǒng)支持對(duì)外提供 OAuth 服務(wù)
- 你們需要研發(fā)一個(gè)支持 SAML 登錄的 Web 應(yīng)用程序蕊玷,但又苦于 SAML 那龐大而繁瑣的業(yè)務(wù)流程和配置
- 你們想研發(fā)一個(gè)支持 LDAP 登錄的程序,但又不知道如何入手
- ...
目前實(shí)現(xiàn)的功能
- 實(shí)現(xiàn)賬號(hào)密碼登錄
- 實(shí)現(xiàn)第三方社交帳號(hào)登錄
- 實(shí)現(xiàn)標(biāo)準(zhǔn)的 OAuth 2.0 應(yīng)用的授權(quán)碼登錄
- 實(shí)現(xiàn) OIDC 應(yīng)用的登錄
- 支持同源 domain 的單點(diǎn)登錄
感恩有你弥雹,歡迎加入 JAP 開發(fā)者組織
JAP 開源地址
- github: https://github.com/fujieid/jap
- gitee: https://gitee.com/fujieid/jap
本篇文章由一文多發(fā)平臺(tái)ArtiPub自動(dòng)發(fā)布