Advertisement
Guest User

Untitled

a guest
Feb 25th, 2020
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.30 KB | None | 0 0
  1. import java.net.*;
  2. import java.io.*;
  3. import javax.net.ssl.*;
  4. import javax.security.cert.X509Certificate;
  5. import java.security.KeyStore;
  6. import java.security.cert.*;
  7. import java.util.Scanner;
  8. /*
  9. * This example shows how to set up a key manager to perform client
  10. * authentication.
  11. *
  12. * This program assumes that the client is not inside a firewall.
  13. * The application can be modified to connect to a server outside
  14. * the firewall by following SSLSocketClientWithTunneling.java.
  15. */
  16. public class client {
  17.  
  18. public String[] göra() throws IOException{
  19. System.out.println("Read, Write or Delete?");
  20. String[] toDo = new String[3];
  21. BufferedReader read = new BufferedReader(new InputStreamReader(System.in));
  22. String msg = read.readLine();
  23. msg = msg.toLowerCase();
  24. while(!(msg.equals("read") || msg.equals("write") || msg.equals("delete"))){
  25. System.out.println("Not an option, please re-enter read, write or delete?");
  26. msg = read.readLine();
  27. msg = msg.toLowerCase();
  28. }
  29. toDo[0] = "read";
  30. System.out.println("User ID of patient:");
  31. msg = read.readLine();
  32. toDo[1] = msg;
  33. System.out.println("Journal ID, if new enter 'new', if all enter 'all'");
  34. msg = read.readLine();
  35. toDo[2] = msg;
  36. return toDo;
  37. }
  38.  
  39. public static void main(String[] args) throws Exception {
  40. client klas = new client();
  41. String host = null;
  42. int port = -1;
  43. for (int i = 0; i < args.length; i++) {
  44. System.out.println("args[" + i + "] = " + args[i]);
  45. }
  46. if (args.length < 2) {
  47. System.out.println("USAGE: java client host port");
  48. System.exit(-1);
  49. }
  50. try { /* get input parameters */
  51. host = args[0];
  52. port = Integer.parseInt(args[1]);
  53. } catch (IllegalArgumentException e) {
  54. System.out.println("USAGE: java client host port");
  55. System.exit(-1);
  56. }
  57. try { /* set up a key manager for client authentication */
  58. SSLSocketFactory factory = null;
  59. try {
  60. BufferedReader read = new BufferedReader(new InputStreamReader(System.in));
  61. System.out.print("Username:");
  62. String userName = read.readLine();
  63. System.out.print("Password:");
  64. String pw = read.readLine();
  65. char[] password = pw.toCharArray();
  66. KeyStore ks = KeyStore.getInstance("JKS");
  67. KeyStore ts = KeyStore.getInstance("JKS");
  68. KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
  69. TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509");
  70. SSLContext ctx = SSLContext.getInstance("TLS");
  71. ks.load(new FileInputStream(userName+"keystore"), password); // keystore password (storepass)
  72. ts.load(new FileInputStream("clienttruststore"), password); // truststore password (storepass);
  73. kmf.init(ks, password); // user password (keypass)
  74. tmf.init(ts); // keystore can be used as truststore here
  75. ctx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
  76. factory = ctx.getSocketFactory();
  77. } catch (Exception e) {
  78. throw new IOException(e.getMessage());
  79. }
  80. SSLSocket socket = (SSLSocket)factory.createSocket(host, port);
  81. System.out.println("\nsocket before handshake:\n" + socket + "\n");
  82.  
  83. /*
  84. * send http request
  85. *
  86. * See SSLSocketClient.java for more information about why
  87. * there is a forced handshake here when using PrintWriters.
  88. */
  89. socket.startHandshake();
  90.  
  91. SSLSession session = socket.getSession();
  92. X509Certificate cert = (X509Certificate)session.getPeerCertificateChain()[0];
  93. String subject = cert.getSubjectDN().getName();
  94. String issuer = cert.getIssuerDN().getName();
  95. System.out.println("certificate name (subject DN field) on certificate received from server:\n" + subject + "\n");
  96. System.out.println("certificate name (issuer DN field) on certificate received from server:\n" + issuer + "\n");
  97. System.out.println("socket after handshake:\n" + socket + "\n");
  98. System.out.println("secure connection established\n\n");
  99. BufferedReader read = new BufferedReader(new InputStreamReader(System.in));
  100. PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
  101. BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
  102. String msg;
  103. String[] toDo = klas.göra();
  104. for (;;) {
  105. System.out.print(">");
  106. msg = read.readLine();
  107. if (msg.equalsIgnoreCase("quit")) {
  108. break;
  109. }
  110. out.println(toDo[0]);
  111. out.println(toDo[1]);
  112. out.println(toDo[2]);
  113. out.flush();
  114. }
  115. in.close();
  116. out.close();
  117. read.close();
  118. socket.close();
  119. } catch (Exception e) {
  120. e.printStackTrace();
  121. }
  122. }
  123.  
  124. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement