如何在Eclipse中的首选项页面存储密码?

时间:2015-08-04 11:21:28

标签: java eclipse eclipse-plugin

我正在尝试存储用于在首选项页面字段中更新的密码。

我是使用ISecurePreferences完成的,但问题是实例关闭后节点不存在。

@Override
public boolean performOk() {
    // TODO Auto-generated method stub
    System.out.println("perform ok");
    ISecurePreferences root = SecurePreferencesFactory.getDefault();

    //System.out.println("Children names: "+root.);

    ISecurePreferences node = root.node("password");
    try {
        System.out.println("Password to store: "+passwordField.getStringValue());
        node.put("password",passwordField.getStringValue(),true);
        System.out.println("stored");


    } catch (StorageException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        System.out.println("Storage failed");
    }       
    return true;
}

在首选项初始化程序中:

@Override
public void initializeDefaultPreferences() {
    // TODO Auto-generated method stub

    System.out.println("Initializing preferences");

    //IPreferenceStore prefStore = Activator.getDefault().getPreferenceStore();
    ISecurePreferences root = SecurePreferencesFactory.getDefault();
    if(root.nodeExists("password")){
        ISecurePreferences node = root.node("password");                    
        try {
            System.out.println("password taken: "+node.get("password",""));
        } catch (StorageException e) {

            // TODO Auto-generated catch block
            e.printStackTrace();

        }
    }
    else
    {
        System.out.println("node doesn't exists");
    }
}

在Eclipse的相同执行中,我可以存储和检索密码。

你能帮助我说明为了在实例之间保留信息我必须做些什么吗?

1 个答案:

答案 0 :(得分:1)

我认为您必须调用flush()的{​​{1}}方法来保存您设置的首选项。