为了账号安全,请及时绑定邮箱和手机立即绑定

完全禁用 java net ssl 调试日志记录

完全禁用 java net ssl 调试日志记录

慕沐林林 2021-12-01 17:04:46
我找到了大量关于如何为 SSL、TLS 和类似功能启用 javax.net.debug 的文档,但即使在参考文档中,我也没有找到如何完全禁用它以编程方式覆盖以前的设置。我的确切问题是在 Tomcat 实例中,另一个应用程序执行以下指令:System.setProperty("javax.net.debug","all");这会导致catalina.out文件迅速增加他的维度并且不需要。我已经尝试使用相同的指令从我的 Java 代码中覆盖它,使用“ none ”、“ off ”和“ false ”值,但没有结果,仍然记录了大量 TLS 内容。例如,在我的应用程序中,我添加了以下指令:System.setProperty("javax.net.debug","none");但我仍然得到完整的日志。
查看完整描述

3 回答

?
梦里花落0921

TA贡献1772条经验 获得超6个赞

问题是 tomcat 应用程序正在覆盖您从命令行提供的任何值,如果无法控制此代码正在做什么,您就无法真正从命令行参数覆盖它。虽然安全管理器能够阻止设置属性,但它只能通过抛出异常来实现,这可能会导致比它解决的问题更多的问题。

在这种情况下,您唯一的选择是在其他代码设置后,自己从代码中设置该值。

对于javax.net.debug,该选项需要在Debug 类的静态静态初始化程序运行之前设置为其最终值sun.*,也就是在第一条消息出现之前。这可以被任何不用作某些选项的值禁用(空字符串,或者不应该禁用它)。如果稍后设置,它将没有任何效果,事后也无法将其关闭(除了做一些糟糕的反射黑客以访问该类的内部,这只能在 java 8 及更早版本中实现)


查看完整回答
反对 回复 2021-12-01
?
郎朗坤

TA贡献1921条经验 获得超9个赞

您可以通过从 IDE 的运行配置中删除以下内容来禁用它:

-Djavax.net.debug=all


查看完整回答
反对 回复 2021-12-01
?
隔江千里

TA贡献1906条经验 获得超10个赞

如果有一些启用 SSL 日志记录的 VM 参数尝试删除它们,此外您可以检查 eclipse.ini 文件以查看这些参数是否在那里声明。


查看完整回答
反对 回复 2021-12-01
  • 3 回答
  • 0 关注
  • 245 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信