如何通过编程方式获取jdk.http.ntlm.transparentAuth的配置值
运行时查询JDK NTLM透明认证配置的可行方法
你可以通过以下两种方式在调试器的表达式计算窗口直接获取生效的配置值:
方法1:直接调用JDK网络配置类(无模块化限制时优先用)
直接在表达式输入框执行如下代码即可返回配置的实际值:sun.net.NetProperties.get("jdk.http.ntlm.transparentAuth")
方法2:反射调用(兼容JDK9+模块化环境)
如果因为模块化权限限制无法直接访问sun.net包,改用反射逻辑获取:
Class<?> netPropertiesClazz = Class.forName("sun.net.NetProperties"); java.lang.reflect.Method getMethod = netPropertiesClazz.getMethod("get", String.class); getMethod.invoke(null, "jdk.http.ntlm.transparentAuth");
结果说明
- 返回
allHosts即代表你配置的参数已经生效 - 返回
trustedHosts说明是默认值/其他配置覆盖了你的设置 - 返回
null说明配置未被JDK正确加载,需要检查配置文件路径是否正确、运行使用的JDK是否为你修改配置的版本
内容的提问来源于stack exchange,提问作者Solx
相关产品推荐
相关产品推荐

