I checked this with Shindig 2.0.0 which is available for download and I was able to get the gadget work in both sample container and also with the url (I used the full url with the security tokens). So Is this a problem with current shindig trunk.
But when Still unable to get it working in the current trunk revision. I changed the url's in the TestSecurityTokenCodec.java, then i'am getting the following error in the terminal. Nothing is displayed in the sample container. WARNING: oauthFetchUnexpectedError 2011-07-01 11:34:04.711:WARN::/gadgets/makeRequest java.lang.UnsupportedOperationException: No active URL available at org.apache.shindig.auth.AbstractSecurityToken.getActiveUrl(AbstractSecurityToken.java:34) at org.apache.shindig.gadgets.oauth.GadgetOAuthCallbackGenerator.checkGadgetCanRender(GadgetOAuthCallbackGenerator.java:117) at org.apache.shindig.gadgets.oauth.GadgetOAuthCallbackGenerator.generateCallback(GadgetOAuthCallbackGenerator.java:100) at org.apache.shindig.gadgets.oauth.OAuthRequest.addCallback(OAuthRequest.java:371) at org.apache.shindig.gadgets.oauth.OAuthRequest.fetchRequestToken(OAuthRequest.java:343) at org.apache.shindig.gadgets.oauth.OAuthRequest.attemptFetch(OAuthRequest.java:288) at org.apache.shindig.gadgets.oauth.OAuthRequest.fetchWithRetry(OAuthRequest.java:244) at org.apache.shindig.gadgets.oauth.OAuthRequest.fetchNoThrow(OAuthRequest.java:200) at org.apache.shindig.gadgets.oauth.OAuthRequest.fetch(OAuthRequest.java:181) at org.apache.shindig.gadgets.http.DefaultRequestPipeline.execute(DefaultRequestPipeline.java:108) at org.apache.shindig.gadgets.servlet.MakeRequestHandler.fetch(MakeRequestHandler.java:107) at org.apache.shindig.gadgets.servlet.MakeRequestServlet.doGet(MakeRequestServlet.java:55) at org.apache.shindig.gadgets.servlet.MakeRequestServlet.doPost(MakeRequestServlet.java:68) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1221) at org.apache.shindig.gadgets.servlet.ETagFilter.doFilter(ETagFilter.java:55) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212) at org.apache.shindig.auth.AuthenticationServletFilter.callChain(AuthenticationServletFilter.java:151) at org.apache.shindig.auth.AuthenticationServletFilter.doFilter(AuthenticationServletFilter.java:96) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450) at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:945) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) On Fri, Jul 1, 2011 at 3:40 AM, Ryan J Baxter <[email protected]> wrote: > Actually I think its probably related to the fact that the OAuth > implementation that comes with Shindig ends up using > TestSecurityTokenCodec.java. This is a default implementation > SecurityToken but has static URL values for the gadget in the security > token, not the actual URL for the gadget. The OAuth code tries to > actually fetch the gadget XML based on the URL in this class and it fails > because the URL in this class does not exist. If you put the correct URLs > for your gadget in this class it should work. In a production environment > you obviously want to use a different implementation of SecurityToken. > > -Ryan > > Email: [email protected] > Phone: 978-899-3041 > developerWorks Profile > > > > From: Evgeny Bogdanov <[email protected]> > To: [email protected], > Date: 06/30/2011 04:25 PM > Subject: Re: OAuth Error with Shindig > > > > I might be wrong, but it is probably connected to the fact that you do > not give > security token with gadget spec url. > > That is what it says below. I slightly remember something like that, > guess this is why I had to add security token in my tutorial. > > "Something went wrong: Could not fetch gadget spec ==== Original request: > GET /m8/feeds/contacts/default/base?alt=json Host: > www.google.comX-Shindig-AuthType: oauth X-Forwarded-For: > 0:0:0:0:0:0:0:1 X-shindig-dos: on > ====" > > > > On 30/6/11 18:41, Sumedha Sanjeewa wrote: > > I'm not sure about that. I used it because it was given in the above > > mentioned thread. > > My url is > > > > http://localhost:8080/gadgets/ifr?url=http://dirk.balfanz.googlepages.com/contacts.xml > > > > > And I didn't use a security token. I just did the things in the above > > thread. > > > > > > On Thu, Jun 30, 2011 at 7:48 PM, Evgeny > Bogdanov<[email protected]>wrote: > > > >> Are you sure, you want to use RSA_PRIVATE as key_type? > >> I have HMAC_SHA1 instead. > >> > >> What is the url you use to render gadget? > >> > >> What is the value of security token? > >> > >> > >> On 30.06.11 15:52, Sumedha Sanjeewa wrote: > >> > >>> It's correct. Here is the entry in my oauth.json > >>> > >>> "http://dirk.balfanz.**googlepages.com/contacts.xml< > http://dirk.balfanz.googlepages.com/contacts.xml>" > >>> : { > >>> "google" : { > >>> "consumer_key" : "weitu.googlepages.com", > >>> "consumer_secret" : > >>> "**MIICdgIBADANBgkqhkiG9w0BAQEFAA**SCAmAwggJcAgEAAoGBALRiMLAh9iim** > >>> > ur8VA7qVvdqxevEuUkW4K+**2KdMXmnQbG9Aa7k7eBjK1S+**0LYmVjPKlJGNXHDGuy5Fw/** > >>> d7rjVJ0BLB+ubPK8iA/**Tw3hLQgXMRRGRXXCn8ikfuQfjUS1uZ** > >>> > SatdLB81mydBETlJhI6GH4twrbDJCR**2Bwy/**XWXgqgGRzAgMBAAECgYBYWVtleUzav** > >>> kbrPjy0T5FMou8HX9u2AC2ry8vD/**l7cqedtwMPp9k7TubgNFo+** > >>> NGvKsl2ynyprOZR1xjQ7WgrgVB+**mmuScOM/5HVceFuGRDhYTCObE+** > >>> y1kxRloNYXnx3ei1zbeYLPCHdhxRYW**7T0qcynNmwrn05/** > >>> KO2RLjgQNalsQJBANeA3Q4Nugqy4QB**UCEC09SqylT2K9FrrItqL2QKc9v0Zz** > >>> O2uwllCbg0dwpVuYPYXYvikNHHg+**aCWF+**VXsb9rpPsCQQDWR9TT4ORdzoj+** > >>> NccnqkMsDmzt0EfNaAOwHOmVJ2RVBs**pPcxt5iN4HI7HNeG6U5YsFBb+/** > >>> GZbgfBT3kpNGWPTpAkBI+**gFhjfJvRw38n3g/+**UeAkwMI2TJQS4n8+hid0uus3/** > >>> > zOjDySH3XHCUnocn1xOJAyZODBo47E**+67R4jV1/**gzbAkEAklJaspRPXP877NssM5nAZMU > >>> **0/O/NGCZ+**3jPgDUno6WbJn5cqm8MqWhW1xGkImg**Rk+** > >>> > fkDBquiq4gPiT898jusgQJAd5Zrr6Q**8AO/0isr/**3aa6O6NLQxISLKcPDk2NOccAfS/** > >>> xOtfOz4sJYM3+Bs4Io9+**dZGSDCA54Lw03eHTNQghS0A==", > >>> "key_type" : "RSA_PRIVATE" > >>> } > >>> }, > >>> > >>> On Thu, Jun 30, 2011 at 6:16 PM, Jasha Joachimsthal< > >>> [email protected]> wrote: > >>> > >>> The identifier of your oauth service probably doesn't match, for > Google > >>>> it's > >>>> "google". See the following example: > >>>> > >>>> "http://www.example.com/**oauthtest.xml< > http://www.example.com/oauthtest.xml>" > >>>> : { > >>>> "google" : { > >>>> "consumer_key" : "www.example.com", > >>>> "consumer_secret" : "mysecret", > >>>> "key_type" : "HMAC-SHA1" > >>>> } > >>>> } > >>>> > >>>> Jasha Joachimsthal > >>>> > >>>> Europe - Amsterdam - Oosteinde 11, 1017 WT Amsterdam - +31(0)20 522 > 4466 > >>>> US - Boston - 1 Broadway, Cambridge, MA 02142 - +1 877 414 4776 (toll > >>>> free) > >>>> > >>>> www.onehippo.com > >>>> > >>>> > >>>> On 30 June 2011 14:42, Sumedha Sanjeewa<[email protected]> wrote: > >>>> > >>>> Hi Evgeny, > >>>>> Ok. Now I'm clear about this. So I should be able to test a oauth > >>>>> gadget. > >>>>> But I'm unable to test oauth as you said although I had changed the > >>>>> oauth.json. When I test a oauth gadget above error comes out. Also > I'm > >>>>> > >>>> not > >>>> > >>>>> getting to approve oauth. > >>>>> Is my oauth.json is not read by shindig, because I got the same > error > >>>>> > >>>> when > >>>> > >>>>> i used a Gadget Server which was based on shindig and I was able to > >>>>> > >>>> solve > >>>> > >>>>> it after adding the OAuth consumer details. > >>>>> > >>>>> On Thu, Jun 30, 2011 at 3:23 PM, Evgeny Bogdanov< > >>>>> > >>>> [email protected] > >>>> > >>>>> wrote: > >>>>>> Yes. That's correct. You can only change oauth.json file to test > oauth > >>>>>> > >>>>> in > >>>>> shindig. > >>>>>> However, if you restart the shindig server, all oauth keys will be > lost > >>>>>> since they > >>>>>> are not saved in DB, which means users will have to again approve > oauth > >>>>>> > >>>>> for > >>>>> > >>>>>> all > >>>>>> oauth gadgets. > >>>>>> > >>>>>> > >>>>>> On 30.06.11 08:25, Sumedha Sanjeewa wrote: > >>>>>> > >>>>>> Hi, > >>>>>>> Thanks for the above. But still i'm not clear about this. > According to > >>>>>>> > >>>>>> the > >>>>>> above I should be able to get Shindig work with OAuth using > oauth.json > >>>>>>> without implementing new class. As I understood these changes are > >>>>>>> only necessary if I'm going to use Shindig to a product where > oauth > >>>>>>> > >>>>>> data > >>>>> are > >>>>>>> stored in DB's. Am I correct or do I need to modify shindig > although > >>>>>>> > >>>>>> using > >>>>>> oauth.json which is already in Shindig. > >>>>>>> > >>>>>>> On Wed, Jun 29, 2011 at 1:55 PM, Evgeny > Bogdanov<evgeny.bogdanov@epfl. > >>>>>>> > >>>>>> ** > >>>>>> ch<[email protected]>>**wrote: > >>>>>>> To add your implementation to shindig, you can add it into > >>>>>>> > >>>>>>>> SocialApiGuiceModule.java like this > >>>>>>>> > >>>>>>>> import org.apache.shindig.social.******opensocial.oauth.**** > >>>>>>>> OAuthDataStore; > >>>>>>>> import org.apache.shindig.social.******sample.oauth.**** > >>>>>>>> SampleOAuthDataStore; > >>>>>>>> > >>>>>>>> and > >>>>>>>> > >>>>>>>> > bind(OAuthDataStore.class).to(******SampleOAuthDataStore.**class); > >>>>>>>> > >>>>>>>> Change SampleOAuthDataStore into your own class. > >>>>>>>> > >>>>>>>> Implement your class according to SampleOAuthDataStore.java > >>>>>>>> The sample class uses json-db, if you need a persistent > data-store > >>>>>>>> > >>>>>>> (like > >>>>>> mysql, posgres), > >>>>>>>> you have to implement it yourself. Do it similarly to > >>>>>>>> JsonDbOpensocialService. > >>>>>>>> > >>>>>>>> Hope it answers your questions > >>>>>>>> > >>>>>>>> Best > >>>>>>>> Evgeny > >>>>>>>> > >>>>>>>> > >>>>>>>> On 29.06.11 05:55, Sumedha Sanjeewa wrote: > >>>>>>>> > >>>>>>>> Thanks Augustin and Evgeny. > >>>>>>>> > >>>>>>>>> In the Java version there is a BasicOAuthStore class which > >>>>>>>>> > >>>>>>>> implements > >>>>> the > >>>>>>>>> OAuthStore. So can i use that. Also please can you explain me > how i > >>>>>>>>> should > >>>>>>>>> implement this class. (In which package,where to access the > class > >>>>>>>>> > >>>>>>>> etc) > >>>>>> On Tue, Jun 28, 2011 at 7:32 PM, Evgeny > >>>>>>>> Bogdanov<evgeny.bogdanov@epfl. > >>>>> * > >>>>> > >>>>>> *** > >>>>>>>>> ch<[email protected]>>****wrote: > >>>>>>>>> > >>>>>>>>> Hi > >>>>>>>>> > >>>>>>>>> attached is an example tutorial I wrote some time ago. It was > >>>>>>>>> working > >>>>> with > >>>>>>>>>> Shindig 2.0. > >>>>>>>>>> Did not check newer versions. > >>>>>>>>>> > >>>>>>>>>> This is more a proof-of-concept that uses oauth.json file. > >>>>>>>>>> > >>>>>>>>>> If you wish a production ready implementation, you need to > >>>>>>>>>> > >>>>>>>>> implement > >>>>> your > >>>>>>>>>> own oAuthDataStore class, > >>>>>>>>>> as Agustin wrote. > >>>>>>>>>> > >>>>>>>>>> Best > >>>>>>>>>> Evgeny > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> On 28.06.11 15:40, Agustin Casiva wrote: > >>>>>>>>>> > >>>>>>>>>> Hi, I don't have experience with the Java version of Shindig. > But > >>>>>>>>>> > >>>>>>>>> in > >>>>> PHP > >>>>>>>>>> I > >>>>>>>>>>> had to implement several class to get shindig working with > oauth > >>>>>>>>>>> > >>>>>>>>>> from > >>>>>> gadgets. The most important class was the implementation of > >>>>>>>>>>> OAuthDataStore, > >>>>>>>>>>> this class handles the Tokens requested to the service > provider. > >>>>>>>>>>> > >>>>>>>>>>> I assume that in the Java version should be the same, maybe > you > >>>>>>>>>>> > >>>>>>>>>> need > >>>>> implement some class to make the feature work. > >>>>>>>>>>> I will try to check that and I will let you know. > >>>>>>>>>>> > >>>>>>>>>>> Regards > >>>>>>>>>>> > >>>>>>>>>>> On Tue, Jun 28, 2011 at 2:16 AM, Sumedha Sanjeewa< > >>>>>>>>>>> > >>>>>>>>>> [email protected] > >>>>> wrote: > >>>>>>>>>>> Hi, > >>>>>>>>>>> > >>>>>>>>>>> Can someone help me > >>>>>>>>>>> > >>>>>>>>>>>> Thanks in advance > >>>>>>>>>>>> > >>>>>>>>>>>> On Mon, Jun 27, 2011 at 5:41 PM, Sumedha Sanjeewa< > >>>>>>>>>>>> > >>>>>>>>>>> [email protected]> > >>>>>> wrote: > >>>>>>>>>>>> Hi, > >>>>>>>>>>>> > >>>>>>>>>>>> I'm new to Shindig and I want to try an OAuth gadget with > >>>>>>>>>>>> > >>>>>>>>>>> Shindig. > >>>>> I > >>>>> > >>>>>> followed the steps mentioned in this thread [1]. I checked out > >>>>>>>>>>>> the > >>>>> current > >>>>>>>>>>>>> source code in the trunk > >>>>>>>>>>>> Also I used 'mvn -Prun' to start the Jetty server from the > base > >>>>>>>>>>>>> directory. > >>>>>>>>>>>>> > >>>>>>>>>>>>> Normal gadgets works fine but when i try the sample > gadget > >>>>>>>>>>>> given > >>>>>>>>>>>> > >>>>>>>>>>> in > >>>>>> the > >>>>>>>>>>>>> above thread i am getting this error. > >>>>>>>>>>>>> > >>>>>>>>>>>>> "Something went wrong: Could not fetch gadget spec ==== > Original > >>>>>>>>>>>>> request: > >>>>>>>>>>>>> GET /m8/feeds/contacts/default/********base?alt=json Host: > >>>>>>>>>>>>> > >>>>>>>>>>>>> www.google.comX-Shindig-********AuthType: oauth > >>>>>>>>>>>>> X-Forwarded-For: > >>>>>>>>>>>>> > >>>>>>>>>>>>> 0:0:0:0:0:0:0:1 > >>>>>>>>>>>> X-shindig-dos: on > >>>>>>>>>>>> > >>>>>>>>>>>> ====" > >>>>>>>>>>>> > >>>>>>>>>>>> Please can someone help me with this. > >>>>>>>>>>>>> [1] > >>>>>>>>>>>>> > >>>>>>>>>>>>> > http://groups.google.com/********group/oauth/browse_thread/**< > http://groups.google.com/******group/oauth/browse_thread/**> > >>>>>>>>>>>>> < > >>>>>>>>>>>>> > >>>>>>>>>>>> http://groups.google.com/******group/oauth/browse_thread/**< > http://groups.google.com/****group/oauth/browse_thread/**> > >>>>>> <h**ttp://groups.google.com/******group/oauth/browse_thread/**< > http://groups.google.com/****group/oauth/browse_thread/**> > >>>>>>>>>>>>> **< > >>>>>>>>>>>>> > >>>>>>>>>>>> http://groups.google.com/****group/oauth/browse_thread/**< > http://groups.google.com/**group/oauth/browse_thread/**> > >>>>>> thread/5dea93b44dbbb628<http:/******/groups.google.com/group/****< > http://groups.google.com/group/**> > >>>>>>>>>>>> oauth/browse_thread/thread/******5dea93b44dbbb628<http://** > >>>>>>>>>>>> groups.google.com/group/oauth/****browse_thread/thread/**< > http://groups.google.com/group/oauth/**browse_thread/thread/**> > >>>>>>>>>>>> 5dea93b44dbbb628< > >>>>>>>>>>>> > >>>>>>>>>>> http://groups.google.com/**group/oauth/browse_thread/** > >>>> thread/5dea93b44dbbb628< > http://groups.google.com/group/oauth/browse_thread/thread/5dea93b44dbbb628 > > > >>>> > >>>>>>>>>>>> Thanks > >>>>>>>>>>>> > >>>>>>>>>>>> -- > >>>>>>>>>>>>> Regards, > >>>>>>>>>>>>> Sumedha Kodithuwakku > >>>>>>>>>>>>> (SumedhaS) > >>>>>>>>>>>>> > >>>>>>>>>>>>> > >>>>>>>>>>>>> > >>>>>>>>>>>>> > >>>>>>>>>>>>> -- > >>>>>>>>>>>>> > >>>>>>>>>>>>> Regards, > >>>>>>>>>>>> Sumedha Kodithuwakku > >>>>>>>>>>>> (SumedhaS) > >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>> -- > >>>>> Regards, > >>>>> Sumedha Kodithuwakku > >>>>> (SumedhaS) > >>>>> > >>>>> > >>> > > > > > > -- Regards, Sumedha Kodithuwakku (SumedhaS)
