Java 如何以编程方式删除Eclipse安全存储设置

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安全存储中保存的内容?在运行一些SWTBot测试之前,我需要重置所有设置

我知道,我可以删除文件夹,但是没有其他方法吗

../.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