Comment 1 for bug 376207

Revision history for this message
James Henstridge (jamesh) wrote :

I've put together a branch that implements OpenIDStore in terms of Storm, which removes the problem code paths. The branch does not implement nonce handling because that feature is not required by OpenID providers.

That solves the problem for the SSO server, but leaves the openidconsumer code unfixed. It'd be good to see if we can share as much of the implementation as possible. Here's a sketch of a solution:

1. have a base StormOpenIDStore class that is pretty much the same as my current code, but with the nonce handling filled in.

2. rather than referencing the Storm classes representing associations and nonces directly, go through class variables.

3. provide implementations of the association and nonce Storm classes minus the __storm_table__ attributes.

4. the SSO server and shipit could then subclass the association and nonce classes, filling in __storm_table__ with the correct table names, and make a StormOpenIDStore subclass that points at these two Storm classes.

5. Templatise the current tests in my branch so that they can be run against the SSO and shipit specialised OpenIDStores.