| [dtp-connect-dev] Preventing Persistence of Authentication Information |
Hey all, I've modified the connectivity APIs to give extenders the ability to prevent certain properties from being persisted within workspace (namely authentication information, which was the driver for this change). The following is a summary of the changes: 1. Added a "propertiesPersistenceHook" attribute to connectionProfile and profileExtension elements. This gives extension providers the ability to associate an IPropertiesPersistenceHook implementation with their profile or profile extension. 2. Added IPropertiesPersistenceHook interface. This gives providers an opportunity to scrub the property set prior to being saved. This also gives providers the opportunity to expand the property set during loading. It also provides methods to the framework for determining whether or not a property set is complete so the framework can open a property page to allow the user to specify properties that were not persisted (e.g. password). 3. Modified IConnectionProfile by adding arePropertiesComplete() and arePropertiesComplete(String) methods. These methods may be used by clients in determining whether or not all properties are complete. (Note, complete does not mean that a connection attempt will be successful, it simply means that the properties are complete enough that an attempt can be made.) 4. Updated generic DB plugins to use the new API. 5. Updated connect action to prompt the user in the event a property set is incomplete. (Note, the initial property page will be the property page returned by the profile's propertiesPersistenceHook. If the base properties are complete, the initial page will be the page by the propertiesPersistenceHook for the first profile extension which is not complete.) Attached is the patch containing the changes. (Note, this also includes some various fixes for errors found in the persistence of extended properties contributed through profile extensions.) (See attached file: pwd_prompt.patch) Please let me know if you have any questions, comments, concerns, etc... Happy coding, Rob
Attachment:
pwd_prompt.patch
Description: Binary data