|[ecf-dev] ID and IContainer secure persistence|
Hi Folks,Over the past few weeks I've been experimenting with the new-in-3.4 Equinox secure storage to store Namespaces/ID instance. I've created a new API plugin: org.eclipse.ecf.storage and a new test plugin: org.eclipse.ecf.tests.storage. See attached project set file for anonymous access (just change pserver to extssh for committer access).
The main initial use case for this would be the ability to store/retrieve remote container IDs as well as associated IConnectContext credentials (e.g. passwords, etc). So that things like automatic connect (e.g. upon Eclipse startup) can be securely implemented.
The main concepts for ID storage and retrieval: ID storage: 1) Get an IDStore (published as an OSGi service) 2) Call IDStore.store(ID) to store the ID instance.2a) opt: Use the IDEntry instance returned from 2 to securely store data (e.g. passwords, user data, other credentials, etc) associated with ID instance
Retrieval: 1) Call IDStore.getNamespaceEntry(Namespace) for the desired Namespace 2) Call INamespaceEntry.getIDEntries()2a) opt: Use IDEntry.getSecurePreferences() to retrieve data associated via 2a above
3) Call IDEntry.createID()The value returned from IDEntry.createID() will be equals() to the ID originally stored
Any comments/review of the API and tests would be most appreciated. I've started writing up things in the wiki here:
http://wiki.eclipse.org/Storage/Retrieval_of_IDs%2C_IContainers_using_Equinox_Secure_Preferences Also see/run the test cases in the org.eclipse.ecf.tests.storage.If we can get it in decent shape in time, for ECF 2.1 I've been thinking that it might make sense to add this package (org.eclipse.ecf.storage) to the ecf core plugin. Of course, this requires/depends upon equinox 3.4, so this would mean that these services in core ECF 2.1 could only run on 3.4...but this may be/probably would be OK.
Any thoughts/comments appreciated. Scott
<?xml version="1.0" encoding="UTF-8"?> <psf version="2.0"> <provider id="org.eclipse.team.cvs.core.cvsnature"> <project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/technology,org.eclipse.ecf/plugins/org.eclipse.ecf.storage,org.eclipse.ecf.storage"/> <project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/technology,org.eclipse.ecf/tests/org.eclipse.ecf.tests.storage,org.eclipse.ecf.tests.storage"/> </provider> </psf>
Back to the top