OneSpan Sign Developer:JavaアプリケーションのHTTPキャプチャを有効にする

OneSpan Sign in SDKまたはRESTメソッドを使用して開発する場合、特に問題をデバッグする場合は、FiddlerやCharlesなどのHTTP監視ツールを使用して、送信トラフィックをキャプチャすることをお勧めします。これにより、リクエストがOneSpan Signに正常に送信されたかどうか、およびアプリケーションが現在送信しているJSONペイロードがさらに明確になります。しかし、Javaを使用して開発している場合、JVMはデフォルトでシステムのHTTPプロキシ設定を読み取らないことを誰もが知っています。
例としてFiddlerを使用して、JavaアプリケーションでこのHTTPデバッグツールを有効にする方法をこのブログで示します。次に、EclipseとIntelliJ IDEAの両方のアプローチを試し、RESTメソッドとSDKメソッドの両方を使用してHTTPキャプチャを実現します。
注意
- すでにプロキシを使用している場合、ループに2番目のプロキシを導入するため、この方法は機能しません。
- プロキシー構成は、Fiddlerでのテスト用にのみセットアップされます。テストに満足したら、プロキシ構成を削除できます。
ステップ1-前提条件
始める前に、このブログをフォローするために必要ないくつかの要件を次に示します。
- インストールされているJava SDK
- Java IDE( 日食 / IntelliJ IDEA )
- インストール済みバイオリン弾き
- WindowsまたはLinux OS
ステップ2 – JVM用にFiddlerを構成する
Fiddler for JVMを構成する方法に関するいくつかの関連ガイドが既にあります。このブログの手順を簡単に確認します。
OneSpan Signに送信するSDK / RESTリクエストはHTTPSの背後にあるため、以下の手順を含むFiddlerのSSL証明書もセットアップする必要があります。
1。Fiddlerのルート証明書をエクスポートする
メニューバーの[ツール]をクリックし、[オプション]を選択して、Fiddlerのオプションダイアログを開きます。[HTTPS]タブに切り替え、[HTTPSトラフィックの復号化]オプションがオンになっていることを確認し、[アクション]ボタンをクリックして、[ルート証明書をデスクトップにエクスポート]を選択します。
2。この証明書を使用してJVMキーストアを作成します
(1)管理者としてコマンドラインを開きます。
(2)以下のコマンドを使用して、JAVA_HOMEパスのbinフォルダーに移動します
エコー%JAVA_HOME % cd {JAVA_HOME} \ bin
(3)コマンドの下に入力:
keytool.exe -import -file [エクスポートされたファイルのパス] -keystore [keystreの名前] -alias [証明書のエイリアス名]
(4)パスワードを入力して確認し、「y」を入力してこの証明書を信頼します。
(5)FiddlerKeystoreファイルがbinフォルダーの下に生成されます。
3。JVMのプロキシを構成する
FiddlerをJVMプロキシ(localhost、8888ポート)として構成し、作成したキーストアをトラストストアとして設定します。
VM引数を使用して、キーストアをトラストストアとして構成できます。
-DproxySet = true -DproxyHost = 127.0.0.1 -DproxyPort = 8888 -Djavax.net.ssl.trustStore =”” -Djavax.net.ssl.trustStorePassword =”” \ to \ fiddlerkeystore>
または、Javaコードを直接使用してシステムプロパティを設定することもできます。
System.setProperty( "https.proxyHost"、"127.0.0.1"); System.setProperty( "https.proxyPort"、"8888"); System.setProperty( "javax.net.ssl.trustStore"、"C:\\ Program Files \\ Java \\ jdk1.8.0_161 \\ bin \\ FiddlerKeystore"); System.setProperty( "javax.net.ssl.trustStorePassword"、"fiddler");
ステップ3 –コードでテストする
「アプリケーションバージョンの取得」APIを使用して構成をテストします。
HTTPリクエスト POST / api / sysinfo HTTPヘッダー 承諾:application / json Content-Type:application / json 承認:基本的なapi_key 応答ペイロード { "スキーマ": "16.11.3"、 "バージョン": "16.11.4"、 「タイムスタンプ」:「2017-11-01 15:00 + 0000」 }
これは、テストに使用されるRESTコードです。
public void testWithREST()はIOException {をスローします System.setProperty( "https.proxyHost"、"127.0.0.1"); System.setProperty( "https.proxyPort"、"8888"); System.setProperty( "javax.net.ssl.trustStore"、"C:\\ Program Files \\ Java \\ jdk1.8.0_161 \\ bin \\ FiddlerKeystore"); System.setProperty( "javax.net.ssl.trustStorePassword"、"fiddler"); URLクライアント=新しいURL(API_URL + "/ sysinfo"); HttpURLConnection conn =(HttpURLConnection)client.openConnection(); conn.setRequestProperty( "Authorization"、"Basic" + API_KEY); conn.setRequestProperty( "Accept"、"application / json"); ((HttpURLConnection)conn).getResponseCode(); {を試す BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream())); 文字列inputLine; StringBufferレスポンス= new StringBuffer(); while((inputLine = in.readLine())!= null){ response.append(inputLine); } in.close(); conn.disconnect(); System.out.println(response.toString()); }キャッチ(例外e){ e.printStackTrace(); } }
これは同等のSDKコードです。
public void testWithSDK(){ System.setProperty( "javax.net.ssl.trustStore"、"C:\\ Program Files \\ Java \\ jdk1.8.0_161 \\ bin \\ FiddlerKeystore"); System.setProperty( "javax.net.ssl.trustStorePassword"、"fiddler"); ProxyConfiguration httpProxyConfiguration = ProxyConfigurationBuilder.newProxyConfiguration() .withHttpHost( "127.0.0.1")//例:localhost .withHttpPort(8888)//例:8001 .build(); EslClient eslClient = new EslClient(API_KEY、API_URL、httpProxyConfiguration); 文字列applicationVersion = eslClient.getSystemService()。getApplicationVersion(); System.out.println(applicationVersion); }
なお、プロキシホストとポート情報を使用して、ProxyConfigurationオブジェクトを追加設定する必要があります。SDKのこの構成は、内部で次の2行を呼び出すのに役立ちます。
System.setProperty( "https.proxyHost"、"127.0.0.1"); System.setProperty( "https.proxyPort"、"8888");
したがって、VM引数またはシステムプロパティにこれらの2行を明示的に記述する必要はありません。
下のスクリーンショットは、IDEコンソールとFiddlerから確認できる期待される結果です。
これで、WindowsおよびLinux環境でSDKおよびRESTメソッドの両方でJavaアプリケーションのFiddlerが正常に有効になりました。これは、JSON関連の問題を診断し、Httpリクエストをデバッグするときに非常に役立ちます。
このブログや、OneSpan Signをアプリケーションに統合することに関するその他の質問がある場合は、開発者コミュニティフォーラム 。あなたのフィードバックは私たちにとって重要です!