数据库置疑修复工具
本工具基于SQLServer產品設計問題,常因斷電、出錯、丟失文件等原因引起數據錯誤,此現象大部分伙伴都曾碰到且不易修復,本工具通過智能識別以快速處理置疑等數據庫異常狀態
目前支持數據庫版本有MSDE\SQL2000\SQL2005\SQL2008,適用于公司所有產品線,且針對T3|T6|T+無縫完美兼容
文件:n459.com/f/25127180-479733688-1b11c9 (訪問密碼:551685)
以下內容無關:
-------------------------------------------分割線---------------------------------------------
程序員的故事如此簡單之繞不過去的開源情結
我們準備做一件偉大的事,也可以說是一件真真正正普惠的事。
絮
是的,你沒有看錯,就是“絮”而非“序”,請允許我絮叨二三。
我們即將要做的,我們認為是一件偉大的事,也可以說是一件真真正正普惠的事。我們要開發一款真真正正國產的并且未來將會走向國際的完全開源的產品 - Just Auth Plus(以下簡稱 “JAP”)。
JAP 是 JustAuth(以下簡稱 “JA”) 的升級版。
立項之初,我和我的合伙人之間曾有過激烈的意識層面的碰撞,碰撞的根源就在于開源和商業化之間的根本矛盾。開源如何盈利?不商業化的話,我們如何保持溫飽?就算開源了,怎么確保能吸引足夠多的優秀的開發者參與共創?
因為我們都是技術出身,也都是熱衷于開源事業的技術人,也都對開源有著發自內心的熱情,所以,不管多少次的碰撞、爭吵,最后都妥協到了這份情結之上。
JAP 口號:Just auth for any app!
JAP 目標:讓身份鏈接無處可藏(干掉傳統 Login 模塊復雜的邏輯!)
JAP 價值:方便開發者無縫對接任何第三方應用或者自有系統,提高開發效率,減少代碼維護成本
JAP 愿景:以開源的方式,受惠于開源社區,賦能于開發者。使之成為開發者生態內必不可少的“基礎設施”,以期形成新的技術標準。
一、源于此(JA 的起源)
說起 JustAuth 的起源其實很簡單,除了源于對技術的熱愛,另外一個重要原因就是因為技術人的“懶”。
從 16 年起, 我開始自己開發博客系統,并且集成了 QQ 和微博兩個第三方平臺的登錄功能,在集成其 SDK 時,費了好大功夫去研究源碼、查閱文檔、測試 API。最苦惱的就是,因為每個平臺的 SDK 規則不一致,所以,同樣的功能,必須復制 N 個版本,然后去適配,最終導致的結果就是項目中多出了一大堆冗余的代碼。如下:
這是當時集成 QQ 和微博的實現代碼。其實,接觸的平臺多了,自會發現一些問題:
各個平臺間相互割裂(硬傷,無法避免)
各個平臺的 SDK(部分平臺并沒有現成的 SDK 可供使用)代碼龐大、復雜
各個平臺的 API 比較繁雜
國外網站的 API 文檔閱讀困難
這可以說也算是一個契機。
到了 18 年,當時 QQ 群里除了站長外,還有一些開發者,應這些朋友的要求,我開源了自己的第一個博客系統 OneBlog,隨著使用者的增加,以及用戶的需求,我準備重新接入第三方登錄功能。
但是鑒于之前接入第三方登錄時的“陰影”,我也因此萌生了要開發一款開箱即用的 Oauth 登錄工具包。這也正是后來 JustAuth “誕生”的最大原因。歸根結底,還是因為一個“懶”,因為我不想耗費過多的精力去每個平臺翻閱文檔,一遍又一遍的復制同樣的代碼,一遍又一遍的重寫同一個功能,最主要的是我知道一定會有很多人碰到了和我一樣的問題。
二、行于此(JA 的發展)
JustAuth自開源起, 就備受廣大開發者的關注,這一點也是我很欣慰的,因為我知道,我開源的這個工具,起碼不是一個“廢材”。 細數 JustAuth 的迭代之路,到目前為止,已發布到了v1.15.9 版本,回顧這一年多的路程,確實有一些需要記錄的點。
2019-01-31 提交了第一行代碼
2019-03-25 發布了 v1.0.0 ,當天就被收錄到碼云推薦項目名單中,一周內都位列日排行榜和周排行榜第一名
2019-03-27 正式發布 v1.0.1 版本到 maven 中央倉庫
2019-05-20 第一位貢獻者 xkcoding 加入
2019-06-20 發布 v1.7.0 版本,重構了部分代碼,jar 包由原來的 ?130+kb? 優化到 ?110+kb?(by xkcoding)
2019-06-29 發布 v1.8.0 版本,這一版算是分水嶺。修改 login 方法的參數為 AuthCallback,封裝回調返回的參數,同時增加 code 和 state 參數校驗,預防 CSRF,v1.8.0 之前的版本中是沒有 state 這一概念的。
2019-07-16 第二位貢獻者 pengisgood 加入
2019-07-18 如夢技術的大佬春哥入群,后期好多需求和想法都有春哥的建議。春哥是 Spring Cloud 微服務開發核心 mica 的作者,同時像 avue、Pigx、bladex 等項目多多少少都有春哥的助力。
2019-07-19 發布 v1.9.0 版本,解決 v1.8.0 隱藏的大 bug,重構部分代碼,優化代碼結構,減少編譯后的代碼量
2019-07-21 JustAuth 正式喜提碼云【GVP 】稱號
2019-07-30 發布 v1.9.3 版本,擴展 state 緩存實現
2019-08-06 發布 v1.10.0 版本,簡單封裝極簡版的針對 JustAuth 的 ?Log? 工具類,去掉 slf4j 依賴。這一版開始支持開發者自定義 state 緩存插件(Redis、Memcache 等)
2019-09-04 發布 ?justauth-spring-boot-starter?,全面支持 SpringBoot 快速集成(by xkcoding)
2019-09-17 發布 v1.12.0 版本,添加 Nutzboot 版的 demo,正式支持由用戶自定義擴展第三方授權登錄。
2020-03-17 發布 v1.14.0 版本,集成 simple-http ,解放 ?hutool-http? 強依賴,具體的 HttpUtil 實現,由用戶自己去選擇,JustAuth 不再強制干預用戶對 http 工具的選擇權
2020-06-24 發布 v1.15.5 版本,集成阿里云平臺;登錄成功后返回第三方用戶原始數據
2020-06-30 發布 v1.15.6 版本,遷移“幫助文檔”到獨立網站 https://justauth.wiki,增加忽略校驗 state 的功能
2020-09-11 發布 v1.15.7 版本,升級 Github Access Token 驗證方式;JA 正式支持自定義 scope 參數,使 JA 的應用場景更廣,而不僅僅是登錄
2020-10-25 發布 v1.15.8 版本,升級 simple-http 版本 from 1.0.2 to 1.0.3, 修復 jdk11 的 httpclient 使用默認超時時間的問題
2021-01-01 發布 v1.15.9 版本,新增喜馬拉雅、飛書、企業微信網頁授權平臺,升級 facebook api 版本。
到目前(2021/1/19)為止,JA 取得的成績:
增長趨勢
已獲 star: ?gitee(4.5k)?、 ?github(9.8k)?
2019 年 7 月份獲得 Gitee GVP 稱號
2019 年 8 月份 Github 上最熱門的 Java 開源項目
目前收集到的使用用戶(包含企業、各熱門商業項目、個人項目等):
并且還有很多企業也在使用 JA 實現第三方授權登錄,不過由于企業方不方便公開所以并未加到列表中。
證書
如果您現在也在使用 JA,并且愿意與我們共享,請提交到如下地址(任選一個):
https://github.com/justauth/JustAuth/issues/17
https://gitee.com/yadong.zhang/JustAuth/issues/IZ2T7
我們承諾,僅將獲取到的信息,用于 JA 官網、項目 Readme 文檔或者官方推薦文章中,不會用于其他任何非法、違規或者對用戶不利的場景中。
三、愿于此(JA 的未來)
Is that all? No, not enough!
JA 能取得目前的成績,全靠各位開發者/組織/企業/社區伙伴的支持,我們也在這兒衷心的感謝各位領導、各位朋友以及各位社區內的小伙伴。
雖然 JA 目前的成績算是挺好,但我們不愿止步于此,不愿意讓 JA 僅止步于 “第三方登錄”,我們想做的更好,因此我們準備正式立項“JAP”!
JAP 是什么?
JAP 是一款開源的認證中間件,基于模塊化設計,并且與業務高度解耦,使用起來非常靈活,開發者可以毫不費力地將 JAP 集成到任何 web 應用程序中,就像集成 JA 一樣,簡單方便。
JAP 要做的是為所有需要身份認證的應用提供一套標準的解決方案,集成所有 APP。方便開發者無縫對接任何第三方應用或者自有系統。
JAP 口號:Just auth into any app!
JAP 目標:讓身份鏈接無處可藏
JAP 價值:方便開發者無縫對接任何第三方應用或者自有系統,提高開發效率,減少代碼維護成本
JAP 愿景:以開源的方式,受惠于開源社區,賦能于開發者。使之成為開發者生態內必不可少的“基礎設施”,以期形成新的技術標準。
JAP 開源地址:https://gitee.com/fujieid/jap
JAP 開發背景?
JA 是為了干掉第三方登錄,JA Plus 是為了干掉整個登錄相關的業務模塊。
JAP 有什么特點?
單點登錄:一處登錄,處處通行
開箱即用:API 設計趨近于白話,類似并參考 JustAuth
多平臺:
國內外數十家第三方平臺(基于 JustAuth)
OAuth(OIDC) 協議的平臺,內置國內外常見平臺
SAML 協議的平臺,內置國內外常見平臺
業務解耦:JAP 不深入具體的業務,只將授權認證方面的功能抽象出一套標準的組件,方便任意系統快速對接
模塊化:JAP 基于模塊開發,基本做到,用哪種引哪種
統一標準:一切內置實現或者自定義的實現,都基于標準的策略
多語言支持:Java、Python、Go、Node 等
JAP 有什么功能?
集成賬號密碼登錄
支持自有系統賬號
支持第三方 API 接入
集成第三方登錄(基于 JA)
集成 OAuth 登錄(包含 OIDC)
提供 Server 端服務
支持自定義第三方服務
集成 LDAP 登錄
集成 SAML 登錄
提供 Server 端服務
支持自定義第三方服務
集成 AD 域登錄
MFA
賬號退出
多語言支持
…
JAP 適用于哪些場景?
新項目立項,你們需要研發一套包含登錄、認證的系統
現有登錄模塊為自研,但是新一輪的技術規劃中,你們想將登錄認證模塊重構,以更加靈活的架構適應后面的新需求,比如:集成 MFA 登錄、集成 OAuth 登錄等
你們的項目太多,每個項目都需要登錄認證模塊,想解決這種重復勞動的問題
從長遠方面考慮,公司或組織或個人需要一套標準的、靈活的、功能全面的登錄認證功能
你們不想將研發成本放到登錄認證這種必須但想做完善又需要花費大量時間成本、人力成本的事情上,希望有一個中間件可以完美集成登錄認證功能,使研發人員有更多的時間和精力投入到業務開發中,提高研發產能和研發效率
你們除了需要對接標準的身份提供商外,還有一些非標準的身份提供商,需要投入研發人員單獨定制開發
你們企業種用到的開發語言較多,比如:Java、Python、Node 等,每種語言對應的系統,都要使用不同語言實現相同的登錄認證功能
你們需要研發一個支持 OAuth 登錄的 Web 應用程序
你們想讓自己的系統支持對外提供 OAuth 服務
你們需要研發一個支持 SAML 登錄的 Web 應用程序,但又苦于 SAML 那龐大而繁瑣的業務流程和配置
你們想讓自己的系統支持對外提供 SAML 服務
你們想研發一個支持 LDAP 登錄的程序,但又不知道如何入手
你們覺得傳統的賬號密碼非常脆弱,所想讓用戶使用一次性的手機驗證碼或郵箱驗證碼進行登錄
你們企業希望聯合其現有的企業用戶目錄,以允許員工使用其現有的企業憑據登錄各種內部和第三方應用程序。
…
JAP 常見問題有哪些?
JAP 不支持具體的業務操作嗎?
JAP 針對用戶、應用等業務數據,只提供標準的業務接口,不提供數據庫層面的支持。JAP 要做的是為廣大開發者提供一套技術標準,既然是標準,那就不能依賴于任何和具體業務相關的邏輯。不管你們的系統是用的 MySQL、Oracle、SQLlite、Redis、MongoDB 還是其他的,JAP 通通不關心。JAP 對外提供標準接口,業務端只需要按需實現 JAP 的接口即可,這種設計能在最大程度上增加它的靈活性,使它不受限于某一具體的數據庫實現方案。
JAP 可以用到企業級項目嗎?
當然,JAP 的價值就在于:方便開發者無縫對接任何第三方應用或者自有系統,提高開發效率,減少代碼維護成本。所以對于企業來說,這是一個降本增效的功能。JAP 基于模塊化開發,并且不侵入業務系統,可以十分方便的集成到企業內部各個系統或者統一的登錄認證網關中。
JAP 可以商用嗎?
JAP 基于 LGPL 3.0 協議。商用分為以下兩種情況:
LGPL 允許商業軟件通過類庫引用(link)方式使用而不需要開源商業軟件的代碼。這使得采用 LGPL 協議的開源代碼可以被商業軟件作為類庫引用并發布和銷售。
如果修改 LGPL 協議的代碼或者衍生,則所有修改的代碼,涉及修改部分的額外代碼和衍生的代碼都必須采用 LGPL 協議。因此 LGPL 協議的開源代碼不適合通過修改和衍生的方式做二次開發的商業軟件采用。
四、我們需要什么?
我們的愿景(以開源的方式,受惠于開源社區,賦能于開發者。使之成為開發者生態內必不可少的“基礎設施”,以期形成新的技術標準)決定了我們即將要走的這條道路的艱難性無疑是巨大的。
我們不僅僅只是想把這款作品推廣到國內眾多開發者、組織和企業用戶身邊,讓他們享受開源帶來的便利;我們還要把這個作品推向更廣闊的空間,推向國際,讓更多的開發者、組織和企業了解并真真正正的使用這個項目、受惠于這個項目。
既然我們選擇了開源,選擇了奉獻,選擇了這將“一條道走到黑”的路,就需要我們能一直走下去。但開源的路何其漫長、何其孤獨,“路漫漫其修遠兮,吾將上下而求索”。
我們知道,僅憑我們自己的力量就想推動這個項目發揚光大、普惠開發者還遠遠不夠,我們也深信,只有發揮團隊的力量,集思廣益,才能打造出一個真正優秀的、真正受歡迎的、真正標榜的能屹立于開源之林的頂尖項目!所以我們需要尋找一些真誠的、志同道合的、靠譜的合作伙伴和戰友。
就像我在之前直播分享 JustAuth 時(前情回顧:由表入里全面介紹 JustAuth)表達過的一個觀點一樣:和一群志同道合的朋友一起做一件喜歡的事情,是一種幸福。巧合的是,高瓴資本創始人兼首席執行官張磊也提過類似的觀點:高瓴資本張磊:找一幫你喜歡的、真正靠譜的人,一起做有意思的事。
是的,我們準備做的這一切,都是源于我們對技術的熱愛,對開源的熱愛,以及對國內開源事業的熱愛。因此,我們也需要找到和我們有相同興趣、愛好、目標的人來一起完成這件有意義的事。
如果你也對 JAP 感興趣,請將以下信息發給我們:
個人姓名、郵箱(郵箱或者手機二選一)
個人開源首頁(Gitee 或者 Github)
個人的說明,比如做過哪些開源項目或者參與過哪些知名的開源項目
發送郵件到:support@fujieid.com
更多詳情,請參考鏈接JAP 文檔中心
五、社區相關
我們會高標準、高要求我們的核心社區伙伴。如果你想加入到我們的核心團隊中,如果你想參與到 JAP 項目社區,請仔細閱讀以下內容:
成員要求
所有成員基本要求
尊重開源,熱愛開源。尊重是前提,熱愛是目的。
團結友善,樂于協作。
熱愛技術,擅用技術。
…
核心成員要求
如果你想成為社區的核心成員,請滿足以下條件:
需至少有一個開源的 star 數超 1k 的項目
有過開源社區參與、維護、管理經驗
對身份認證相關內容有個人成熟的觀點、看法或愿望
…
如何成為核心成員
如滿足以上條件(核心成員要求),請按照以下格式,發送郵件到我們的官方郵箱(support@fujieid.com):
姓名
個人網站(如有)
開源項目地址(不限于 Github、Gitee、Bitbucket 等)
為什么要加入社區核心團隊(個人簡要說明)
如不滿足以上條件,并且仍想加入我們的核心團隊,請簡要描述你的個人履歷,發送至我們的官方郵箱:support@fujieid.com
成員福利
基本成員福利
享有該共創項目的官方提名權。
享有官方舉辦的一切基于該共創項目的盈利活動(包括但不限于技術大會、沙龍、企業培訓等)的優先參與權和門票(如果有)優惠權。
…
核心成員福利
所有歸于該項目的盈利(包括但不限于技術支持、技術服務等),統一按照貢獻內容、貢獻質量分配。
根據貢獻內容、貢獻質量,永久享有該共創項目的一切“Title”,并且在合理合法合規的前提下可以任意使用該項目的一切權利(署名權等)。
官方舉辦的一切基于該項目的盈利活動(包括但不限于技術大會、沙龍、企業培訓等)的免費參與權。
與其他核心成員共同享有“社區權力”。
享有 北京符節科技有限公司 所有產品優惠權。包括但不限于:免費使用、官方優惠券等。
…
違規項
惡意篡改、刪除項目代碼。
惡意擾亂社區。
發布謾罵、歧視、仇恨、反政治等言論。
基于該共創項目,刪除 License 后私自 “二開”(再次開源)。
聯合其他核心成員,以小幫派的形式行使社區權力以達到自己的目的,破壞社區的和平性。
…
社區權力
由核心成員共同擁有。
享有對該項目普通成員(參與者、貢獻者)所貢獻的代碼和文件的表決權(予以對提交請求的同意、拒絕等權力)。
享有對該項目發展規劃的表決權。
享有對該項目核心成員的罷免權(僅針對違規成員)。
…
社區規劃
組建團隊(社區)
尋找核心成員,需滿足上面提到的“核心成員要求”。
打造 JAP 品牌
編碼
編碼
編碼
開源社區布道
尋找資本投資
拓寬海外場景
完成愿景
總結
- 上一篇: Linux下Gcc生成和使用静态库和动态
- 下一篇: 深入mysql慢查询设置的详解