OAuth2 コード フローのデモ

目次

1. プロジェクトを作成する

二、プロジェクト構造


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

スタートアッププロジェクト
すべて選択してデバッグ
アクセスプロセス
リソース所有者
リソース所有者はクライアントのリクエストを受け取り、認証コードを返す必要があります
 
クライアント
リソース所有者にリクエストを送信して認可コードを取得する コントローラー を作成する
  クライアント
リソース所有者が認証コードを生成した後、クライアントのインターフェースをコールバックし、認証コードを返す必要があります. クライアントが認証コードを取得した後、認証を送信する必要があります.
サーバーはトークンを申請するリクエストを送信します
認証サーバー
認証サーバーはクライアントのリクエストを受け取り、トークンを生成し、トークン データを返します。
クライアント
クライアントはトークンを取得し、そのトークンを使用してリソース サーバーからデータを要求します。
 
リソースサーバー
リソースサーバーはリクエストを受け取り、データを返します

 

おすすめ

転載: blog.csdn.net/weixin_66202611/article/details/128836585