Repositorio del curso CCOM4030 el semestre B91 del proyecto Artesanías con el Instituto de Cultura

TLSSocketFactory.java 1.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package com.silkimen.http;
  2. import java.io.IOException;
  3. import java.net.InetAddress;
  4. import java.net.Socket;
  5. import java.net.UnknownHostException;
  6. import javax.net.ssl.SSLContext;
  7. import javax.net.ssl.SSLSocket;
  8. import javax.net.ssl.SSLSocketFactory;
  9. public class TLSSocketFactory extends SSLSocketFactory {
  10. private SSLSocketFactory delegate;
  11. public TLSSocketFactory(SSLContext context) {
  12. delegate = context.getSocketFactory();
  13. }
  14. @Override
  15. public String[] getDefaultCipherSuites() {
  16. return delegate.getDefaultCipherSuites();
  17. }
  18. @Override
  19. public String[] getSupportedCipherSuites() {
  20. return delegate.getSupportedCipherSuites();
  21. }
  22. @Override
  23. public Socket createSocket(Socket socket, String host, int port, boolean autoClose) throws IOException {
  24. return enableTLSOnSocket(delegate.createSocket(socket, host, port, autoClose));
  25. }
  26. @Override
  27. public Socket createSocket(String host, int port) throws IOException, UnknownHostException {
  28. return enableTLSOnSocket(delegate.createSocket(host, port));
  29. }
  30. @Override
  31. public Socket createSocket(String host, int port, InetAddress localHost, int localPort)
  32. throws IOException, UnknownHostException {
  33. return enableTLSOnSocket(delegate.createSocket(host, port, localHost, localPort));
  34. }
  35. @Override
  36. public Socket createSocket(InetAddress host, int port) throws IOException {
  37. return enableTLSOnSocket(delegate.createSocket(host, port));
  38. }
  39. @Override
  40. public Socket createSocket(InetAddress address, int port, InetAddress localAddress, int localPort)
  41. throws IOException {
  42. return enableTLSOnSocket(delegate.createSocket(address, port, localAddress, localPort));
  43. }
  44. private Socket enableTLSOnSocket(Socket socket) {
  45. if (socket != null && (socket instanceof SSLSocket)) {
  46. ((SSLSocket) socket).setEnabledProtocols(new String[] { "TLSv1", "TLSv1.1", "TLSv1.2" });
  47. }
  48. return socket;
  49. }
  50. }