You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by li...@apache.org on 2011/04/07 04:11:15 UTC
svn commit: r1089708 - in /shindig/trunk/java/gadgets/src:
main/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManager.java
test/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManagerTest.java
Author: lindner
Date: Thu Apr 7 02:11:14 2011
New Revision: 1089708
URL: http://svn.apache.org/viewvc?rev=1089708&view=rev
Log:
Patch from Stanton Sievers | DefaultIframeUriManager changes for handling locked domains"
http://codereview.appspot.com/4343053/
Modified:
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManager.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManagerTest.java
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManager.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManager.java?rev=1089708&r1=1089707&r2=1089708&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManager.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManager.java Thu Apr 7 02:11:14 2011
@@ -126,23 +126,32 @@ public class DefaultIframeUriManager imp
// 2. Set host/authority.
String host;
if (usingLockedDomain(gadget, container)) {
- host = ldGen.getLockedDomainPrefix(gadget.getSpec().getUrl()) +
+ host = "//" + ldGen.getLockedDomainPrefix(gadget.getSpec().getUrl()) +
getReqVal(container, LOCKED_DOMAIN_SUFFIX_KEY);
} else {
host = getReqVal(container, UNLOCKED_DOMAIN_KEY);
}
- // 3. Set host/authority and protocol/schema.
Uri gadgetUri = Uri.parse(host);
+ if (gadgetUri.getAuthority() == null
+ && gadgetUri.getScheme() == null
+ && gadgetUri.getPath().equals(host)) {
+ // This is for backwards compatibility with unlocked domains like
+ // "unlockeddomain.com"
+ gadgetUri = Uri.parse("//" + host);
+ }
+
+ // 3. Set the scheme.
if (StringUtils.isBlank(gadgetUri.getScheme())) {
- uri.setAuthority(host);
uri.setScheme(getScheme(gadget, container));
} else {
- uri.setAuthority(gadgetUri.getAuthority());
uri.setScheme(gadgetUri.getScheme());
}
- // 4. Add the URL.
+ // 4. Set the authority.
+ uri.setAuthority(gadgetUri.getAuthority());
+
+ // 5. Add the URL.
uri.addQueryParameter(Param.URL.getKey(), context.getUrl().toString());
}
Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManagerTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManagerTest.java?rev=1089708&r1=1089707&r2=1089708&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManagerTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManagerTest.java Thu Apr 7 02:11:14 2011
@@ -62,6 +62,7 @@ public class DefaultIframeUriManagerTest
private static final String LD_SUFFIX = ".lockeddomain.com";
private static final String LD_SUFFIX_ALT = ".altld.com";
private static final String UNLOCKED_DOMAIN = "unlockeddomain.com";
+ private static final String UNLOCKED_DOMAIN_CONFIG_VALUE = "//" + UNLOCKED_DOMAIN;
private static final int TYPE_URL_NUM_BASE_PARAMS = 8;
private static final int TYPE_HTML_NUM_BASE_PARAMS = 8;
@@ -654,6 +655,38 @@ public class DefaultIframeUriManagerTest
assertEquals(UriStatus.VALID_UNVERSIONED, manager.validateRenderingUri(testUri));
}
+ @Test
+ public void schemeLessUnlockedDomain() throws Exception {
+ Gadget gadget = mockGadget();
+ ContainerConfig config = new BasicContainerConfig();
+ config
+ .newTransaction()
+ .addContainer(ImmutableMap.<String, Object>builder()
+ .put(ContainerConfig.CONTAINER_KEY, ContainerConfig.DEFAULT_CONTAINER)
+ .put(LOCKED_DOMAIN_SUFFIX_KEY, LD_SUFFIX)
+ .build())
+ .addContainer(ImmutableMap.<String, Object> builder()
+ .put(ContainerConfig.CONTAINER_KEY, CONTAINER)
+ .put(IFRAME_BASE_PATH_KEY, IFRAME_PATH)
+ .put(UNLOCKED_DOMAIN_KEY, UNLOCKED_DOMAIN)
+ .build())
+ .commit();
+
+ TestDefaultIframeUriManager manager = new TestDefaultIframeUriManager(config);
+
+ Uri renderingUri = manager.makeRenderingUri(gadget);
+ assertNotNull(renderingUri);
+
+ UriBuilder uri = new UriBuilder(renderingUri);
+ assertEquals("", uri.getScheme());
+ assertEquals(UNLOCKED_DOMAIN, uri.getAuthority());
+ assertEquals(IFRAME_PATH, uri.getPath());
+
+ // Basic sanity checks on params
+ assertEquals(TYPE_HTML_NUM_BASE_PARAMS, uri.getQueryParameters().size());
+ assertEquals(0, uri.getFragmentParameters().size());
+ }
+
private Uri makeValidationTestUri(String domain, String version) {
UriBuilder uri = new UriBuilder();
uri.setAuthority(domain);
@@ -682,7 +715,7 @@ public class DefaultIframeUriManagerTest
.put(ContainerConfig.CONTAINER_KEY, CONTAINER)
.put(IFRAME_BASE_PATH_KEY, IFRAME_PATH)
.put(LOCKED_DOMAIN_SUFFIX_KEY, LD_SUFFIX)
- .put(UNLOCKED_DOMAIN_KEY, UNLOCKED_DOMAIN)
+ .put(UNLOCKED_DOMAIN_KEY, UNLOCKED_DOMAIN_CONFIG_VALUE)
.put(SECURITY_TOKEN_ALWAYS_KEY, alwaysToken)
.put(LOCKED_DOMAIN_REQUIRED_KEY, ldRequired)
.build())