Como aplicar um Axis Client para usar o protocolo TLSv1.2
Um terceiro com o qual nosso aplicativo está integrado fez recentemente alterações em seus protocolos de nível de segurança. Em resumo, o cliente My Axis agora deve enviar chamadas usando TLSv1.1 ou TLSv1.2. Eu já vi outros posts sobre isso, com algumas boas idéias:
aquiaqui.Depois de fazer essas alterações no código, ativei novamente as chamadas, usei uma ferramenta de snipping para monitorar o pacote enviado e ainda vejo na camada SSL que o protocolo que está sendo usado é o TLSv1.
O que eu estou fazendo errado aqui?
é assim que defino meu novo SocketSecureFactory:
AxisProperties.setProperty("axis.socketSecureFactory", MyTLSSocketSecureFactory.class.getName());
enquanto MyTLSSocketSecureFactory é:
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;
}
}
realmente aprecio qualquer comentário, obrigado.