このプロジェクトについて
Sa-Token は、dromara コミュニティによって保守されている軽量な Java 権限認証フレームワークです。Apache-2.0 ライセンスでオープンソース化されており、現在のバージョンは v1.46.0、JDK 8 から 25 をサポートしています。プロジェクトは「ワンストップ」認証ソリューションとして位置付けられており、コアモジュールにはログイン認証、権限認証、シングルサインオン(SSO)、OAuth2.0、マイクロサービス認証が含まれます。
ログイン認証に関しては、フレームワークは静的呼び出しだけでセッションログインと検証を完了できます。例えば、StpUtil.login(アカウントID) でログインを完了し、StpUtil.checkLogin() でログイン状態を検証します。未ログインの場合は NotLoginException がスローされます。権限認証は、アノテーション方式とルートインターセプター方式の2つをサポートしています。アノテーション(例: @SaCheckPermission("user:add"))は認証とビジネスコードを分離でき、ルートインターセプターは SaInterceptor と SaRouter.match を使用してパスごとに権限を分割します。
フレームワークがカバーする機能は多く、README に列挙されているものには、シングル/マルチエンドログイン、同端末排他ログイン、リメンバーミー方式、二段階認証、強制ログアウト(アカウントIDまたはトークン値による)、アカウント停止、一時的な身份切替、他人アカウントの模擬、セッション照会、グローバルリスナーとグローバルフィルター、マルチアカウント体系認証、HTTP Basic/Digest 認証、パスワード暗号化ツール、一時トークン、独立 Redis、自動更新、テンプレート方言(Thymeleaf、beetl)などがあります。永続層は Redis を統合して再起動時のデータ消失を防ぎ、前後端分離シナリオにおける APP、ミニプログラムなどの Cookie なし端末の認証をサポートします。
SSO モジュールは3つのモードを提供します。モード1はフロントエンドが同一ドメインかつバックエンドが同一 Redis の場合に適用され、共有 Cookie によってセッションを同期します。モード2はフロントエンドが異なるドメインだがバックエンドが同一 Redis の場合に適用され、URL リダイレクトによってセッションを伝播します。モード3はフロントエンドが異なるドメインかつバックエンドが異なる Redis の場合に適用され、HTTP リクエストで ticket を検証してセッションを取得します。プロジェクトは NoSdk モードのサンプルと sso-server インターフェースドキュメントも提供しており、非 Java プロジェクトの連携を容易にし、ドメイン検証、ticket 検証、パラメータ署名検証などのセキュリティ対策も含まれています。
OAuth2 モジュールは、認可コード、インプリシット、パスワード、クライアントクレデンシャルの4つの認可モードをサポートしています。さらに、フレームワークは JWT 統合(3つのモード)、RPC 呼び出しの認証と状態伝達(dubbo、grpc など)、API Key シークレット認可、API パラメータ署名(改ざん防止、リプレイ防止)などの機能を提供します。
統合面では、SpringBoot 2 に加えて、SpringBoot 3/4、Solon、JFinal などのフレームワーク向けの統合パッケージを提供し、Gateway、ShenYu、Zuul などのゲートウェイのルートインターセプター認証にも対応しています。プロジェクトには60以上の独立したサンプルが付属しており、ログイン認証、権限認証、SSO、OAuth2、マイクロサービス認証、JWT、パラメータ署名などのシナリオをカバーし、多言語実装バージョン(Rust、Go、NodeJS、PHP)のコミュニティリンクも提供されています。
ドキュメントは主に中国語ですが、繁体字中国語、英語、日本語、韓国語、ロシア語版も提供されています。README には複数の統合事例が挙げられており、Snowy、RuoYi-Vue-Plus、Smart-Admin、橙单、灯灯、拾壹博客などがあり、Gitee GVP、GitCode G-Star などのコミュニティ栄誉にも言及されています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.