如何以编程方式删除eclipse安全存储中保存的内容?在运行一些SWTBot测试之前,我需要重置所有设置。
我知道,我可以删除该文件夹,但不是另一种方式吗?
../.eclipse/org.eclipse.equinox.security
编辑:
感谢Kris我解决了这个问题。
//part 1
try {
AuthPlugin.getDefault().stop(null);
} catch (final Exception e) {
e.printStackTrace();
}
//part 2
final ISecurePreferences rootNode = SecurePreferencesFactory.getDefault()
.node(ROOT_NODE_NAME);
final String[] names = rootNode.childrenNames().clone();
for (int i = 0; i < names.length; i++) {
rootNode.node(names[i]).removeNode();
}
第2部分解决了这个问题。我还想说明如何停止安全存储的身份验证,因为通过使用SWTBot进行测试非常烦人。
答案 0 :(得分:1)
您可以使用ISecurePreferences删除安全存储中的存储值。看看here
ISecurePreferences root = org.eclipse.equinox.security.storage.SecurePreferencesFactory.getDefault();
if (root == null)
return null;
ISecurePreferences node = root.node("/your.class.path.or.something.else"); // get the node for your application e.g. this.getClass().getCanonicalName()
node = node.node( "some name"); // get custom node from the tree
node.get( "key" ); // load
node.put("key","value", true / false (encrypt) ); // store (no save operation)
node.remove("key"); // remove
node.flush(); // save