Closed antonireus closed 3 years ago
Lo mismo pasa con la fijar el defaultSSLSocketFactory
si se ha fijado el valor all
en la propiedad javax.net.ssl.trustStore
, puesto que el SSLSocketFactory
se construye con una referencia al a classe anónima de tipo X509TrustManager
guardado en DUMMY_TRUST_MANAGER
.
Dado que como se ha dicho en las lineas siguientes se fija el SSLSocketFactory
específico para la conexión no tiene sentido fijar el defaultSSLSocketFactory
Corregido. Gracias por el aviso.
Fijar el
defaultHostnameVerifier
en la classees.gob.fire.client.HttpsConnection
provoca un "leak" de classloader.Cuando se carga una aplicación WAR que incorpore
fire-client-java
esta se carga con un classloader específico. Al ejecutar elHttpsConnection.getConnection
las líneas 311-316:esto provoca que la clase anónima, cargada mediante el classloader específico del WAR este referenciada por HttpsURLConnection. Al hacer un undeploy del WAR, esa referencia se mantiene, dado que las clases mantienen una referencia al classloader con que han sido cargados, eso evita que el GC pueda procesar el classloader del WAR.
Por otro lado, tanto esa línea, como la anterior, que ejecuta
HttpsURLConnection.setDefaultSSLSocketFactory(this.ctx.getSocketFactory());
no deberian ser necesarias, puesto que tanto elSSLSocketFactory
como elHostnameVerifier
se registran en la connexión creada en las líneas siguientes,