1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol");
String KEYSTORE = "", TRUESTORE = "";
KEYSTORE = "MY_PATH_TO_CERTIF.p12";
final String KEYSTOREPASS = "PASSWORD_CERTIF";
TRUESTORE = "PATH_TO_cacert_FILE";
final String TRUESTOREPASS = "TRUSTSTORE_PASS_default:changeit";
String httpsURL = "https://chorus-pro.gouv.fr:5443/service-qualif/factures/consulter/fournisseur"; //your URL
URL url = new URL(null, httpsURL, new sun.net.www.protocol.https.Handler());
KeyStore ks = KeyStore.getInstance("pkcs12");
ks.load(new FileInputStream(KEYSTORE), KEYSTOREPASS.toCharArray());
KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
kmf.init(ks, KEYSTOREPASS.toCharArray());
SSLContext sslctx2 = SSLContext.getInstance("SSLv3");
sslctx2.init(kmf.getKeyManagers(), null, null);
KeyStore ksTrust = KeyStore.getInstance("JKS");
ksTrust.load(new FileInputStream(TRUESTORE), TRUESTOREPASS.toCharArray());
//TrustManager
TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509");
tmf.init(ksTrust);
System.setProperty("javax.net.ssl.keyStoreType", "pkcs12");
System.setProperty("javax.net.ssl.trustStoreType", "jks");
System.setProperty("javax.net.ssl.keyStore", KEYSTORE);
System.setProperty("javax.net.ssl.trustStore", TRUESTORE);
System.setProperty("javax.net.debug", "ssl");
System.setProperty("javax.net.ssl.keyStorePassword", KEYSTOREPASS);
System.setProperty("javax.net.ssl.trustStorePassword", TRUESTOREPASS);
SecureRandom sc = null;
sslctx2.init(kmf.getKeyManagers(), tmf.getTrustManagers(), sc);
HttpsURLConnection.setDefaultSSLSocketFactory(sslctx2.getSocketFactory());
JSONObject idU = new JSONObject();
idU.put("idUtilisateurCourant", 10742);
idU.put("identifiantFactureCPP", 2497398);
logger.info(idU);
String headerAuth = "TECHNICAL@USER" + ":" + "PASSWORD_TECHNICAL USER";
String bytesEncoded = Base64.getEncoder().encodeToString(headerAuth.getBytes("UTF-8"));
String sHeaderAuth = "Authorization: Basic " + bytesEncoded;
HttpsURLConnection con = (HttpsURLConnection) url.openConnection();
//connection
con.setRequestMethod("POST");
con.setDoOutput(true);
con.setRequestProperty("Accept-Encoding", "gzip,deflate");
con.setRequestProperty("Content-Type", "application/json");
con.setRequestProperty("Authorization", "Basic " + bytesEncoded);
con.setRequestProperty("Host", "chorus-pro.gouv.fr:5443");
con.setRequestProperty("Connection", "Keep-Alive");
//stream
OutputStreamWriter os = new OutputStreamWriter(con.getOutputStream());
os.write(idU.toString());
os.flush();
String line = "";
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream()));
line = br.readLine();
while ((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
os.close(); |
Partager