Update on this:

AppDataService interface methods now take an enum Type parameter that
specified the type of parameter being stored.  Current types are
APPDATA and OAUTH.  USERPREFS could be added easily.

I need to change the AppDataService methods so they take a boolean
option "ignoreModuleId", so that you can store values for all
instances of a gadget (think two instances of the same gadget on a
page.)

The AppDataService interface is interesting in that it takes *both* a
security token and an appid parameter: what if token.getAppId() is not
equal to appId?  Is this an artifact of the REST and JSON-RPC wire
format not dealing explicitly with authentication issues, or is there
a really good reason to have two different versions of the app id
going into the same method?

On Tue, Nov 11, 2008 at 8:37 AM, Brian Eaton <[EMAIL PROTECTED]> wrote:
> OK.  I think having *InternalPersonData methods gets us closer to
> being able to store user prefs and other goodies in there.  We'd have
> a UserPrefHandler servlet that does appropriate ACL checks prior to
> fetching the data.
>
> I'm not planning on writing that any time soon, but I'll keep it in
> mind as I muck around in the app data code.
>
> On Mon, Nov 10, 2008 at 6:07 PM, Kevin Brown <[EMAIL PROTECTED]> wrote:
>> I like this idea. I'd also like to see an implementation of UserPrefs on app
>> data as well, since that's the way most people are implementing it anyway.
>>
>> On Mon, Nov 10, 2008 at 11:17 AM, Brian Eaton <[EMAIL PROTECTED]> wrote:
>>
>>> Hey folks -
>>>
>>> I'd like to make it easier for shindig deployments to use OAuth by
>>> reusing the app data store for per-user and per-gadget persistent
>>> storage.
>>>
>>> Proposal:
>>> 1) Add three new methods to AppDataService,
>>> getInternalPersonDataPrivate, updateInternalPersonData, and
>>> deleteInternalPersonData.  These would not be exposed to any servlets,
>>> they would only be used by internal code.
>>>
>>> 2) Implement those methods in JsonDbOpenSocialService as filters on
>>> top of filter names.  Fields prefixed with __internal_ would only be
>>> available via the *InternalPersonData methods, not via the other
>>> PersonData methods.  This will prevent javascript code from reading
>>> OAuth data directly.
>>>
>>> 3) Create an implementation of OAuthStore built on top of
>>> AppDataService.  AppDataOAuthStore would
>>>    a) map the OAuth data on to the appdata schema.
>>>    b) handle encryption and decryption of keys to prevent them from
>>> being accidentally disclosed.
>>>
>>> 4) Create a new shindig java subproject "integration" to house
>>> AppDataOAuthStore and associate Guice modules.  This is necessary to
>>> avoid dependencies between social-api and gadgets.
>>>
>>> Comments?  I'm working on a patch now.  If this seems questionable to
>>> anyone I'll stick the patch in Jira for review prior to submission.
>>> If there are no objections I'll submit and then address any feedback.
>>>
>>> Cheers,
>>> Brian
>>>
>>
>

Reply via email to