目次
1. プロジェクトを作成する
新しいプロジェクトを作成するとき、作業領域を変更する場合は、maven アドレスを変更することを忘れないでください。そうしないと、プラグインをダウンロードするときに、C ドライブのメモリを占有するだけでなく、ダウンロードが非常に遅くなります。
プロジェクトのインポート
新しいプロジェクトをインポートすると、新しいプラグインがダウンロードされます.maven アドレスを変更することを忘れないでください.ここで maven アドレスを変更した後でも、ダウンロードされたプラグインはデフォルトのアドレスにダウンロードされることに注意してください.このとき,開発ツールを再起動できます
図に示すように、プロジェクトが正常にインポートされた後
構造の説明:
プロセス: 上記のブログは同じです。ここではコードを使用して OAuth2 に慣れるだけです。
クライアントは、リソース所有者から認可コードを申請しますリソース所有者が発行した認可コード認証コードを取得した後、クライアントは認証サーバーにトークンを申請します認証サーバーは、アプリケーションの下のトークンを受け取りますクライアントはトークンを取得した後、リソース サーバーからデータを要求します。
二、プロジェクト構造
補充:
上記のタグ: 機能は、マイクロサービス プロジェクト全体のバージョンをロックすることです。親プロジェクトにサブモジュールがある場合は、再インポートする必要があります
親プロジェクトにサブモジュールがない場合、対応する依存関係をインポートする必要はありません
各モジュールの構造を工程順に見ていきましょう
クライアント
springbootプロジェクトを
作成し
、構成に必要な依存関係を追加します
<dependencies>
<dependency>
<groupId>org.apache.oltu.oauth2</groupId>
<artifactId>org.apache.oltu.oauth2.client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
アプリケーション.yml
spring:
application:
name: OAuth2-client
server:
port: 8080
認証サーバー
pom.xml
<dependencies>
<dependency>
<groupId>org.apache.oltu.oauth2</groupId>
<artifactId>org.apache.oltu.oauth2.authzserver</artifactId>
</dependency>
<dependency>
<groupId>org.apache.oltu.oauth2</groupId>
<artifactId>org.apache.oltu.oauth2.resourceserver</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
アプリケーション.yml
spring:
application:
name: OAuth2-authorization-server
server:
port: 8081
リソース所有者
pom.xml
<dependencies>
<dependency>
<groupId>org.apache.oltu.oauth2</groupId>
<artifactId>org.apache.oltu.oauth2.authzserver</artifactId>
</dependency>
<dependency>
<groupId>org.apache.oltu.oauth2</groupId>
<artifactId>org.apache.oltu.oauth2.resourceserver</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
アプリケーション.yml
spring:
application:
name: OAuth2-resource-owner
server:
port: 8082
リソースサーバー
<dependencies>
<dependency>
<groupId>org.apache.oltu.oauth2</groupId>
<artifactId>org.apache.oltu.oauth2.authzserver</artifactId>
</dependency>
<dependency>
<groupId>org.apache.oltu.oauth2</groupId>
<artifactId>org.apache.oltu.oauth2.resourceserver</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
アプリケーション.yml
spring:
application:
name: oauth2-resource-server
server:
port: 8083
スタートアッププロジェクト
すべて選択してデバッグ
アクセスプロセスリソース所有者リソース所有者はクライアントのリクエストを受け取り、認証コードを返す必要がありますクライアントリソース所有者にリクエストを送信して認可コードを取得する コントローラー を作成するクライアントリソース所有者が認証コードを生成した後、クライアントのインターフェースをコールバックし、認証コードを返す必要があります. クライアントが認証コードを取得した後、認証を送信する必要があります.サーバーはトークンを申請するリクエストを送信します認証サーバー認証サーバーはクライアントのリクエストを受け取り、トークンを生成し、トークン データを返します。クライアントクライアントはトークンを取得し、そのトークンを使用してリソース サーバーからデータを要求します。リソースサーバーリソースサーバーはリクエストを受け取り、データを返します