- Java client
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLSession;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URISyntaxException;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class PDFTester {
private static final int FILE_BUFFER_SIZE = 2048;
public static final String CONTENT_TYPE_PDF = "application/pdf";
public static byte[] readPDFFromURL(URL url) throws IOException {
System.setProperty("javax.net.ssl.trustStore", "C:/temp/myCA.jks");
System.setProperty("javax.net.ssl.keyStorePassword", "changeit");
HttpsURLConnection httpsURLConnection = (HttpsURLConnection) url.openConnection();
httpsURLConnection.setHostnameVerifier(new HostnameVerifier() {
public boolean verify(String hostname, SSLSession session) {
return true;
}
});
httpsURLConnection.connect();
byte[] buffer = new byte[FILE_BUFFER_SIZE];
int lengthOfByteToBeWrite;
try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
InputStream inputStream = httpsURLConnection.getInputStream()) {
while ((lengthOfByteToBeWrite = inputStream.read(buffer)) != -1) {
byteArrayOutputStream.write(buffer, 0, lengthOfByteToBeWrite);
}
byteArrayOutputStream.flush();
return byteArrayOutputStream.toByteArray();
} catch (IOException e) {
throw e;
}
}
public static void main(String[] args) throws IOException, URISyntaxException {
URL url = new URL("https://www.sample.com/pdf");
byte[] bytes = readPDFFromURL(url);
Path path = Paths.get("c:/temp/test.pdf");
Files.write(path, bytes);
}
}
Implementing SSL / TLS using Java
No comments:
Post a Comment