Bonjour,
Après avoir lus des dizaines de post des 4 coins du monde, je n'ai pas trouvé de réponse claire et complète sur le problème suivant :
D'un côté j'ai développé un serveur web avec un certain nombre de requêtes en API REST
De l'autre une appli Android qui va échanger à intervalle régulier avec ce serveur en REST / JSON
Des 2 côtés je me suis appuyé sur Spring, avec RestTemplate côté Android. La communication se fait correctement.
Afin de sécuriser les connexions, j'envisage maintenant d'utiliser SSL/TLS, avec pour commencer un certificat serveur autosigné (au moins pour mettre au point la mécanique). Selon diverses "bonnes pratiques" il ne faut pas utiliser de sessions dans ce type d'interface, par contre comment peut-on éviter à chaque requête de redéclencher le handshake SSL ? Faut-il utiliser les cookies ? Ou bien faut-il refaire le handshake à chaque requête quitte à ce que ce soit "lourd" ?
Quelques lignes de code utilisé en mode "test" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 URL url = new URL(params[0]); HttpsURLConnection httpsUrlConnection = (HttpsURLConnection) url.openConnection(); SSLContext ctx = SSLContext.getInstance("TLS"); ctx.init(null, new TrustManager[]{ new AlwaysTrustManager() }, null); SSLSocketFactory factory = ctx.getSocketFactory(); httpsUrlConnection.setSSLSocketFactory(factory); httpsUrlConnection.setHostnameVerifier(TRUSTING_HOSTNAME_VERIFIER); httpsUrlConnection.setRequestMethod("GET"); int responseCode = httpsUrlConnection.getResponseCode();
Partager