如何强制 Axis 客户端使用 TLSv1.2 协议

2024-01-03

我们的应用程序与之集成的第三方最近对其安全级别协议进行了更改。简而言之,My Axis 客户端现在应该使用 TLSv1.1 或 TLSv1.2 发送呼叫。 我看过其他关于此的帖子,其中有一些好的想法:

  1. here https://stackoverflow.com/questions/29142654/force-axis-client-to-use-tls
  2. here https://stackoverflow.com/questions/651684/axis-securesocketfactory-setting-the-constructor-attributes.

在代码中进行这些更改后,我再次触发了调用, 我使用了截图工具来监控发送的包,我仍然在 SSL 层看到正在使用的协议是 TLSv1。

数据包片段 https://i.stack.imgur.com/htrRE.jpg

我在这里做错了什么?

这就是我设置新 SocketSecureFactory 的方式:

AxisProperties.setProperty("axis.socketSecureFactory", MyTLSSocketSecureFactory.class.getName());

而 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;
    }
}

非常感谢任何评论, 谢谢。


在 MyTLSSocketSecureFactory 类中,您需要创建自己的 SSLContext 实例,然后从上下文中获取 sslFactory。

重写 initFactory() 方法,例如:

initFactory() {
  SSLContext context = SSLContext.getInstance("TLSv1.2");
  context.init(null, null, null);
  sslFactory = context.getSocketFactory();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何强制 Axis 客户端使用 TLSv1.2 协议 的相关文章

随机推荐

  • 使用 jQuery AJAX 捕获 404 状态

    我有这个代码 ajax cache false url Admin Contents GetData data accountID AccountID success function data CityID html data error
  • Zend框架中的重定向和转发有什么区别

    Zend 框架中的重定向和转发有什么区别 什么时候应该使用重定向 什么时候应该使用转发 想象一下您在办公室接到一个电话 有人想与销售人员交谈 如果你说 请拨打123456 然后挂断 这是redirect 如果您说 稍等 并将电话转接给他们
  • C# 中的字符串基准 - 重构速度/可维护性

    我一直在用自己的时间摆弄小函数 试图找到重构它们的方法 我最近读了 Martin Fowler 的书重构 改进现有代码的设计 https rads stackoverflow com amzn click com 0201485672 我发
  • ologit 的 vglm()、orm()、polr() 和 clm() 中的系数

    我正在使用不同的软件包进行 ologit 它们是VGAM rms MASS and ordinal 使用数据集wine从包装中ordinal 首先是vglm library VGAM vglmfit lt vglm rating temp
  • 使用 jQuery 获取 XML 中的节点值

    我正在尝试解析以下 XML
  • ibpy:如何捕获从reqAccountSummary返回的数据

    我正在使用交互式代理的 ibapi 并且一般情况下我陷入了如何捕获返回数据的困境 例如 根据api docs https interactivebrokers github io tws api account summary html a
  • R - 条件增量

    这对代码来说应该是微不足道的 但无法在 R 中想到优雅的单行代码 我有一个数据框 如下所示 data lt data frame index seq 1 20 event rep 0 20 data event 10 lt 1 data e
  • 使用 leaflet 包在 R 中绘制等值线图

    我正在尝试使用 leaflet 包在 R 中创建交互式 Choropleth 地图 我的最终输出应该是这样的 当用户单击美国的任何一个州时 应该显示一个弹出窗口 其中包含州名称和相应州的震级值 下面是我正在使用的代码 我面临的问题是 每当我
  • PrimaryContext LDAPS 自签名证书

    我们有一个应用程序 使用 LDAP 通过 IP 地址 通过 VPN 隧道对远程 AD 进行身份验证 使用以下代码 using PrincipalContext pc new PrincipalContext ContextType Doma
  • 如何强制 make 在 Windows/MSYS2 上使用 bash 作为 shell

    我正在尝试重新编译一个已经有 Windows 端口的应用程序 所以它应该可以工作 当然 你还需要运行 configure所以你需要 MSYS 或 MSYS2 配置部分运行良好 现在当我跑步时make n 所以它显示执行了哪些规则 我得到 m
  • 多对多关系。 ORM Django

    class Toy models Model name models CharField max length 20 desc models TextField class Box models Model name models Char
  • 从模型生成视图模型?

    我目前正在为我的 WPF C 应用程序编写视图模型 但我必须做很多复制和粘贴 有没有办法像从数据库生成模型一样从模型生成视图模型 我在网上没有找到任何关于它的信息 也许看看自动映射器 http www codeplex com AutoMa
  • 尝试反序列化继承自 Exception 的类时,Json.net 失败

    我有课SearchError继承自Exception 当我尝试从有效的 json 反序列化它时 我会得到以下异常 ISerialized 类型 SearchError 没有有效的构造函数 要正确实现 ISerialized 应存在采用 Se
  • 按 sqldf 中的日期范围过滤

    我正在尝试使用 sqldf 根据日期范围过滤数据帧 如下面的示例代码 我有类似下面示例数据的数据 sqldf 返回的 datedf 数据帧没有记录 SHV 数据框中有该日期范围内的记录 任何人都可以看到我做错了什么 并让我知道如何按 sql
  • 采取更好的方法将多个列表/字典包装在类中并循环键和值

    我为关联数组编写了这段代码 var data new Dictionary
  • 如何获取Excel工作表中调用VBA函数的单元格的地址

    是否有函数可以获取调用 VBA 函数的单元格的地址 我使用了 Application ActiveCell Address 但发现此方法不是获取调用单元格地址的正确方法 例如 如果我们有保存了 VBA 函数的 Excel 工作表 一旦重新打
  • 传递带有哈希值的 URL 以进行重定向[重复]

    这个问题在这里已经有答案了 可能的重复 如何从服务器端获取 Url Hash https stackoverflow com questions 317760 how to get url hash from server side 我在获
  • SQL Server Management Studio 2016:应用程序无法启动

    我安装了 SQL Server Management Studio 2016 当我尝试打开它时出现此错误 我尝试卸载并再次安装 我还卸载了所有 Visual Studio 和 SQL Server 并重新安装了它们 但问题仍然存在 我该如何
  • JavaScript 的 DataView 的 Python 等效项

    我从 Base 64 编码的字符串加载一个字节数组 并且我想解析它 但是值以不同的方式编码 我想复制DataView的行为 Example function parse data view new DataView data buffer
  • 如何强制 Axis 客户端使用 TLSv1.2 协议

    我们的应用程序与之集成的第三方最近对其安全级别协议进行了更改 简而言之 My Axis 客户端现在应该使用 TLSv1 1 或 TLSv1 2 发送呼叫 我看过其他关于此的帖子 其中有一些好的想法 here https stackoverf