Java 如何以编程方式删除Eclipse安全存储设置
如何以编程方式删除eclipse安全存储中保存的内容?在运行一些SWTBot测试之前,我需要重置所有设置 我知道,我可以删除文件夹,但是没有其他方法吗Java 如何以编程方式删除Eclipse安全存储设置,java,eclipse-rcp,equinox,Java,Eclipse Rcp,Equinox,如何以编程方式删除eclipse安全存储中保存的内容?在运行一些SWTBot测试之前,我需要重置所有设置 我知道,我可以删除文件夹,但是没有其他方法吗 ../.eclipse/org.eclipse.equinox.security 编辑: 多亏了克里斯,我解决了这个问题 //part 1 try { AuthPlugin.getDefault().stop(null); } catch (final Exception e) { e.p
../.eclipse/org.eclipse.equinox.security
编辑:
多亏了克里斯,我解决了这个问题
//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();
}
//第1部分
试一试{
AuthPlugin.getDefault().stop(null);
}捕获(最终异常e){
e、 printStackTrace();
}
//第二部分
最终ISecurePreferences根节点=SecurePreferencesFactory.getDefault()
.node(根节点名称);
最后一个字符串[]name=rootNode.childrenNames().clone();
for(int i=0;i
这个问题在第二部分中得到了解决。我还想通过使用SWTBot进行测试,演示如何停止安全存储的身份验证,因为这非常烦人。您可以使用ISecurePreferences删除安全存储中的存储值。看一看
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