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:addCopy to Clipboard Copied! Toggle word wrap Toggle overflow microprofile-jwt-smallryeサブシステムを有効にします。/subsystem=microprofile-jwt-smallrye:add
/subsystem=microprofile-jwt-smallrye:addCopy to Clipboard Copied! Toggle word wrap Toggle overflow サーバーをリロードします。
reload
reloadCopy 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-microprofileBOM の 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/javaCopy 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 packageCopy 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:deployCopy 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/subscriptionCopy 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/birthdayCopy to Clipboard Copied! Toggle word wrap Toggle overflow