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);