Author: lindner
Date: Tue May 18 16:57:35 2010
New Revision: 945749

URL: http://svn.apache.org/viewvc?rev=945749&view=rev
Log:
tokendecoder -> codec

Modified:
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsonRpcHandler.java
    
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/JsonRpcGadgetContextTest.java
    
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/JsonRpcHandlerTest.java
    
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/RpcServletTest.java

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsonRpcHandler.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsonRpcHandler.java?rev=945749&r1=945748&r2=945749&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsonRpcHandler.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsonRpcHandler.java
 Tue May 18 16:57:35 2010
@@ -19,6 +19,8 @@
 package org.apache.shindig.gadgets.servlet;
 
 import org.apache.shindig.auth.SecurityToken;
+import org.apache.shindig.auth.SecurityTokenDecoder;
+import org.apache.shindig.auth.SecurityTokenException;
 import org.apache.shindig.config.ContainerConfig;
 import org.apache.shindig.gadgets.Gadget;
 import org.apache.shindig.gadgets.GadgetContext;
@@ -56,13 +58,16 @@ public class JsonRpcHandler {
   protected final Processor processor;
   protected final UrlGenerator urlGenerator;
   protected final ContainerConfig containerConfig;
+  protected final SecurityTokenDecoder securityTokenDecoder;
 
   @Inject
-  public JsonRpcHandler(ExecutorService executor, Processor processor, 
UrlGenerator urlGenerator, ContainerConfig containerConfig) {
+  public JsonRpcHandler(ExecutorService executor, Processor processor, 
UrlGenerator urlGenerator, ContainerConfig containerConfig,
+                        SecurityTokenDecoder securityTokenDecoder) {
     this.executor = executor;
     this.processor = processor;
     this.urlGenerator = urlGenerator;
     this.containerConfig = containerConfig;
+    this.securityTokenDecoder = securityTokenDecoder;
   }
 
 
@@ -86,7 +91,7 @@ public class JsonRpcHandler {
     
     for (int i = 0, j = requestedGadgets.length(); i < j; ++i) {
       // Calculate security token
-      SecurityToken token = generateSecurityToken(servletRequest, 
requestedGadgets.getJSONObject(i));
+      SecurityToken token = getSecurityTokenForRequest(servletRequest, 
requestedGadgets.getJSONObject(i));
       GadgetContext context = new JsonRpcGadgetContext(requestContext, 
requestedGadgets.getJSONObject(i), token);
 
       gadgets.add(context);
@@ -131,21 +136,23 @@ public class JsonRpcHandler {
       } finally {
         numJobs--;
       }
-    } 
+    }
+
+    // Add some container info?
+
     return response;
   }
 
   /**
-   * Return a security token for this gadget
+   * Return a security token for this gadget, subclass this to parse your 
cookies, etc.
    * @param req
    * @return
    */
-  protected SecurityToken generateSecurityToken(HttpServletRequest req, 
JSONObject j) {
+  protected SecurityToken getSecurityTokenForRequest(HttpServletRequest req, 
JSONObject j) {
     // No security token by default..
     return null;
   }
 
-
   protected Job createNewJob(GadgetContext context) {
     return new Job(context);
   }
@@ -248,7 +255,17 @@ public class JsonRpcHandler {
                   .put("scaling", prefs.getScaling())
                   .put("scrolling", prefs.getScrolling());
 
-      gadgetJson.put("st", gadget.getContext().getToken().toString());
+      // If there's no security token we don't add one, which forces anonymous
+      SecurityToken token = gadget.getContext().getToken();
+      if (token != null) {
+        try {
+          String tokenVal =  securityTokenDecoder.encodeToken(token);
+          gadgetJson.put("st", tokenVal);
+        } catch (SecurityTokenException e) {
+          //ignore
+        }
+      }
+
       return gadgetJson;
     }
 

Modified: 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/JsonRpcGadgetContextTest.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/JsonRpcGadgetContextTest.java?rev=945749&r1=945748&r2=945749&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/JsonRpcGadgetContextTest.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/JsonRpcGadgetContextTest.java
 Tue May 18 16:57:35 2010
@@ -54,7 +54,7 @@ public class JsonRpcGadgetContextTest ex
         .put("country", Locale.US.getCountry().toUpperCase())
         .put("context-field", "context-value");
 
-    GadgetContext jsonContext = new JsonRpcGadgetContext(context, gadget);
+    GadgetContext jsonContext = new JsonRpcGadgetContext(context, gadget, 
null);  // FIXME
     assertEquals(SPEC_URL, jsonContext.getUrl().toString());
     assertEquals(SPEC_ID, jsonContext.getModuleId());
     assertEquals(Locale.US.getLanguage(),

Modified: 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/JsonRpcHandlerTest.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/JsonRpcHandlerTest.java?rev=945749&r1=945748&r2=945749&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/JsonRpcHandlerTest.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/JsonRpcHandlerTest.java
 Tue May 18 16:57:35 2010
@@ -22,6 +22,9 @@ import static org.junit.Assert.assertEqu
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
+import org.apache.shindig.auth.AnonymousSecurityToken;
+import org.apache.shindig.common.testing.FakeGadgetToken;
+import org.apache.shindig.common.testing.FakeHttpServletRequest;
 import org.apache.shindig.common.testing.TestExecutorService;
 import org.apache.shindig.common.uri.Uri;
 import org.apache.shindig.gadgets.Gadget;
@@ -46,6 +49,7 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.Map;
 
+import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 public class JsonRpcHandlerTest {
@@ -82,7 +86,7 @@ public class JsonRpcHandlerTest {
   private final FakeProcessor processor = new FakeProcessor();
   private final FakeUrlGenerator urlGenerator = new FakeUrlGenerator();
   private final JsonRpcHandler jsonRpcHandler
-      = new JsonRpcHandler(new TestExecutorService(), processor, urlGenerator, 
null);
+      = new JsonRpcHandler(new TestExecutorService(), processor, urlGenerator, 
null, new FakeGadgetToken.Decoder());
 
   private JSONObject createContext(String lang, String country)
       throws JSONException {
@@ -112,8 +116,9 @@ public class JsonRpcHandlerTest {
         .put("gadgets", gadgets);
 
     urlGenerator.iframeUrl = SPEC_URL.toString();
+    HttpServletRequest req = new FakeHttpServletRequest();
 
-    JSONObject response = jsonRpcHandler.process(input);
+    JSONObject response = jsonRpcHandler.process(req, input);
 
     JSONArray outGadgets = response.getJSONArray("gadgets");
     JSONObject gadget = outGadgets.getJSONObject(0);
@@ -150,6 +155,7 @@ public class JsonRpcHandlerTest {
 
   @Test
   public void testUnexpectedError() throws Exception {
+    HttpServletRequest req = new FakeHttpServletRequest();
     JSONArray gadgets = new JSONArray()
         .put(createGadget(SPEC_URL.toString(), 0, null));
     JSONObject input = new JSONObject()
@@ -157,7 +163,7 @@ public class JsonRpcHandlerTest {
         .put("gadgets", gadgets);
 
     urlGenerator.throwRandomFault = true;
-    JSONObject resp = jsonRpcHandler.process(input);
+    JSONObject resp = jsonRpcHandler.process(req, input);
     String actual = 
resp.getJSONArray("gadgets").getJSONObject(0).getJSONArray("errors").getString(0);
     assertEquals("BROKEN", actual);
   }
@@ -166,6 +172,8 @@ public class JsonRpcHandlerTest {
 
   @Test
   public void testMultipleGadgets() throws Exception {
+    HttpServletRequest req = new FakeHttpServletRequest();
+
     JSONArray gadgets = new JSONArray()
         .put(createGadget(SPEC_URL.toString(), 0, null))
         .put(createGadget(SPEC_URL2.toString(), 1, null));
@@ -173,7 +181,7 @@ public class JsonRpcHandlerTest {
         .put("context", createContext("en", "US"))
         .put("gadgets", gadgets);
 
-    JSONObject response = jsonRpcHandler.process(input);
+    JSONObject response = jsonRpcHandler.process(req, input);
 
     JSONArray outGadgets = response.getJSONArray("gadgets");
 
@@ -198,6 +206,8 @@ public class JsonRpcHandlerTest {
 
   @Test
   public void testMultipleGadgetsWithAnError() throws Exception {
+    HttpServletRequest req = new FakeHttpServletRequest();
+
     JSONArray gadgets = new JSONArray()
         .put(createGadget(SPEC_URL.toString(), 0, null))
         .put(createGadget(SPEC_URL2.toString(), 1, null));
@@ -208,7 +218,7 @@ public class JsonRpcHandlerTest {
     processor.exceptions.put(SPEC_URL2, 
         new ProcessingException("broken", HttpServletResponse.SC_BAD_REQUEST));
 
-    JSONObject response = jsonRpcHandler.process(input);
+    JSONObject response = jsonRpcHandler.process(req, input);
 
     JSONArray outGadgets = response.getJSONArray("gadgets");
 

Modified: 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/RpcServletTest.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/RpcServletTest.java?rev=945749&r1=945748&r2=945749&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/RpcServletTest.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/RpcServletTest.java
 Tue May 18 16:57:35 2010
@@ -59,7 +59,7 @@ public class RpcServletTest extends Asse
         
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz._({\"GADGETS\":[]})",
         HttpServletResponse.SC_OK);
     JSONObject handlerResponse = new JSONObject("{\"GADGETS\":[]}");
-    expect(handler.process(isA(JSONObject.class))).andReturn(handlerResponse);
+    expect(handler.process(isA(HttpServletRequest.class), 
isA(JSONObject.class))).andReturn(handlerResponse);
     replay(handler);
     servlet.doGet(request, response);
     verify(response);
@@ -70,7 +70,7 @@ public class RpcServletTest extends Asse
     HttpServletRequest request = createGetRequest("{\"gadgets\":[]}", 
"function");
     HttpServletResponse response = createHttpResponse("rpcExceptionMessage",
         HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
-    expect(handler.process(isA(JSONObject.class))).andThrow(
+    expect(handler.process(isA(HttpServletRequest.class), 
isA(JSONObject.class))).andThrow(
         new RpcException("rpcExceptionMessage"));
     replay(handler);
     servlet.doGet(request, response);
@@ -82,7 +82,7 @@ public class RpcServletTest extends Asse
     HttpServletRequest request = createGetRequest("{\"gadgets\":[]}", 
"function");
     HttpServletResponse response = createHttpResponse("Malformed JSON 
request.",
         HttpServletResponse.SC_BAD_REQUEST);
-    expect(handler.process(isA(JSONObject.class))).andThrow(new 
JSONException("json"));
+    expect(handler.process(isA(HttpServletRequest.class), 
isA(JSONObject.class))).andThrow(new JSONException("json"));
     replay(handler);
     servlet.doGet(request, response);
     verify(response);


Reply via email to