Dante Cloud は、エンタープライズ レベルのマイクロサービス アーキテクチャおよびサービス機能開発プラットフォームであり、ドメイン駆動モデル (DDD) 設計思想を採用し、Spring Authorization Server を完全に採用し、OAuth2.1 プロトコル マイクロサービス アーキテクチャに基づいています。Spring Authorization Server 0.4.3、Spring Boot 2.7.13、Spring Cloud 2021.0.8、Spring Cloud Alibaba 2021.0.5.0、Nacos 2.2.4 の最新バージョンに基づいて開発されたマルチテナント システムは、SpringBoot プログラミングのアイデアに従って、高度にモジュール式でスケーラブルな構成。サービス検出、設定、サーキットブレーカー、電流制限、ダウングレード、モニタリング、マルチレベルキャッシュ、分散トランザクション、ワークフローなどの機能を備えています。
プラットフォームの位置決め
- フロントエンドとバックエンドを分離した、成熟した完全かつ包括的な OAuth2.1 ベースのマイクロサービス アーキテクチャ ソリューションを構築します。
- エンタープライズ レベルのアプリケーションとインターネット アプリケーション向けに設計および開発されており、従来のプロジェクトのマイクロサービスを考慮に入れるだけでなく、インターネット アプリケーションの開発と構築、および迅速なイテレーションのニーズも満たします。
- プラットフォーム アーキテクチャは、マイクロサービス分野とその周辺に関連するさまざまな新興テクノロジまたは主流テクノロジを使用して構築されます。これは、アーキテクチャ テクノロジの選択と研究と探索の段階を迅速に通過するのに役立つ鋭いツールです。
- コードは簡潔かつ標準化されており、構造は合理的かつ明確であり、新しいテクノロジーの開発と応用の典型的かつ包括的なケースであり、開発者が新しいテクノロジーを学習して習得するのに役立ちます。
【1】Dante Cloudに名前を変更した理由
Dante Cloud (Dante)、元のプロジェクト名Eurynome Cloud は、名前が長すぎる、発音しにくい、覚えにくい、その他の問題があると多くの友人が報告しています。そのため、Dromaraオープンソース コミュニティに参加する際に名前が変更されました。
ダンテ、すなわちダンテ・アリギエーリ(西暦1265年~西暦1321年)は、13世紀末のイタリアの詩人、近代イタリアの創始者であり、ヨーロッパ・ルネサンス時代の先駆者の一人である「喜劇」)です。有名で、後にボッカッチョという作家がこれを神聖喜劇と名付けました。
彼は中世イタリア・ルネサンスの最も偉大な詩人、西洋で最も優れた詩人の一人、そして最も偉大な作家の一人と考えられています。エンゲルスは、「封建制の中世の終わりと近代資本主義時代の始まりは、ある偉大な人物によって特徴付けられている。この人物はイタリアのダンテである。彼は中世最後の詩人である。中世の最初の詩人である。」
エンゲルス氏による Dante の評価のようなプロジェクトであり、業界変革期において過去と未来を繋ぎ、企業の情報構築の変革に貢献できるという意味を込めて、名称を「Dante Cloud」に変更しました。
[2]、バージョンの説明
11 月 24 日以降、Spring Boot 3.0 や Spring Cloud 2022.0.0 などの新しいバージョンがリリースされ、Java コミュニティ全体も Java 17 と Spring Boot 3 の新時代に入りました。Java テクノロジーと Spring コミュニティの発展に合わせて、より品質とパフォーマンスが向上したより多くの新機能が実際の開発作業に役立つようになります。Dante Cloud も同期的にアップグレードして適応します。Spring Boot 3.1.1、Spring Cloud 2022.0.3、Spring Cloud Alibaba 2022.0.0.0-RC2、Spring Cloud Tencent 1.11.7-2022.0.1、Nacos 2.2.4 の新しい Dante Cloud バージョン。注意のため、master ブランチに移動してください。
[3]、今回のアップデート内容
- 【大型アップデート】
- [アップグレード] Spring Boot バージョンを 2.7.13 にアップグレードしました
- [アップグレード] Spring Cloud バージョンを 2021.0.8 にアップグレードしました
- [アップグレード] spring-security-oauth2-authorization-server バージョン 0.4.3 にアップグレード
- 【バージョンアップ】Nacosのバージョンが2.2.4にバージョンアップされました
- 【バージョンアップ】デベジムのバージョンを2.3にバージョンアップしました
- [依存関係の更新]
- [アップグレード] Guava バージョンを 32.1.0-jre にアップグレードしました
- [アップグレード] bccrov-jdk15to18 バージョン 1.75 にアップグレード
- [アップグレード] minioのバージョンを8.5.4にアップグレードしました
- [アップグレード] wxjava 4.5.1.B へのバージョンアップ
- 【アップグレード】tencentcloud-sdk-java-sms のバージョンが 3.1.787 にアップグレードされました
- [アップグレード] alipay-sdk-java バージョンを 4.35.171.ALL にアップグレードしました
- 【バージョンアップ】aliyun-sdk-ossのバージョンが3.17.0にバージョンアップされました。
- [アップグレード] hutoolのバージョンを5.8.20にアップグレードしました
- [アップグレード] docker-maven-plugin バージョンを 0.43.0 にアップグレード
- 【バージョンアップ】Commons-ioのバージョンを2.13.0にバージョンアップしました
- [アップグレード] Guava バージョンを 32.0.1-jre にアップグレードしました
- [アップグレード] redisson 3.22.1 へのバージョンアップ
- [アップグレード] logstash-logback-encoder バージョン 7.4 へのアップグレード
- [アップグレード] Skywalkingのバージョンが8.16.0にアップグレードされました
- [アップグレード] minioのバージョンを8.5.3にアップグレードしました
- 【バージョンアップ】fastjson2のバージョンを2.0.34にバージョンアップしました
- [アップグレード] qiniu-java-sdk バージョンを 7.13.1 にアップグレードしました
- 【バージョンアップ】aliyun-sdk-ossのバージョンが3.16.3にバージョンアップされました。
- [アップグレード] Jackson バージョン 2.15.2 にアップグレードされました
[4]、Dante Cloud 2.7.X の機能
1. フロントエンド
- 一般的なオープンソース テンプレートは一切使用せず、新しいテクノロジー スタックを使用し、新しいフロントエンド プロジェクトを完全に「手書き」で作成します。
- 一般的なオープンソース バージョンの使用と設計を基にした、新しいフロントエンド インターフェイス スタイルと操作習慣は、現在一般的な方法と可能な限り一致しています。
- Typescript 言語の機能を最大限に活用し、多数の型検証の問題を解決し、「あらゆる」種類の Typescript プログラミング言語の使用を可能な限り避けてください。
- コード作成には、Composition API やフックなどの Vue3 フレームワークの新機能を最大限に活用します。
- コンポーネント、フック、Typescript のオブジェクト指向機能を最大限に活用して、共通のコンポーネントとコードを抽出し、エンジニアリングの重複を可能な限り削減します。
- 多くの Quasar 基本コンポーネントとアプリケーション機能コンポーネントをカプセル化して、コードの統合された変更、メンテナンス、開発を容易にします。
- プロダクション モードでは、Vite3 ベースのプロジェクト パッケージ化の徹底的なパフォーマンスの最適化が実行されます。
- docker-compose モードで、コンテナ化されたパッケージ化とエンジニアリング製品コードのデプロイメントを提供します。
- パスワード モード、認証コード モード、SMS モード、サードパーティ ソーシャル化およびその他のログイン モードをサポートします。
2、バックエンド
Spring Authorization Server
深いカスタマイズと拡張に基づいて:
-
Spring Authorization Server
とに基づいたSpring Data JPA
マルチテナント システム アーキテクチャを実現し、データベースとスキーマの 2 つのモードをサポートします。 -
に基づいて
Spring Data JPA
、Spring Authorization Server
基本的なデータ ストレージ コードを再構築し、元の JDBC データ アクセス メソッドを置き換え、Spring Authorization Server
元のデータ ストレージの制限を打ち破り、実際のアプリケーションにより適合したメソッドと設計に拡張します。 -
OAuth 2.1 仕様に基づいて、OAuth 2 仕様、フロントエンドとバックエンドの分離に基づく既存のアプリケーションとの互換性を保つために
Spring Authorization Server
カスタム(パスワード) 認証モードが追加され、リフレッシュ トークンの使用をサポートします。Resource Ownership Password
-
OAuth 2.1 仕様に基づいて、SMS 検証コード、WeChat アプレット、JustAuth に基づくサードパーティ アプリケーションのログイン、およびリフレッシュ トークンの使用をサポートするために、
Spring Authorization Server
カスタム(ソーシャル化されたログイン) 認証モードが追加されています。Social Credentials
-
Spring Authorization Server
デフォルトモードを拡張しClient Credentials
、Client Credentials
リフレッシュ トークンの使用をサポートするモードを実装します。 -
Spring Authorization Server
デフォルトモードを拡張して、Client Credentials
インターフェイスを検証するためのスコープ権限の実際の使用を実現します。クライアントスコープの権限設定機能を強化し、既存のユーザー権限システムから切り離す -
Spring Authorization Server
Authorization Code PKCE
認証モードをサポート -
サポートされている
Spring Authorization Server
標準の JWT トークン暗号化検証方法に加えて、カスタム証明書に基づく新しい JWT トークン暗号化検証方法が追加され、構成を通じて動的に変更できます。 -
Opaque Token (不透明トークン) 形式と検証方法をサポートします。これにより、JWT トークンがキャプチャおよび分析されるリスクが軽減されます。構成パラメータを変更することで、デフォルトのトークン形式を不透明トークンまたは JWT トークンに設定できます。
-
OpenID Connect (OIDC) プロトコルを完全にサポートしており、システムの使用中に、OIDC モードと従来の OAuth2 モードを、使用要件に応じてフロントエンド スイッチ構成を通じて迅速に切り替えることができます。
-
詳細な拡張
Authorization Code
、Resource Ownership Password
、およびSocial Credentials
いくつかのモードは、IdToken、Opaque Token、JWT Token、および既存の権限システムを完全に統合します。同時に、IdToken とカスタム トークンの拡張により、二次リクエストなしでユーザー情報を送信できるため、ユーザー情報の頻繁なリクエストが削減されます。 。 -
認可コードモードログインの認証ページと認可確認ページをカスタマイズし
Spring Authorization Server
、認可コードモードログインでは暗号化データ通信を採用します。複数の種類の検証コードがサポートされていますが、動作検証コードは現時点ではサポートされていません。 - JetCache のマルチレベル キャッシュ サポートに基づいて、カスタム
Spring Data JPA
2 レベル キャッシュが実装されており、Spring Cache のクエリ キャッシュ更新の問題を効果的に解決します。 - コード内で
@PreAuthorize
パーミッション アノテーションとパーミッションメソッドを構成することなく、バックエンドの動的構成を通じてアノテーションのパーミッションとパーミッションを完全に統合し、インターフェイス認証とパーミッションの動的変更を実現できます。分散認証スキームを採用して、ゲートウェイの統合認証のプレッシャーと認証の繰り返しの問題を回避します。URL
Spring Security
- 分散サービス独立認証スキームを使用すると、
Spring Security
@PreAuthorize
アクセス許可アノテーション、アクセス許可メソッド、およびURL
アクセス許可は、バックエンドによって動的に構成された後、対応するサービスにリアルタイムで動的に配布されます。 OAuth2
UserDetails
Core Data は、データベースの直接取得とFeign
リモート呼び出しの 2 つのモードをサポートします。OAuth2
直接接続データベース モードのパフォーマンスが向上し、Feign
リモート呼び出しへのアクセスの拡張性が強化されます。ポリシー モードは、構成を通じて動的に変更できます。- カスタム セッション、混合国家秘密 SM2 (非対称) および SM4 (対称暗号化) アルゴリズムに基づいて、秘密キーが動的に生成され、送信用に暗号化されます。「1人1コード機構」を活用し、パスワードモードのログインデータの動的暗号化送信を実現します。検証に協力して、
OAuth2 Client
インターフェイス呼び出しとフロントエンドおよびバックエンドのデータ送信の合理性とセキュリティを保護します。
[5]、インターフェイスのプレビュー
Dromara オープンソース コミュニティ
1. コミュニティビジョン
すべてのオープンソース愛好家にオープンソースの喜びを体験してもらいましょう。
2.コミュニティ公式サイト
https://dromara.orgは、Dromara オープンソース コミュニティの公式 Web サイトです。
3. 会員プロジェクト