【问题标题】:Axis 1.4 pass custom SecureSocketFactoryAxis 1.4 通过自定义 SecureSocketFactory
【发布时间】:2015-01-20 19:20:16
【问题描述】:

我有一个应用程序,由于某些与环境相关的原因,我需要通过自己的securesocketfactory。我经历了Axis 1.4 documentation。基于此,我尝试以多种方式设置我的价值。全部列在下面。

System.setProperty("org.apache.axis.components.net.SocketFactory", CustomSocketFactory.class.toString());
System.setProperty("org.apache.axis.components.net.SecureSocketFactory",CustomSocketFactory.class.toString());
System.setProperty("axis.socketFactory",CustomSocketFactory.class.toString());
System.setProperty("axis.socketSecureFactory",CustomSocketFactory.class.toString());
AxisProperties.setProperty("axis.socketSecureFactory", CustomSocketFactory.class.toString());
AxisProperties.setProperty("axis.socketFactory", CustomSocketFactory.class.toString());
AxisProperties.setProperty("org.apache.axis.components.net.SecureSocketFactory", CustomSocketFactory.class.toString());
AxisProperties.setProperty("org.apache.axis.components.net.SocketFactory", CustomSocketFactory.class.toString());

在我的Locator 类被实例化之前,我正在这样做。但是在发生轴连接的情况下,它都没有使用我的套接字工厂。

有没有办法传递我的自定义 SocketFactory?即使我可以通过我的自定义 KeytoreManager,它也可以完成这项工作。

我束手无策!我尝试过的选项(如 socketFactory)可能会表明这一点。非常感谢任何帮助。

【问题讨论】:

    标签: java ssl axis keystore sslsocketfactory


    【解决方案1】:

    我发现了我的错误。我不得不简单地通过

    System.setProperty("org.apache.axis.components.net.SocketFactory", "com.package.myclass");
    System.setProperty("org.apache.axis.components.net.SecureSocketFactory","com.package.myclass");
    

    我传递了错误的值。

    谢谢

    【讨论】:

    • 您好,您知道是否有一种方法可以在不触及全局设置的情况下应用此属性?谢谢
    【解决方案2】:

    当您拥有 ServiceClient 实例时,您可以获得选项并设置协议处理程序使用的属性:

    serviceClient.getOptions().setProperty(HTTPConstants.CUSTOM_PROTOCOL_HANDLER, sslProtocol);
    

    对此有点棘手的是,您不能只使用SSLSocketFactory,您必须提供org.apache.commons.httpclient.protocol.ProtocolSocketFactory,它定义了更多方法。

    您还可以选择创建自己的 HTTPClient 实例并填充该实例:

    serviceClient.getOptions().setProperty(HTTPConstants.REUSE_HTTP_CLIENT, Boolean.TRUE);
    serviceClient.getOptions().setProperty(HTTPConstants.CACHED_HTTP_CLIENT, httpClient);
    

    【讨论】:

    • 轴 1.4.0 中没有这样的属性 HTTPConstants.CUSTOM_PROTOCOL_HANDLER。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-18
    • 1970-01-01
    • 1970-01-01
    • 2012-07-10
    • 1970-01-01
    相关资源
    最近更新 更多