4.5. Eclipse MicroProfile JWT アプリケーション開発
4.5.1. microprofile-jwt-smallrye サブシステムの有効化 リンクのコピーリンクがクリップボードにコピーされました!
Eclipse MicroProfile JWT 統合は microprofile-jwt-smallrye
サブシステムによって提供され、デフォルト設定に含まれています。サブシステムがデフォルト設定に存在しない場合は、以下のように追加できます。
前提条件
- EAP XP がインストールされている。
手順
JBoss EAP で MicroProfile JWT smallrye 拡張を有効にします。
/extension=org.wildfly.extension.microprofile.jwt-smallrye:add
/extension=org.wildfly.extension.microprofile.jwt-smallrye:add
Copy to Clipboard Copied! Toggle word wrap Toggle overflow microprofile-jwt-smallrye
サブシステムを有効にします。/subsystem=microprofile-jwt-smallrye:add
/subsystem=microprofile-jwt-smallrye:add
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サーバーをリロードします。
reload
reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
microprofile-jwt-smallrye
サブシステムが有効になります。
4.5.2. JWT アプリケーションを開発するための Maven プロジェクトの設定 リンクのコピーリンクがクリップボードにコピーされました!
必要な依存関係と JWT アプリケーションを開発するためのディレクトリー構造で Maven プロジェクトを作成します。
前提条件
- Maven がインストールされている。
-
microprofile-jwt-smallrye
サブシステムが有効になっている。
手順
Maven プロジェクトを設定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、プロジェクトのディレクトリー構造と
pom.xml
設定ファイルを作成します。POM ファイルが
jboss-eap-xp-microprofile
BOM の Eclipse MicroProfile JWT アーティファクトのバージョンを自動的に管理できるようにするには、POM ファイルの<dependencyManagement>
セクションに BOM をインポートします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ${version.microprofile.bom} を、インストールされた BOM のバージョンに置き換えます。
BOM によって管理される Eclipse MicroProfile JWT アーティファクトをプロジェクト POM ファイルの
<dependency>
セクションに追加します。以下の例は、Eclipse MicroProfile JWT 依存関係をファイルに追加する方法を示しています。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.5.3. Eclipse MicroProfile JWT を使用したアプリケーションの作成 リンクのコピーリンクがクリップボードにコピーされました!
JWT トークンに基づいてリクエストを認証し、トークンベアラーのアイデンティティーに基づいて承認を実装するアプリケーションを作成します。
以下の手順では、例としてトークンを生成するコードを提供します。独自のトークンジェネレーターを実装する必要があります。
要件
- Maven プロジェクトが正しい依存関係で設定されている。
手順
トークンジェネレーターを作成します。
この手順は参照用です。実稼働環境の場合は、独自のトークンジェネレーターを実装します。
トークンジェネレーターユーティリティーの
src/test/java
ディレクトリーを作成し、これに移動します。mkdir -p src/test/java cd src/test/java
$ mkdir -p src/test/java $ cd src/test/java
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の内容でクラスファイル
TokenUtil.java
を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
以下の内容を含む
src/main/webapp/WEB-INF
ディレクトリーにweb.xml
ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の内容でクラスファイル
SampleEndPoint.java
を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow @Path
アノテーション付きのメソッドは JAX-RS エンドポイントです。@Claim
アノテーションは JWT 要求を定義します。クラスファイル
App.java
を作成して JAX-RS を有効にします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow アノテーション
@LoginConfig(authMethod="MP-JWT", realmName="MP JWT Realm")
は、デプロイメント中に JWT RBAC を有効にします。以下の Maven コマンドを使用してアプリケーションをコンパイルします。
mvn package
$ mvn package
Copy to Clipboard Copied! Toggle word wrap Toggle overflow トークンジェネレーターユーティリティーを使用して JWT トークンを生成します。
mvn exec:java -Dexec.mainClass=org.wildfly.quickstarts.mpjwt.TokenUtil -Dexec.classpathScope=test -Dexec.args="testUser 2017-09-15 Echoer Subscriber"
$ mvn exec:java -Dexec.mainClass=org.wildfly.quickstarts.mpjwt.TokenUtil -Dexec.classpathScope=test -Dexec.args="testUser 2017-09-15 Echoer Subscriber"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の Maven コマンドを使用してアプリケーションをビルドおよびデプロイします。
mvn package wildfly:deploy
$ mvn package wildfly:deploy
Copy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションをテストします。
ベアラートークンを使用して
Sample/subscription
エンドポイントを呼び出します。curl -H "Authorization: Bearer ey..rg" http://localhost:8080/microprofile-jwt/rest/Sample/subscription
$ curl -H "Authorization: Bearer ey..rg" http://localhost:8080/microprofile-jwt/rest/Sample/subscription
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Sample/birthday
エンドポイントを呼び出します。curl -H "Authorization: Bearer ey..rg" http://localhost:8080/microprofile-jwt/rest/Sample/birthday
$ curl -H "Authorization: Bearer ey..rg" http://localhost:8080/microprofile-jwt/rest/Sample/birthday
Copy to Clipboard Copied! Toggle word wrap Toggle overflow