タイトルについて
帰ってくる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のフォーマットを作っているらしいところをコピペしていじってみたが、変化がなかった。別のクラスで最終的なフォーマットを吐き出しているようだけど、そこがわからないため、未だ調査中
回答1件
あなたの回答
tips
プレビュー