如何以编程方式删除Eclipse Secure Storage设置

时间:2011-09-13 11:17:49

标签: java eclipse-rcp equinox

如何以编程方式删除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进行测试非常烦人。

1 个答案:

答案 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