アプリケーションが統合されているサードパーティが最近セキュリティレベルプロトコルを変更しました。つまり、My Axisクライアントは、TLSv1.1またはTLSv1.2を使用してコールを送信する必要があります。 私はいくつかの良いアイデアを、このについての他の記事を見てきました:AxisクライアントでTLSv1.2プロトコルを使用するように強制する方法
はコードで、これらの変更を行った後、私は私が送信されたパッケージを監視するために、つむツールを使用している 、再び呼び出しを引き起こした、と私はまだ使用されているプロトコルは、TLSv1のあるSSL層でご覧ください。
私はここで間違って何をやっていますか? MyTLSSocketSecureFactoryであるのに対し
AxisProperties.setProperty("axis.socketSecureFactory", MyTLSSocketSecureFactory.class.getName());
:
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;
}
}
は、任意のコメントを本当に感謝、感謝
これは私が私の新しいSocketSecureFactoryを設定する方法です。
を変更することができます。initFactory()メソッドなどで代
オーバーライドTLS 1.1または1.2の接続のみを受け入れるようになりました。 私はJDK 6 u 35、Axis 1.4を使用しています。 TLSv1 75 Alert(Level:Fatal、Description:Handshake Failure) – Sergiu