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>