差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
study:java:sharepointonline:implement1 [2021/07/15 09:56] – [Main class code] bananastudy:java:sharepointonline:implement1 [2025/02/07 05:18] (現在) – [SAML Security token 取得の実装] banana
行 1: 行 1:
 ====== SAML Security token 取得の実装 ====== ====== SAML Security token 取得の実装 ======
 ここでは、[[study:java:sharepointonline:poc|POC of consuming Sharepoint online]]のPOC段階2について、Javaの実装例を紹介します。 ここでは、[[study:java:sharepointonline:poc|POC of consuming Sharepoint online]]のPOC段階2について、Javaの実装例を紹介します。
- +{{keywords>Get SAML Security token from Sharepoint online}} 
-===== 動作環境について =====+====== 動作環境について ======
 テスト環境についてですが、Java7(IBM J9 VM (build 2.6, JRE 1.7.0 Windows 7 amd64-64 Compressed References 20150701_255667 (JIT enabled, AOT enabled))で、テストを行いました。\\ テスト環境についてですが、Java7(IBM J9 VM (build 2.6, JRE 1.7.0 Windows 7 amd64-64 Compressed References 20150701_255667 (JIT enabled, AOT enabled))で、テストを行いました。\\
 ビルドには、Mavenを使用しました。\\ ビルドには、Mavenを使用しました。\\
行 39: 行 39:
 特に注目して欲しい のは、boucycastleライブラリです。bouncycastleライブラリを導入する理由については、Binary token取得のjava実装編で紹介します。 特に注目して欲しい のは、boucycastleライブラリです。bouncycastleライブラリを導入する理由については、Binary token取得のjava実装編で紹介します。
  
-===== Main class code =====+====== Main class code ======
 実装のメインになるコードを以下に示します。\\ 実装のメインになるコードを以下に示します。\\
 <code java> <code java>
行 70: 行 70:
  
       Document _definitionDocument = (Document) _result.getNode();       Document _definitionDocument = (Document) _result.getNode();
-      final String XPATH_EXPRESSION = "//t:RequestedSecurityToken/*";+      final String XPATH_EXPRESSION = "//t:RequestedSecurityToken/*";   ★Point3
       Node _tokenNode = getXPathExpression(XPATH_EXPRESSION).evaluateAsNode(_definitionDocument);       Node _tokenNode = getXPathExpression(XPATH_EXPRESSION).evaluateAsNode(_definitionDocument);
-      _token = nodeToXmlString(_tokenNode);+      _token = nodeToXmlString(_tokenNode);   ★Point4
  
       if ("".equals(_token)) {       if ("".equals(_token)) {
行 166: 行 166:
 </code> </code>
  
 +★Point3\\
 +SAML:Assertionを取り出す部分です。 ResponseのXMLから<t:RequestedSecurityToken>elementをXPathを利用して取り出します。\\
 +elementがnamespaceのものならXPathExpression生成時、namespaceを渡す必要があります。\\
 +
 +★Point4\\
 +取り出したSAML:Assertionは、Node(Pretty-type)です。POCでも触れましたが、Binary tokenを取得する際、渡すSAML:Assertionはraw-typeです。\\
 +そのため、ここでNodeをStringに変換しています。
 +
 +~~DISCUSSION~~
  
  

QR Code
QR Code study:java:sharepointonline:implement1 (generated for current page)