在java.security.security中查找所有属性的当前状态
对于调试,我需要一种方法来发现,对于在给定时刻运行的JVM,类中维护的所有属性的所有名称和所有值 通过研究API规范和 如果我知道某个属性的名称,我可以使用查找其当前值。但我不知道如何发现所有的名字 属性的初始设置可以在配置文件中进行,但稍后可以使用动态添加和更改设置。我对当前设置感兴趣,它不一定是初始设置在java.security.security中查找所有属性的当前状态,java,Java,对于调试,我需要一种方法来发现,对于在给定时刻运行的JVM,类中维护的所有属性的所有名称和所有值 通过研究API规范和 如果我知道某个属性的名称,我可以使用查找其当前值。但我不知道如何发现所有的名字 属性的初始设置可以在配置文件中进行,但稍后可以使用动态添加和更改设置。我对当前设置感兴趣,它不一定是初始设置 谢谢您的指导 setProperty和getProperty都操作内部props字段。您可以使用反射API访问它。严格使用此代码作为调试的一次性代码!永远不要进入生产代码 Field f =
谢谢您的指导
setProperty
和getProperty
都操作内部props
字段。您可以使用反射API访问它。严格使用此代码作为调试的一次性代码!永远不要进入生产代码
Field f = Security.class.getDeclaredField("props");
f.setAccessible(true);
Properties allProps = (Properties) f.get(null); // Static field, so null object.
System.out.println(allProps); //Or iterate over elements()/propertyNames() and print them individually
使用
安全性类:
String certDisabled = Security.getProperty("jdk.certpath.disabledAlgorithms");
String tlsDisabled= Security.getProperty("jdk.tls.disabledAlgorithms");