Wie erzwinge ich, dass ein Axis Client das TLSv1.2-Protokoll verwendet?
Eine Drittpartei, in die unsere Anwendung integriert ist, hat kürzlich Änderungen an den Sicherheitsprotokollen vorgenommen. Kurz gesagt, der My Axis-Client sollte jetzt Anrufe mit TLSv1.1 oder TLSv1.2 senden. Ich habe andere Posts zu diesem Thema mit guten Ideen gesehen:
HieHie.Nachdem ich diese Änderungen im Code vorgenommen habe, habe ich die Aufrufe erneut ausgelöst, ein Snipping-Tool zum Überwachen des gesendeten Pakets verwendet und in der SSL-Schicht immer noch festgestellt, dass das verwendete Protokoll TLSv1 ist.
was mache ich hier falsch?
So stelle ich meine neue SocketSecureFactory ein:
AxisProperties.setProperty("axis.socketSecureFactory", MyTLSSocketSecureFactory.class.getName());
whereas MyTLSSocketSecureFactory ist:
public class MyTLSSocketSecureFactory extends JSSESocketFactory {
public MyTLSSocketSecureFactory(Hashtable attributes) {
super(attributes);
}
@Override
public Socket create(String host,int port, StringBuffer otherHeaders,BooleanHolder useFullURL)
throws Exception{
Socket s = super.create(host, port, otherHeaders, useFullURL);
((SSLSocket)s).setEnabledProtocols(new String[] {"TLSv1.1", "TLSv1.2"});
return s;
}
}
Ich würde mich über Kommentare sehr freuen, danke.