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/08/05 18:16:22 UTC

svn commit: r1154289 - in /shindig/trunk/java: common/conf/ gadgets/src/main/java/org/apache/shindig/gadgets/oauth/ server/src/main/webapp/WEB-INF/

Author: lindner
Date: Fri Aug  5 16:16:22 2011
New Revision: 1154289

URL: http://svn.apache.org/viewvc?rev=1154289&view=rev
Log:
Patch from Li Xu | Enable shindig.signing.global-callback-url to support any host/port

Modified:
    shindig/trunk/java/common/conf/shindig.properties
    shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/BasicOAuthStore.java
    shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthModule.java
    shindig/trunk/java/server/src/main/webapp/WEB-INF/web.xml

Modified: shindig/trunk/java/common/conf/shindig.properties
URL: http://svn.apache.org/viewvc/shindig/trunk/java/common/conf/shindig.properties?rev=1154289&r1=1154288&r2=1154289&view=diff
==============================================================================
--- shindig/trunk/java/common/conf/shindig.properties (original)
+++ shindig/trunk/java/common/conf/shindig.properties Fri Aug  5 16:16:22 2011
@@ -35,7 +35,7 @@ shindig.oauth.validator-max-timestamp-ag
 shindig.signing.state-key=
 shindig.signing.key-name=
 shindig.signing.key-file=
-shindig.signing.global-callback-url=http://localhost:8080%contextRoot%/gadgets/oauthcallback
+shindig.signing.global-callback-url=http://%authority%%contextRoot%/gadgets/oauthcallback
 shindig.signing.enable-signed-callbacks=true
 
 # Set to true if you want to allow the use of 3-legged OAuth tokens when viewer != owner.

Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/BasicOAuthStore.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/BasicOAuthStore.java?rev=1154289&r1=1154288&r2=1154289&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/BasicOAuthStore.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/BasicOAuthStore.java Fri Aug  5 16:16:22 2011
@@ -19,6 +19,7 @@ package org.apache.shindig.gadgets.oauth
 
 import com.google.common.collect.Maps;
 
+import com.google.inject.Provider;
 import com.google.inject.Singleton;
 
 import net.oauth.OAuth;
@@ -27,6 +28,7 @@ import net.oauth.OAuthServiceProvider;
 import net.oauth.signature.RSA_SHA1;
 
 import org.apache.shindig.auth.SecurityToken;
+import org.apache.shindig.common.servlet.Authority;
 import org.apache.shindig.gadgets.GadgetException;
 import org.apache.shindig.gadgets.oauth.BasicOAuthStoreConsumerKeyAndSecret.KeyType;
 import org.json.JSONException;
@@ -86,6 +88,8 @@ public class BasicOAuthStore implements 
 
   /** Number of times we removed an access token */
   private int accessTokenRemoveCount = 0;
+  
+  private Provider<Authority> hostProvider;
 
   public BasicOAuthStore() {
     consumerInfos = Maps.newHashMap();
@@ -160,6 +164,10 @@ public class BasicOAuthStore implements 
       BasicOAuthStoreConsumerIndex providerKey, BasicOAuthStoreConsumerKeyAndSecret keyAndSecret) {
     consumerInfos.put(providerKey, keyAndSecret);
   }
+  
+  public void setHostProvider( Provider<Authority> hostProvider) {
+    this.hostProvider = hostProvider;
+  }
 
   public ConsumerInfo getConsumerKeyAndSecret(
       SecurityToken securityToken, String serviceName, OAuthServiceProvider provider)
@@ -189,6 +197,11 @@ public class BasicOAuthStore implements 
       consumer.setProperty(OAuth.OAUTH_SIGNATURE_METHOD, OAuth.HMAC_SHA1);
     }
     String callback = (cks.getCallbackUrl() != null ? cks.getCallbackUrl() : defaultCallbackUrl);
+    
+    if (hostProvider != null) {
+      callback = callback.replace("%authority%", hostProvider.get().getAuthority());
+    }
+ 
     return new ConsumerInfo(consumer, cks.getKeyName(), callback);
   }
 

Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthModule.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthModule.java?rev=1154289&r1=1154288&r2=1154289&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthModule.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthModule.java Fri Aug  5 16:16:22 2011
@@ -21,6 +21,7 @@ import org.apache.shindig.common.crypto.
 import org.apache.shindig.common.crypto.BlobCrypter;
 import org.apache.shindig.common.crypto.Crypto;
 import org.apache.shindig.common.logging.i18n.MessageKeys;
+import org.apache.shindig.common.servlet.Authority;
 import org.apache.shindig.common.util.ResourceLoader;
 import org.apache.shindig.gadgets.http.HttpFetcher;
 import org.apache.shindig.gadgets.oauth.BasicOAuthStoreConsumerKeyAndSecret.KeyType;
@@ -112,16 +113,18 @@ public class OAuthModule extends Abstrac
   @Singleton
   public static class OAuthStoreProvider implements Provider<OAuthStore> {
 
-    private final BasicOAuthStore store;
+    private final BasicOAuthStore store; 
 
     @Inject
     public OAuthStoreProvider(
         @Named(OAUTH_SIGNING_KEY_FILE) String signingKeyFile,
         @Named(OAUTH_SIGNING_KEY_NAME) String signingKeyName,
-        @Named(OAUTH_CALLBACK_URL) String defaultCallbackUrl) {
+        @Named(OAUTH_CALLBACK_URL) String defaultCallbackUrl,
+        Provider<Authority> hostProvider) {
       store = new BasicOAuthStore();
       loadDefaultKey(signingKeyFile, signingKeyName);
       store.setDefaultCallbackUrl(defaultCallbackUrl);
+      store.setHostProvider(hostProvider);
       loadConsumers();
     }
 

Modified: shindig/trunk/java/server/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/shindig/trunk/java/server/src/main/webapp/WEB-INF/web.xml?rev=1154289&r1=1154288&r2=1154289&view=diff
==============================================================================
--- shindig/trunk/java/server/src/main/webapp/WEB-INF/web.xml (original)
+++ shindig/trunk/java/server/src/main/webapp/WEB-INF/web.xml Fri Aug  5 16:16:22 2011
@@ -74,6 +74,7 @@
     <url-pattern>/gadgets/js/*</url-pattern>
     <url-pattern>/gadgets/proxy/*</url-pattern>
     <url-pattern>/gadgets/concat</url-pattern>
+    <url-pattern>/gadgets/makeRequest</url-pattern>
     <url-pattern>/rpc/*</url-pattern>
     <url-pattern>/rest/*</url-pattern>
   </filter-mapping>