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

Duo Liang, 2018年11月28日

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-前提条件

始める前に、このブログをフォローするために必要ないくつかの要件を次に示します。

ステップ2 – JVM用にFiddlerを構成する

Fiddler for JVMを構成する方法に関するいくつかの関連ガイドが既にあります。このブログの手順を簡単に確認します。

OneSpan Signに送信するSDK / RESTリクエストはHTTPSの背後にあるため、以下の手順を含むFiddlerのSSL証明書もセットアップする必要があります。

1。Fiddlerのルート証明書をエクスポートする

メニューバーの[ツール]をクリックし、[オプション]を選択して、Fiddlerのオプションダイアログを開きます。[HTTPS]タブに切り替え、[HTTPSトラフィックの復号化]オプションがオンになっていることを確認し、[アクション]ボタンをクリックして、[ルート証明書をデスクトップにエクスポート]を選択します。11-28-1

2。この証明書を使用してJVMキーストアを作成します

(1)管理者としてコマンドラインを開きます。

(2)以下のコマンドを使用して、JAVA_HOMEパスのbinフォルダーに移動します

エコー%JAVA_HOME %
cd {JAVA_HOME} \ bin

(3)コマンドの下に入力:

keytool.exe -import -file [エクスポートされたファイルのパス] -keystore [keystreの名前] -alias [証明書のエイリアス名]

(4)パスワードを入力して確認し、「y」を入力してこの証明書を信頼します。11-28-2

(5)FiddlerKeystoreファイルがbinフォルダーの下に生成されます。11-28-3

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");

11-28-4

ステップ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から確認できる期待される結果です。11-28-5

これで、WindowsおよびLinux環境でSDKおよびRESTメソッドの両方でJavaアプリケーションのFiddlerが正常に有効になりました。これは、JSON関連の問題を診断し、Httpリクエストをデバッグするときに非常に役立ちます。

このブログや、OneSpan Signをアプリケーションに統合することに関するその他の質問がある場合は、開発者コミュニティフォーラム 。あなたのフィードバックは私たちにとって重要です!