Développeur de signes OneSpan : Activez la capture HTTP pour l'application Java
Lorsque vous développez avec OneSpan Sign dans la méthode SDK ou REST, en particulier lorsque vous débogez les problèmes, il est recommandé d'utiliser des outils de surveillance HTTP, tels que Fiddler ou Charles, pour capturer votre trafic sortant. Cela fournira une clarté supplémentaire quant à savoir si votre demande a été envoyée avec succès à OneSpan Sign et quelle charge utile JSON votre demande est maintenant l'envoi. Mais nous savons tous que si vous développez avec Java, JVM ne lira pas le paramètre proxy HTTP de votre système par défaut.
En utilisant Fiddler comme exemple, nous allons démontrer dans ce blog comment activer cet outil http Debug pour votre application Java. Ensuite, nous allons essayer l'approche pour Eclipse et IntelliJ IDEA et atteindre la capture HTTP en utilisant à la fois les méthodes REST et SDK.
Note
- Si vous utilisez déjà un proxy, cette méthode ne fonctionnera pas pour vous parce que vous seriez l'introduction d'un deuxième proxy dans la boucle.
- La configuration proxy n'est configurée que pour les tests avec Fiddler. Une fois que vous êtes satisfait de vos tests, vous pouvez supprimer la configuration proxy.
Étape 1 - Prérequis
Avant de commencer, voici quelques exigences que vous aurez besoin de suivre ce blog:
- Installé Java SDK
- Installé un Java IDE (Eclipse/ IntelliJ IDEA)
- Fiddler installé
- Windows ou Linux OS
Étape 2 - Configurer Fiddler pour JVM
Il existe déjà quelques guides connexes sur la façon de configurer Fiddler pour JVM. Nous passerons brièvement en revue les étapes de ce blog.
Étant donné que nos demandes SDK/REST envoyées à OneSpan Sign sont derrière HTTPS, nous devons également configurer un certificat SSL pour Fiddler, qui comprend les étapes ci-dessous.
1. Certificat racine d'export Fiddler
Cliquez sur "Outils" dans la barre de menu et choisissez "Options..." pour ouvrir le dialogue D'options Fiddler. Passez à l'onglet HTTPS, assurez-vous d'avoir vérifié l'option « Décrypter le trafic HTTPS » et cliquez sur le bouton « Actions » et choisissez « Certificat racine d'exportation vers le bureau ».
2. Créez un JVM Keystore à l'aide de ce certificat
(1) Ouvrez la ligne de commande en tant qu'administrateur.
(2) Localiser le dossier de bac de votre chemin de JAVA_HOME en utilisant les commandes ci-dessous
écho %JAVA_HOME% cd 'JAVA_HOME'bin
(3) Entrée ci-dessous commande:
keytool.exe -import -file [path the exported file] -keystore [nom pour keystre] -alias [alias nom pour certificat]
(4) Entrez et confirmez un mot de passe, puis entrez « y » pour faire confiance à ce certificat.
(5) Le fichier FiddlerKeystore sera généré sous le dossier bin.
3. Configurer proxy pour votre JVM
Configurez Fiddler comme votre proxy JVM (localhost, port 8888) et configurez le Keystore que vous venez de créer en tant que Trust Store.
Vous pouvez soit utiliser des arguments VM pour configurer votre Keystore comme le Trust Store :
-DproxySet-vrai -DproxyHost 127,0,0,1 -DproxyPort 8888 -Djavax.net.ssl.trustStore" \to\fiddlerkeystore> -Djavax.net.ssl.trustStorePassword" \to\fiddlerkeystore>
Alternativement, vous pouvez utiliser directement le code Java pour définir les propriétés du système :
System.setProperty ("https.proxyHost", "127.0.0.1"); System.setProperty ("https.proxyPort", "8888"); System.setProperty("javax.net.ssl.trustStore", "C: 'Program Files''jdk1.8.0 '161'bin'FiddlerKeystore"); System.setProperty ("javax.net.ssl.trustStorePassword", "fiddler");
Étape 3 - Test avec code
Nous utiliserons l'API " Get Application Version " pour tester notre configuration :
Demande HTTP POST /api/sysinfo En-têtes HTTP Accepter : application/json Content-type: application/JSON Autorisation: api_key de base Charge utile de réponse { "schéma": "16.11.3", "version": "16.11.4", "timetamp": "2017-11-01 15:0000" }
Il s'agit du code REST utilisé pour le test :
test de vide publicWithREST() lance IOException (fr) System.setProperty ("https.proxyHost", "127.0.0.1"); System.setProperty ("https.proxyPort", "8888"); System.setProperty("javax.net.ssl.trustStore", "C: 'Program Files''jdk1.8.0 '161'bin'FiddlerKeystore"); System.setProperty ("javax.net.ssl.trustStorePassword", "fiddler"); Client URL ' nouvelle URL (API_URL '/sysinfo'); httpURLConnection conn (httpURLConnection) client.openConnection(); conn.setRequestProperty ("Autorisation", "Basic" - API_KEY); conn.setRequestProperty ("Accept", "application/json"); ((HttpURLConnection) conn).getResponseCode(); essayer { BufferedReader dans le nouveau BufferedReader (nouveau InputStreamReader(conn.getInputStream()); Ligne d'entrée de chaîne ; Réponse StringBuffer - nouveau StringBuffer(); tandis que ((inline - in.readLine()) ! response.append (inputLine); } in.close(); conn.disconnect(); System.out.println (response.toString)); - capture (Exception e) e.printStackTrace(); } }
Il s'agit du code SDK équivalent :
test de vide publicWithSDK() System.setProperty("javax.net.ssl.trustStore", "C: 'Program Files''jdk1.8.0 '161'bin'FiddlerKeystore"); System.setProperty ("javax.net.ssl.trustStorePassword", "fiddler"); ProxyConfiguration httpProxyConfiguration - ProxyConfigurationBuilder.newProxyConfiguration() .withHttpHost ("127.0.0.1") // par exemple localhost .avecHttpPort(8888) // p. ex. 8001 .construire(); EslClient eslClient - nouveau EslClient (API_KEY, API_URL, httpProxyConfiguration); Application de chaîneVersion - eslClient.getSystemService().getApplicationVersion(); System.out.println (applicationVersion); }
Pour noter, vous devez en outre configurer un objet ProxyConfigure avec l'hôte proxy et les informations de port. Cette configuration dans SDK vous aidera en interne à appeler en dessous de deux lignes :
System.setProperty ("https.proxyHost", "127.0.0.1"); System.setProperty ("https.proxyPort", "8888");
Par conséquent, vous n'avez pas besoin d'écrire explicitement ces deux lignes dans vos arguments De VM ou propriétés système.
Ci-dessous capture d'écran est les résultats attendus que vous pouvez voir à partir de votre console IDE et Fiddler.
À ce jour, nous avons activé Fiddler pour votre application Java dans la méthode SDK et REST sous Windows et Linux environnement, ce qui est extrêmement utile lorsque vous essayez de diagnostiquer les problèmes liés à JSON et de déboguer les demandes http.
Si vous avez des questions concernant ce blog ou toute autre chose concernant l'intégration de OneSpan Sign dans votre application, visitez les Forums communautairesdes développeurs . Vos commentaires sont importants pour nous!