However, according to the documentation: The Consumer site needs to
have the same instance of the ConsumerManager class throughout the
lifecycle of a OpenID authentication session.
So it seems that if one JVM instance on the google app engine sends
the openId request to the user's provider, and the response from the
provider gets handled by a different JVM instance, then it would fail.
Does anyone know a way to get around this, or a way for me to modify
ConsumerManager to not have that requirement?
Is there some member variable that needs to be shared? If so could I
store it in the memCache for another ConsumerManager on a different
JVM instance to use?
It would be instance of NonceVerifier and ConsumerAssociationStore that uses
default implementation InMemoryXXX.
It needs another implementation for AppEngine shared with memcache or session.
then, you can instanciate ConsumerManager at every request and have to
call setter below
ConsumerManager#setAssociations,
ConsumerManager#setNonceVerifier,
ConsumerManager#setPrivateAssociationStore,
fyi, I made some hacks for appengine based on release 0.9.5.593, it
works for me.
thx.
WdWeaver
2010/2/5 Spines <kwst...@gmail.com>:
> --
> You received this message because you are subscribed to the Google Groups "OpenID4Java" group.
> To post to this group, send email to openi...@googlegroups.com.
> To unsubscribe from this group, send email to openid4java...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/openid4java?hl=en.
>
>
On Feb 5, 7:47 am, 渡健太 <kenta.wat...@gmail.com> wrote:
> hi Spines,
>
> It would be instance of NonceVerifier and ConsumerAssociationStore that uses
> default implementation InMemoryXXX.
> It needs another implementation for AppEngine shared with memcache or session.
> then, you can instanciate ConsumerManager at every request and have to
> call setter below
> ConsumerManager#setAssociations,
> ConsumerManager#setNonceVerifier,
> ConsumerManager#setPrivateAssociationStore,
>
> fyi, I made some hacks for appengine based on release 0.9.5.593, it
> works for me.
>
> thx.
>
> WdWeaver
>
> 2010/2/5 Spines <kwste...@gmail.com>:
I send you my github codes below,
http://bit.ly/d8aq9R http://bit.ly/9AZUwG http://bit.ly/cMEcRp
( * just a toy level code :/ )
Maybe they don't fit with latest version, but I hope these help
you :)
If you use SampleConsumer, you need to change it to make
instance of ConsumerManger at every request.
(* Head of authRequest and verifyResponse )
Thanks,
WdWeaver
It uses google urlfetch to replace org.apache.http.client.*.
Withe a couple line changes, it seems to work well.
public ConsumerManager create(Provider<ConsumerManager> provider) {ConsumerManager manager = provider.get();
manager.setNonceVerifier(nonceVerifier);manager.setAssociations(consumerAssociationStore);try {manager.setPrivateAssociationStore(consumerAssociationStore);} catch (ConsumerException e) {throw new RuntimeException(e);}return manager;}