質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
OAuth 2.0

OAuth 2.0(Open Authorization 2.0)は、APIを通して保護されたリソース(サードパーティのアプリケーション)へアクセスする為のオープンプロトコルです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

IntelliJ IDEA

IntelliJ IDEA(インテリジェイ アイディア)は、JetBrains社が開発した、 JavaやScalaなどで利用される統合開発環境です。

Q&A

解決済

1回答

1600閲覧

Spring Securty oauth2 oauth/tokenにcurlした結果得るjasonのフォーマットを変えたい

tanaka_Maysun

総合スコア6

OAuth 2.0

OAuth 2.0(Open Authorization 2.0)は、APIを通して保護されたリソース(サードパーティのアプリケーション)へアクセスする為のオープンプロトコルです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

IntelliJ IDEA

IntelliJ IDEA(インテリジェイ アイディア)は、JetBrains社が開発した、 JavaやScalaなどで利用される統合開発環境です。

0グッド

0クリップ

投稿2017/10/20 02:54

編集2017/10/23 02:15

タイトルについて
帰ってくるJasonのフォーマットを変えたいです。
現在はJavaのほうで実装しています。

java

1public class CustomTokenEnhancer extends JwtAccessTokenConverter{ 2 @Override 3 public OAuth2AccessToken enhance(OAuth2AccessToken accessToken, OAuth2Authentication authentication) { 4 request request = new request(); 5 6 Map<String, Object> additionalInfo = new LinkedHashMap<String, Object>(); 7 Map<String, Object> additionalInfo2 = new LinkedHashMap<String, Object>(); 8 Map<String, Object> additionalInfo3 = new LinkedHashMap<String, Object>(); 9 10 additionalInfo.put("A",0); 11 additionalInfo.put("B",additionalInfo2); 12 additionalInfo2.put("AA","aa"); 13 additionalInfo2.put("BB","bb"); 14 additionalInfo2.put("CC","cc"); 15 additionalInfo3.put("AAA",aaa); 16 additionalInfo3.put("BBB",bbb); 17 additionalInfo3.put("CCC",ccc); 18 ((DefaultOAuth2AccessToken) accessToken).setAdditionalInformation(additionalInfo3); 19 System.out.println(((DefaultOAuth2AccessToken) accessToken).getAdditionalInformation()); 20 String token = encode(accessToken,authentication); 21 additionalInfo2.put("token","JWTアクセストークンが入って欲しい"); 22 ((DefaultOAuth2AccessToken) accessToken).setAdditionalInformation(additionalInfo); 23 return accessToken; 24 } 25}

curlした結果が以下になります

curl

1{"access_token":"アクセストークン","token_type":"bearer","expires_in":11111,"scope":"仮","A":"a","B":{"AA":"aa","BB":"bb","token":"additionalInfo3だけのアクセストークンがほしい"},"jti":"9152f485-5f6f-4dfb-90b7-7d6c1707ea82"}

理想は
{"A":"a","B":{"AA":"aa","BB":"bb","token":"additionalInfo3だけのアクセストークンがほしい"}
この部分だけが結果として返ってくることです。
tokenの中身はただjwtになればいいだけではなく、アクセストークンとして機能して欲しいです。
可能でしょうか?

発行するjwtに情報を追加できる場所はわかるのですが、それをどこが発行しているのかはわかりません。デバッグした感じ、oauth2のライブラリが用意してくれているクラスを色々通ってることはわかるのですが、keyとvalueを編集できない形で用意しているくらいにしかわかりません。
仕事でやれと言われてとりあえず方法を探しているのですが、ほんとにできるのかは誰もわからない状態です。

10/23 jasonのフォーマットを作っているらしいところをコピペしていじってみたが、変化がなかった。別のクラスで最終的なフォーマットを吐き出しているようだけど、そこがわからないため、未だ調査中

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/10/20 03:16

JSON 返却側をそういう風に実装してください
tanaka_Maysun

2017/10/20 05:16

oauth2のライブラリ(DefaultOAuth2AccessTokenクラス)がフォーマットを勝手に作ってくれてるくさいんですが、finalだったりprivateだったりで直接いじれなさそうだったので、その返却側はどのクラスでどういじれるのだろうってのが知りたいです。一ヶ月はつまずいてます。
退会済みユーザー

退会済みユーザー

2017/10/20 06:48

あくまでも「Default」なので自作してくださいってことでしょう
tanaka_Maysun

2017/10/20 07:15

あーそういう意図があるかもなんですね。その線で頑張ってみます。
guest

回答1

0

自己解決

oauth2を使わないことになりました。

投稿2017/10/23 05:52

tanaka_Maysun

総合スコア6

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問