Author: lindner
Date: Thu Sep 8 07:55:08 2011
New Revision: 1166553
URL: http://svn.apache.org/viewvc?rev=1166553&view=rev
Log:
SHINDIG-1616 | Patch from Igor Belakovskiy | Expose oauth data in the metadata
sent to the container
Modified:
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerApi.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerService.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/OAuthService.java
Modified:
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerApi.java
URL:
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerApi.java?rev=1166553&r1=1166552&r2=1166553&view=diff
==============================================================================
---
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerApi.java
(original)
+++
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerApi.java
Thu Sep 8 07:55:08 2011
@@ -21,6 +21,9 @@ package org.apache.shindig.gadgets.servl
import com.google.common.collect.Multimap;
import org.apache.shindig.common.uri.Uri;
+import org.apache.shindig.gadgets.spec.OAuthService.EndPoint;
+import org.apache.shindig.gadgets.spec.OAuthService.Location;
+import org.apache.shindig.gadgets.spec.OAuthService.Method;
import org.apache.shindig.protocol.conversion.BeanFilter.Unfiltered;
// Keep imports clean, so it is clear what is used by API
@@ -158,6 +161,7 @@ public class GadgetsHandlerApi {
public List<String> getCategories();
public Map<String, Feature> getFeatures();
public Map<String, LinkSpec> getLinks();
+ public OAuthSpec getOAuthSpec();
// TODO: Provide better interface for locale if needed
// public Map<Locale, LocaleSpec> getLocales();
}
@@ -173,6 +177,23 @@ public class GadgetsHandlerApi {
public Uri getHref();
}
+ public interface OAuthSpec {
+ public Map<String, OAuthService> getServices();
+ }
+
+ public interface OAuthService {
+ public EndPoint getRequestUrl();
+ public EndPoint getAccessUrl();
+ public Uri getAuthorizationUrl();
+ public String getName();
+ }
+
+ public interface EndPoint {
+ public Uri getUrl();
+ public Method getMethod();
+ public Location getLocation();
+ }
+
public interface TokenRequest extends BaseRequest {
public AuthContext getAuthContext();
// TODO: Consider support container controlled token duration
@@ -220,6 +241,22 @@ public class GadgetsHandlerApi {
FATAL_ERROR
}
+ public enum Method {
+ GET,
+ POST
+ }
+
+ public enum Location {
+ HEADER("auth-header"),
+ URL("uri-query"),
+ BODY("post-body");
+
+ private String locationString;
+ private Location(String locationString) {
+ this.locationString = locationString;
+ }
+
+ }
public interface ProxyRequest extends BaseRequest {
// The BaseRequest.url store the resource to proxy
public String getGadget();
Modified:
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerService.java
URL:
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerService.java?rev=1166553&r1=1166552&r2=1166553&view=diff
==============================================================================
---
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerService.java
(original)
+++
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerService.java
Thu Sep 8 07:55:08 2011
@@ -58,6 +58,8 @@ import org.apache.shindig.gadgets.spec.F
import org.apache.shindig.gadgets.spec.GadgetSpec;
import org.apache.shindig.gadgets.spec.LinkSpec;
import org.apache.shindig.gadgets.spec.ModulePrefs;
+import org.apache.shindig.gadgets.spec.OAuthService;
+import org.apache.shindig.gadgets.spec.OAuthSpec;
import org.apache.shindig.gadgets.spec.UserPref;
import org.apache.shindig.gadgets.spec.View;
import org.apache.shindig.gadgets.spec.UserPref.EnumValuePair;
@@ -98,10 +100,15 @@ public class GadgetsHandlerService {
.put(ModulePrefs.class, GadgetsHandlerApi.ModulePrefs.class)
.put(Feature.class, GadgetsHandlerApi.Feature.class)
.put(LinkSpec.class, GadgetsHandlerApi.LinkSpec.class)
+ .put(OAuthSpec.class, GadgetsHandlerApi.OAuthSpec.class)
+ .put(OAuthService.class, GadgetsHandlerApi.OAuthService.class)
+ .put(OAuthService.EndPoint.class, GadgetsHandlerApi.EndPoint.class)
// Enums
.put(View.ContentType.class, GadgetsHandlerApi.ViewContentType.class)
.put(UserPref.DataType.class,
GadgetsHandlerApi.UserPrefDataType.class)
.put(GadgetsHandlerApi.RenderingContext.class,
RenderingContext.class)
+ .put(OAuthService.Method.class, GadgetsHandlerApi.Method.class)
+ .put(OAuthService.Location.class, GadgetsHandlerApi.Location.class)
.build();
// Provide mapping for internal enums to api enums
@@ -114,6 +121,10 @@ public class GadgetsHandlerService {
// UserPref.DataType mapping
.putAll(BeanDelegator.createDefaultEnumMap(UserPref.DataType.class,
GadgetsHandlerApi.UserPrefDataType.class))
+ .putAll(BeanDelegator.createDefaultEnumMap(OAuthService.Method.class,
+ GadgetsHandlerApi.Method.class))
+
.putAll(BeanDelegator.createDefaultEnumMap(OAuthService.Location.class,
+ GadgetsHandlerApi.Location.class))
.putAll(BeanDelegator.createDefaultEnumMap(GadgetsHandlerApi.RenderingContext.class,
RenderingContext.class))
.build();
Modified:
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/OAuthService.java
URL:
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/OAuthService.java?rev=1166553&r1=1166552&r2=1166553&view=diff
==============================================================================
---
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/OAuthService.java
(original)
+++
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/OAuthService.java
Thu Sep 8 07:55:08 2011
@@ -191,7 +191,19 @@ public class OAuthService {
*/
public static class EndPoint {
public final Uri url;
- public final Method method;
+ public Uri getUrl() {
+ return url;
+ }
+
+ public Method getMethod() {
+ return method;
+ }
+
+ public Location getLocation() {
+ return location;
+ }
+
+ public final Method method;
public final Location location;
public EndPoint(Uri url, Method method, Location location) {