JJWTを使用してペイロードからカスタムフィールドを取得するにはどうすればよいですか

ジェイコブマイル

OK、JWTを生成するときにペイロードにいくつかのカスタムクレームを追加しています。フロントエンド(javascript)でそれらをうまく引き出すことができます。次に、JavaScriptにajax呼び出しをマイクロサービスに送信させ、JWTを一緒に渡します。マイクロサービスのJWTからカスタムクレームを取得したいと思います。私は次のことをしています:

Claims claims = Jwts.parser().setSigningKey(Vars.SECRET_KEY).parseClaimsJws(token).getBody();
 User user = claims.get("customuser", User.class);

そしてそれは例外をスローします。

io.jsonwebtoken.RequiredTypeException: Expected value to be of type: class net.netdatacorp.netdauth.model.User, but was class java.util.LinkedHashMap
    at io.jsonwebtoken.impl.DefaultClaims.get(DefaultClaims.java:128)

これが、私のカスタムクレームのフロントエンドのJWTインスペクターでのデータの外観です。

{
  jti: "83bffbad-7d36-4370-9332-21a84f2a3dce",
  iat: 1498241526,
  sub: "test",
  iss: "www.test.net",
  customuser: {
    userId: 1,
    userCd: "TMM",
    firstNm: "Testy",
    lastNm: "McTesty",
    userNm: "test",
    emailAddress: "[email protected]",
    active: true,
    createdDt: 1491355712000,
    createdByUserId: 0,
    lastUpdateDt: 1498199278000,
    lastUpdateByUserId: 0,
    lastLoginDt: 1484928016000
  }
}

カスタムクレームを引き出すために何が欠けていますか?

ジェイコブマイル

OK、それで私はJJWTの代わりにJose4Jを使用するように切り替えました、そしてすべてのものを機能させるために働いた後、私はおそらくJJWTで同様のことをすることができたかもしれないことに気づきました。したがって、私がやったことは、Gsonを使用してオブジェクトのJSONエンコーディングを実行し、結果のJSON文字列をクレームとして添付することでした。したがって、カスタムクレームを元に戻したい場合は、クレームを文字列として抽出し、Gsonライブラリを使用してPOJOに変換し直します。

GsonBuilder gsonBuilder = new GsonBuilder();
Gson gson = gsonBuilder.create();

JwtConsumer jwtConsumer = getConsumer();

JwtClaims jwtClaims = jwtConsumer.processToClaims(token);
String userStr = jwtClaims.getClaimValue("user", String.class);
User user = gson.fromJson(userStr, User.class);

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ログファイルからレックスを使用して2つのフィールドを取得するにはどうすればよいですか?

分類Dev

WordPressのカスタムフィールドを使用してフロントエンドのユーザーのプロファイル編集ページを作成するにはどうすればよいですか?

分類Dev

ワイルドカードを使用して文字列からAppxのフルネームを取得するにはどうすればよいですか?

分類Dev

APIを使用してTrelloカスタムフィールドを取得/設定するにはどうすればよいですか?

分類Dev

カスタムウィザードページからの情報を使用して、Inno Setupにインストールフォルダーを動的に設定させるにはどうすればよいですか?

分類Dev

Railsを使用してカスタムファイルアップロード検証モデルを追加するにはどうすればよいですか?

分類Dev

カスタムコードを使用してOffice365MAPIプロファイルを作成するにはどうすればよいですか?

分類Dev

WordPressでPHPheaders()を使用して、カスタムプラグインページからファイルをダウンロードするにはどうすればよいですか?

分類Dev

PHPを使用してローカルシステムに画像ファイルをダウンロードするにはどうすればよいですか?

分類Dev

Django Adminのresponse_change内からカスタムフォームフィールド値を取得するにはどうすればよいですか?

分類Dev

Pythonを介してWorkfrontでカスタムフィールド値を取得するにはどうすればよいですか?

分類Dev

Dialogflowボットを使用してSlackの方法でカスタムペイロードを送信するにはどうすればよいですか?

分類Dev

Wordpressで、ファイルアップロードオプションを使用してカスタムフォームをコーディングし、MySqlにレコードを保存するにはどうすればよいですか?

分類Dev

Googleスクリプトを使用してTrelloのカスタムフィールドに値を追加するにはどうすればよいですか?

分類Dev

Firebaseリアルタイムデータベースからキー値またはフィールドキーを使用して、すべてのフィールドと値を削除するにはどうすればよいですか?

分類Dev

Firebaseリアルタイムデータベースからキー値またはフィールドキーを使用して、すべてのフィールドと値を削除するにはどうすればよいですか?

分類Dev

AndroidでドローアブルとしてXMLを使用してカスタムシェイプを作成するにはどうすればよいですか?

分類Dev

JavaでAsposePDFを使用してフォームからフィールド値を取得するにはどうすればよいですか?

分類Dev

django_grapheneを使用してdjangoモデルのカスタムフィールドを解決するにはどうすればよいですか?

分類Dev

インスペクターツールを使用して、ユーザーがフォーム値を変更したり、入力フィールド要素を削除したりできないようにするにはどうすればよいですか?

分類Dev

Google App Scriptのカスタムダイアログウィンドウからデータを取得するにはどうすればよいですか?

分類Dev

ファイルとして保存されているParse-serverから画像をロードし、Javaを使用してAndroid-StudioのカスタムListViewに表示するにはどうすればよいですか?

分類Dev

Pythonを使用してJIRAのカスタムフィールド値を更新するにはどうすればよいですか?

分類Dev

高度なカスタムフィールドを使用して投稿をクエリするにはどうすればよいですか?

分類Dev

QuickBooks V3 DataServiceを使用して請求書カスタムフィールドの値を設定するにはどうすればよいですか?

分類Dev

Bookshelf.jsのカスタムフィールド名を使用して多対多の関係を作成するにはどうすればよいですか?

分類Dev

JOOQを使用してPostgresの「無限大」をタイムスタンプフィールドに挿入するにはどうすればよいですか?

分類Dev

テキストフィールドからフォーカスを削除してボタンに設定するにはどうすればよいですか?

分類Dev

AppleScriptを使用してWebページのフォームウィンドウのタブから移動するにはどうすればよいですか?

Related 関連記事

  1. 1

    ログファイルからレックスを使用して2つのフィールドを取得するにはどうすればよいですか?

  2. 2

    WordPressのカスタムフィールドを使用してフロントエンドのユーザーのプロファイル編集ページを作成するにはどうすればよいですか?

  3. 3

    ワイルドカードを使用して文字列からAppxのフルネームを取得するにはどうすればよいですか?

  4. 4

    APIを使用してTrelloカスタムフィールドを取得/設定するにはどうすればよいですか?

  5. 5

    カスタムウィザードページからの情報を使用して、Inno Setupにインストールフォルダーを動的に設定させるにはどうすればよいですか?

  6. 6

    Railsを使用してカスタムファイルアップロード検証モデルを追加するにはどうすればよいですか?

  7. 7

    カスタムコードを使用してOffice365MAPIプロファイルを作成するにはどうすればよいですか?

  8. 8

    WordPressでPHPheaders()を使用して、カスタムプラグインページからファイルをダウンロードするにはどうすればよいですか?

  9. 9

    PHPを使用してローカルシステムに画像ファイルをダウンロードするにはどうすればよいですか?

  10. 10

    Django Adminのresponse_change内からカスタムフォームフィールド値を取得するにはどうすればよいですか?

  11. 11

    Pythonを介してWorkfrontでカスタムフィールド値を取得するにはどうすればよいですか?

  12. 12

    Dialogflowボットを使用してSlackの方法でカスタムペイロードを送信するにはどうすればよいですか?

  13. 13

    Wordpressで、ファイルアップロードオプションを使用してカスタムフォームをコーディングし、MySqlにレコードを保存するにはどうすればよいですか?

  14. 14

    Googleスクリプトを使用してTrelloのカスタムフィールドに値を追加するにはどうすればよいですか?

  15. 15

    Firebaseリアルタイムデータベースからキー値またはフィールドキーを使用して、すべてのフィールドと値を削除するにはどうすればよいですか?

  16. 16

    Firebaseリアルタイムデータベースからキー値またはフィールドキーを使用して、すべてのフィールドと値を削除するにはどうすればよいですか?

  17. 17

    AndroidでドローアブルとしてXMLを使用してカスタムシェイプを作成するにはどうすればよいですか?

  18. 18

    JavaでAsposePDFを使用してフォームからフィールド値を取得するにはどうすればよいですか?

  19. 19

    django_grapheneを使用してdjangoモデルのカスタムフィールドを解決するにはどうすればよいですか?

  20. 20

    インスペクターツールを使用して、ユーザーがフォーム値を変更したり、入力フィールド要素を削除したりできないようにするにはどうすればよいですか?

  21. 21

    Google App Scriptのカスタムダイアログウィンドウからデータを取得するにはどうすればよいですか?

  22. 22

    ファイルとして保存されているParse-serverから画像をロードし、Javaを使用してAndroid-StudioのカスタムListViewに表示するにはどうすればよいですか?

  23. 23

    Pythonを使用してJIRAのカスタムフィールド値を更新するにはどうすればよいですか?

  24. 24

    高度なカスタムフィールドを使用して投稿をクエリするにはどうすればよいですか?

  25. 25

    QuickBooks V3 DataServiceを使用して請求書カスタムフィールドの値を設定するにはどうすればよいですか?

  26. 26

    Bookshelf.jsのカスタムフィールド名を使用して多対多の関係を作成するにはどうすればよいですか?

  27. 27

    JOOQを使用してPostgresの「無限大」をタイムスタンプフィールドに挿入するにはどうすればよいですか?

  28. 28

    テキストフィールドからフォーカスを削除してボタンに設定するにはどうすればよいですか?

  29. 29

    AppleScriptを使用してWebページのフォームウィンドウのタブから移動するにはどうすればよいですか?

ホットタグ

アーカイブ