Author: lindner
Date: Tue May 11 19:57:36 2010
New Revision: 943254

URL: http://svn.apache.org/viewvc?rev=943254&view=rev
Log:
Add expiresTime and isExpired to security token

Added:
    
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/AbstractSecurityToken.java
Modified:
    shindig/trunk/UPGRADING
    
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/AnonymousSecurityToken.java
    
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/BasicSecurityToken.java
    
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/BasicSecurityTokenDecoder.java
    
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/BlobCrypterSecurityToken.java
    
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/BlobCrypterSecurityTokenDecoder.java
    
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/ForwardingSecurityToken.java
    
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/SecurityToken.java
    
shindig/trunk/java/common/src/test/java/org/apache/shindig/common/testing/FakeGadgetToken.java
    
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/AbstractHttpCacheTest.java
    
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/GadgetOAuthCallbackGeneratorTest.java
    
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/OAuthRequestTest.java
    
shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndTest.java
    
shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/oauth/OAuthAuthenticationHandler.java
    
shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/oauth/OAuthSecurityToken.java
    
shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/sample/oauth/SampleOAuthDataStore.java

Modified: shindig/trunk/UPGRADING
URL: 
http://svn.apache.org/viewvc/shindig/trunk/UPGRADING?rev=943254&r1=943253&r2=943254&view=diff
==============================================================================
--- shindig/trunk/UPGRADING (original)
+++ shindig/trunk/UPGRADING Tue May 11 19:57:36 2010
@@ -17,6 +17,11 @@ An array of valid origin domains for the
 Changed signature on getMap() and getList() to use Java
 generics.
 
+* SecurityToken
+
+New methods: getExpiresAt() and isExpired() are now required.  A new 
AbstractSecurityToken
+base class is available.
+
 * SecurityTokenDecoder 
 
 The interface and implementation are replaced

Added: 
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/AbstractSecurityToken.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/AbstractSecurityToken.java?rev=943254&view=auto
==============================================================================
--- 
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/AbstractSecurityToken.java
 (added)
+++ 
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/AbstractSecurityToken.java
 Tue May 11 19:57:36 2010
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.shindig.auth;
+
+/**
+ * A base class for SecurityToken Implementations.  Currently provides an 
isExpired() method
+ * 
+ */
+public abstract class AbstractSecurityToken implements SecurityToken {
+
+  public boolean isExpired() {
+    Long expiresAt = getExpiresAt();
+    return (expiresAt == null) ? false : (System.currentTimeMillis() 
>expiresAt);
+  }
+
+  public String getActiveUrl() {
+    throw new UnsupportedOperationException("No active URL available");
+  }
+}

Modified: 
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/AnonymousSecurityToken.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/AnonymousSecurityToken.java?rev=943254&r1=943253&r2=943254&view=diff
==============================================================================
--- 
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/AnonymousSecurityToken.java
 (original)
+++ 
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/AnonymousSecurityToken.java
 Tue May 11 19:57:36 2010
@@ -18,44 +18,52 @@
  */
 package org.apache.shindig.auth;
 
+import org.apache.shindig.config.ContainerConfig;
+
 /**
  * A special class of Token representing the anonymous viewer/owner
  *
- * All methods except for isAnonymous will throw IllegalArgumentExceptions
  */
-public class AnonymousSecurityToken implements SecurityToken {
-
-  private String container;
+public class AnonymousSecurityToken extends AbstractSecurityToken implements 
SecurityToken {
+  private final String container;
+  private final long moduleId;
+  private final String appUrl;
+  private final Long expiresAt;
 
   public AnonymousSecurityToken() {
-    this.container = "default";
+    this(ContainerConfig.DEFAULT_CONTAINER);
   }
+  
   public AnonymousSecurityToken(String container) {
+    this(container, 0L, "", null);
+  }
+
+  public AnonymousSecurityToken(String container, long moduleId, String 
appUrl, Long expiresAt) {
     this.container = container;
+    this.moduleId = moduleId;
+    this.appUrl = appUrl;
+    this.expiresAt = expiresAt;
   }
 
   public boolean isAnonymous() {
     return true;
   }
 
-  public String toSerialForm() {
-    return "";
-  }
-
   public String getOwnerId() {
-    return "";
+    return "-1";
   }
 
   public String getViewerId() {
-    return "";
+    return "-1";
   }
 
   public String getAppId() {
-    return "";
+    return appUrl;
   }
 
   public String getDomain() {
     return "";
+    return appUrl;
   }
 
   public String getContainer() {
@@ -63,11 +71,15 @@ public class AnonymousSecurityToken impl
   }
 
   public String getAppUrl() {
-    return "";
+    return appUrl;
   }
 
   public long getModuleId() {
-    return 0L;
+    return moduleId;
+  }
+
+  public Long getExpiresAt() {
+    return expiresAt;
   }
 
   public String getUpdatedToken() {
@@ -81,8 +93,4 @@ public class AnonymousSecurityToken impl
   public String getTrustedJson() {
     return "";
   }
-
-  public String getActiveUrl() {
-    throw new UnsupportedOperationException("No active URL available");
-  }
-}
\ No newline at end of file
+}

Modified: 
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/BasicSecurityToken.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/BasicSecurityToken.java?rev=943254&r1=943253&r2=943254&view=diff
==============================================================================
--- 
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/BasicSecurityToken.java
 (original)
+++ 
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/BasicSecurityToken.java
 Tue May 11 19:57:36 2010
@@ -29,7 +29,7 @@ import java.util.Map;
 /**
  * Primitive token implementation that uses strings as tokens.
  */
-public class BasicSecurityToken implements SecurityToken {
+public class BasicSecurityToken extends AbstractSecurityToken implements 
SecurityToken {
   /** serialized form of the token */
   private final String token;
 
@@ -51,10 +51,7 @@ public class BasicSecurityToken implemen
   private static final String APPURL_KEY = "u";
   private static final String MODULE_KEY = "m";
   private static final String CONTAINER_KEY = "c";
-
-  public String toSerialForm() {
-    return token;
-  }
+  private static final String EXPIRES_KEY = "x";
 
   /**
    * Generates a token from an input string
@@ -70,7 +67,7 @@ public class BasicSecurityToken implemen
   }
 
   public BasicSecurityToken(String owner, String viewer, String app,
-      String domain, String appUrl, String moduleId, String container, String 
activeUrl)
+      String domain, String appUrl, String moduleId, String container, String 
activeUrl, Long expiresAt)
       throws BlobCrypterException {
     tokenData = Maps.newHashMapWithExpectedSize(7);
     putNullSafe(OWNER_KEY, owner);
@@ -80,6 +77,9 @@ public class BasicSecurityToken implemen
     putNullSafe(APPURL_KEY, appUrl);
     putNullSafe(MODULE_KEY, moduleId);
     putNullSafe(CONTAINER_KEY, container);
+    if (expiresAt != null)
+      putNullSafe(EXPIRES_KEY, expiresAt.toString());
+
     token = crypter.wrap(tokenData);
     this.activeUrl = activeUrl;
   }
@@ -139,6 +139,10 @@ public class BasicSecurityToken implemen
     return Long.parseLong(tokenData.get(MODULE_KEY));
   }
 
+  public Long getExpiresAt() {
+    return Long.parseLong(tokenData.get(EXPIRES_KEY));
+  }
+
   /**
    * {...@inheritdoc}
    */

Modified: 
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/BasicSecurityTokenDecoder.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/BasicSecurityTokenDecoder.java?rev=943254&r1=943253&r2=943254&view=diff
==============================================================================
--- 
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/BasicSecurityTokenDecoder.java
 (original)
+++ 
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/BasicSecurityTokenDecoder.java
 Tue May 11 19:57:36 2010
@@ -88,7 +88,8 @@ public class BasicSecurityTokenDecoder i
           Utf8UrlCoder.decode(tokens[APP_URL_INDEX]),
           Utf8UrlCoder.decode(tokens[MODULE_ID_INDEX]),
           Utf8UrlCoder.decode(tokens[CONTAINER_ID_INDEX]),
-          parameters.get(SecurityTokenDecoder.ACTIVE_URL_NAME));
+          parameters.get(SecurityTokenDecoder.ACTIVE_URL_NAME),
+          null);
     } catch (BlobCrypterException e) {
       throw new SecurityTokenException(e);
     } catch (ArrayIndexOutOfBoundsException e) {

Modified: 
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/BlobCrypterSecurityToken.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/BlobCrypterSecurityToken.java?rev=943254&r1=943253&r2=943254&view=diff
==============================================================================
--- 
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/BlobCrypterSecurityToken.java
 (original)
+++ 
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/BlobCrypterSecurityToken.java
 Tue May 11 19:57:36 2010
@@ -32,7 +32,7 @@ import java.util.Map;
  *
  * Container is included so different containers can use different security 
tokens if necessary.
  */
-public class BlobCrypterSecurityToken implements SecurityToken {
+public class BlobCrypterSecurityToken extends AbstractSecurityToken implements 
SecurityToken {
 
   protected static final int MAX_TOKEN_LIFETIME_SECS = 3600;
 
@@ -41,6 +41,7 @@ public class BlobCrypterSecurityToken im
   protected static final String GADGET_KEY = "g";
   protected static final String GADGET_INSTANCE_KEY = "i";
   protected static final String TRUSTED_JSON_KEY = "j";
+  protected static final String EXPIRES_KEY = "x";
 
   protected final BlobCrypter crypter;
   protected final String container;
@@ -50,6 +51,8 @@ public class BlobCrypterSecurityToken im
   protected String viewerId;
   protected String appUrl;
   protected long moduleId;
+  protected Long expiresAt;
+
   protected String trustedJson;
   protected String activeUrl;
 
@@ -95,6 +98,10 @@ public class BlobCrypterSecurityToken im
     if (moduleId != null) {
       token.setModuleId(Long.parseLong(moduleId));
     }
+    String expiresAt = values.get(EXPIRES_KEY);
+    if (expiresAt != null) {
+      token.setExpiresAt(Long.parseLong(expiresAt));
+    }
     token.setTrustedJson(values.get(TRUSTED_JSON_KEY));
   }
 
@@ -121,6 +128,9 @@ public class BlobCrypterSecurityToken im
     if (moduleId != 0) {
       values.put(GADGET_INSTANCE_KEY, Long.toString(moduleId));
     }
+    if (expiresAt != null) {
+      values.put(EXPIRES_KEY, Long.toString(expiresAt));
+    }
     if (trustedJson != null) {
       values.put(TRUSTED_JSON_KEY, trustedJson);
     }
@@ -157,6 +167,14 @@ public class BlobCrypterSecurityToken im
     this.moduleId = moduleId;
   }
 
+  public Long getExpiresAt() {
+    return expiresAt;
+  }
+
+  public void setExpiresAt(Long expiresAt) {
+    this.expiresAt = expiresAt;
+  }
+
   public String getOwnerId() {
     return ownerId;
   }

Modified: 
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/BlobCrypterSecurityTokenDecoder.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/BlobCrypterSecurityTokenDecoder.java?rev=943254&r1=943253&r2=943254&view=diff
==============================================================================
--- 
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/BlobCrypterSecurityTokenDecoder.java
 (original)
+++ 
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/BlobCrypterSecurityTokenDecoder.java
 Tue May 11 19:57:36 2010
@@ -95,7 +95,7 @@ public class BlobCrypterSecurityTokenDec
   public SecurityToken createToken(Map<String, String> tokenParameters)
       throws SecurityTokenException {
     String token = 
tokenParameters.get(SecurityTokenDecoder.SECURITY_TOKEN_NAME);
-    if (token == null || token.trim().length() == 0) {
+    if (StringUtils.isBlank(token)) {
       // No token is present, assume anonymous access
       return new AnonymousSecurityToken();
     }

Modified: 
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/ForwardingSecurityToken.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/ForwardingSecurityToken.java?rev=943254&r1=943253&r2=943254&view=diff
==============================================================================
--- 
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/ForwardingSecurityToken.java
 (original)
+++ 
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/ForwardingSecurityToken.java
 Tue May 11 19:57:36 2010
@@ -56,6 +56,14 @@ public abstract class ForwardingSecurity
     return delegate.getModuleId();
   }
 
+  public Long getExpiresAt() {
+    return delegate.getExpiresAt();
+  }
+
+  public boolean isExpired() {
+    return delegate.isExpired();
+  }
+
   public String getUpdatedToken() {
     return delegate.getUpdatedToken();
   }

Modified: 
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/SecurityToken.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/SecurityToken.java?rev=943254&r1=943253&r2=943254&view=diff
==============================================================================
--- 
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/SecurityToken.java
 (original)
+++ 
shindig/trunk/java/common/src/main/java/org/apache/shindig/auth/SecurityToken.java
 Tue May 11 19:57:36 2010
@@ -60,6 +60,16 @@ public interface SecurityToken {
   long getModuleId();
 
   /**
+   * @return the timestamp that this token expires or null if unknown or 
indeterminate
+   */
+  Long getExpiresAt();
+
+  /**
+   * @return true if the token is no longer valid
+   */
+  boolean isExpired();
+
+  /**
    * @return an updated version of the token to return to the gadget, or null
    * if there is no need to update the token.
    */

Modified: 
shindig/trunk/java/common/src/test/java/org/apache/shindig/common/testing/FakeGadgetToken.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/common/src/test/java/org/apache/shindig/common/testing/FakeGadgetToken.java?rev=943254&r1=943253&r2=943254&view=diff
==============================================================================
--- 
shindig/trunk/java/common/src/test/java/org/apache/shindig/common/testing/FakeGadgetToken.java
 (original)
+++ 
shindig/trunk/java/common/src/test/java/org/apache/shindig/common/testing/FakeGadgetToken.java
 Tue May 11 19:57:36 2010
@@ -18,6 +18,7 @@
  */
 package org.apache.shindig.common.testing;
 
+import org.apache.shindig.auth.AbstractSecurityToken;
 import org.apache.shindig.auth.AuthenticationMode;
 import org.apache.shindig.auth.SecurityToken;
 import org.apache.shindig.auth.SecurityTokenDecoder;
@@ -30,7 +31,7 @@ import java.util.Map;
 /**
  * A fake SecurityToken implementation to help testing.
  */
-public class FakeGadgetToken implements SecurityToken {
+public class FakeGadgetToken extends AbstractSecurityToken implements 
SecurityToken {
 
   private String updatedToken = null;
   private String trustedJson = null;
@@ -44,6 +45,7 @@ public class FakeGadgetToken implements 
   private String activeUrl = null;
   private String authMode = 
AuthenticationMode.SECURITY_TOKEN_URL_PARAMETER.name();
   private int moduleId = 0;
+  private Long expiresAt = null;
 
   public FakeGadgetToken setUpdatedToken(String updatedToken) {
     this.updatedToken = updatedToken;
@@ -89,7 +91,12 @@ public class FakeGadgetToken implements 
     this.moduleId = moduleId;
     return this;
   }
-  
+
+  public FakeGadgetToken setExpiresAt(Long expiresAt) {
+    this.expiresAt = expiresAt;
+    return this;
+  }
+
   public FakeGadgetToken setActiveUrl(String activeUrl) {
     this.activeUrl = activeUrl;
     return this;
@@ -119,10 +126,6 @@ public class FakeGadgetToken implements 
     return container;
   }
 
-  public String toSerialForm() {
-    return "";
-  }
-
   public String getAppUrl() {
     return appUrl;
   }
@@ -131,6 +134,10 @@ public class FakeGadgetToken implements 
     return moduleId;
   }
 
+  public Long getExpiresAt() {
+    return expiresAt;
+  }
+
   public String getUpdatedToken() {
     return updatedToken;
   }

Modified: 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/AbstractHttpCacheTest.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/AbstractHttpCacheTest.java?rev=943254&r1=943253&r2=943254&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/AbstractHttpCacheTest.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/AbstractHttpCacheTest.java
 Tue May 11 19:57:36 2010
@@ -71,7 +71,7 @@ public class AbstractHttpCacheTest {
 
     String ownerId = "owner eye dee";
     SecurityToken securityToken = new BasicSecurityToken(ownerId, "", "", "",
-        APP_URI.toString(), MODULE_ID, CONTAINER_NAME, null);
+        APP_URI.toString(), MODULE_ID, CONTAINER_NAME, null, null);
 
     HttpRequest request = new HttpRequest(DEFAULT_URI)
         .setAuthType(AuthType.SIGNED)
@@ -112,7 +112,7 @@ public class AbstractHttpCacheTest {
 
     String viewerId = "viewer eye dee";
     SecurityToken securityToken = new BasicSecurityToken(
-        "", viewerId, "", "", APP_URI.toString(), MODULE_ID, CONTAINER_NAME, 
null);
+        "", viewerId, "", "", APP_URI.toString(), MODULE_ID, CONTAINER_NAME, 
null, null);
 
     HttpRequest request = new HttpRequest(DEFAULT_URI)
         .setAuthType(AuthType.SIGNED)
@@ -142,7 +142,7 @@ public class AbstractHttpCacheTest {
 
     String userId = "user id";
     SecurityToken securityToken = new BasicSecurityToken(
-        userId, userId, "", "", APP_URI.toString(), MODULE_ID, CONTAINER_NAME, 
null);
+        userId, userId, "", "", APP_URI.toString(), MODULE_ID, CONTAINER_NAME, 
null, null);
 
     HttpRequest request = new HttpRequest(DEFAULT_URI)
         .setAuthType(AuthType.SIGNED)

Modified: 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/GadgetOAuthCallbackGeneratorTest.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/GadgetOAuthCallbackGeneratorTest.java?rev=943254&r1=943253&r2=943254&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/GadgetOAuthCallbackGeneratorTest.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/GadgetOAuthCallbackGeneratorTest.java
 Tue May 11 19:57:36 2010
@@ -67,7 +67,7 @@ public class GadgetOAuthCallbackGenerato
     urlGenerator = control.createMock(UrlGenerator.class);
     stateCrypter = new BasicBlobCrypter("1111111111111111111".getBytes());
     securityToken = new BasicSecurityToken("viewer", "viewer", "app", 
"container.com",
-        "gadget", "0", "default", MAKE_REQUEST_URL);
+        "gadget", "0", "default", MAKE_REQUEST_URL, null);
     gadget = control.createMock(Gadget.class);
     fetcherConfig = new OAuthFetcherConfig(null, null, null, null, false);
     responseParams = new OAuthResponseParams(null, null, null);

Modified: 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/OAuthRequestTest.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/OAuthRequestTest.java?rev=943254&r1=943253&r2=943254&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/OAuthRequestTest.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/OAuthRequestTest.java
 Tue May 11 19:57:36 2010
@@ -275,7 +275,7 @@ public class OAuthRequestTest {
   public static SecurityToken getSecurityToken(String owner, String viewer, 
String gadget)
       throws Exception {
     return new BasicSecurityToken(owner, viewer, "app", "container.com", 
gadget, "0", "default",
-        GADGET_MAKE_REQUEST_URL);
+        GADGET_MAKE_REQUEST_URL, null);
   }
 
   @After

Modified: 
shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndTest.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndTest.java?rev=943254&r1=943253&r2=943254&view=diff
==============================================================================
--- 
shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndTest.java
 (original)
+++ 
shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndTest.java
 Tue May 11 19:57:36 2010
@@ -443,6 +443,6 @@ public class EndToEndTest {
 
   private BasicSecurityToken createToken(String owner, String viewer)
       throws BlobCrypterException {
-    return new BasicSecurityToken(owner, viewer, "test", "domain", "appUrl", 
"1", "default", null);
+    return new BasicSecurityToken(owner, viewer, "test", "domain", "appUrl", 
"1", "default", null, null);
   }
 }

Modified: 
shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/oauth/OAuthAuthenticationHandler.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/oauth/OAuthAuthenticationHandler.java?rev=943254&r1=943253&r2=943254&view=diff
==============================================================================
--- 
shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/oauth/OAuthAuthenticationHandler.java
 (original)
+++ 
shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/oauth/OAuthAuthenticationHandler.java
 Tue May 11 19:57:36 2010
@@ -178,7 +178,7 @@ public class OAuthAuthenticationHandler 
       OAuthConsumer authConsumer) throws OAuthProblemException {
     if (entry != null) {
       return new OAuthSecurityToken(entry.userId, entry.callbackUrl, 
entry.appId,
-          entry.domain, entry.container);
+          entry.domain, entry.container, entry.expiresAt().getTime());
     } else {
       String userId = getParameter(message, REQUESTOR_ID_PARAM);
       return 
store.getSecurityTokenForConsumerRequest(authConsumer.consumerKey, userId);

Modified: 
shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/oauth/OAuthSecurityToken.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/oauth/OAuthSecurityToken.java?rev=943254&r1=943253&r2=943254&view=diff
==============================================================================
--- 
shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/oauth/OAuthSecurityToken.java
 (original)
+++ 
shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/core/oauth/OAuthSecurityToken.java
 Tue May 11 19:57:36 2010
@@ -17,30 +17,33 @@
  */
 package org.apache.shindig.social.core.oauth;
 
+import org.apache.shindig.auth.AbstractSecurityToken;
 import org.apache.shindig.auth.AuthenticationMode;
 import org.apache.shindig.auth.SecurityToken;
 
-public class OAuthSecurityToken implements SecurityToken {
+public class OAuthSecurityToken extends AbstractSecurityToken implements 
SecurityToken {
   private final String userId;
   private final String appUrl;
   private final String appId;
   private final String domain;
   private final String container;
   private final String authMode;
+  private final Long expiresAt;
 
   public OAuthSecurityToken(String userId, String appUrl, String appId, String 
domain,
-      String container) {
-    this(userId, appUrl, appId, domain, container, 
AuthenticationMode.OAUTH.name());
+      String container, Long expiresAt) {
+    this(userId, appUrl, appId, domain, container, expiresAt, 
AuthenticationMode.OAUTH.name());
   }
 
   public OAuthSecurityToken(String userId, String appUrl, String appId, String 
domain,
-      String container, String authMode) {
+      String container, Long expiresAt, String authMode) {
     this.userId = userId;
     this.appUrl = appUrl;
     this.appId = appId;
     this.domain = domain;
     this.container = container;
     this.authMode = authMode;
+    this.expiresAt = null; // TODO add
   }
 
   public String getOwnerId() {
@@ -67,17 +70,16 @@ public class OAuthSecurityToken implemen
     return appUrl;
   }
 
+  public Long getExpiresAt() {
+    return expiresAt;
+  }
+
   // We don't support this concept yet. We probably don't need to as 
opensocial calls don't
   // currently depend on the app instance id.
   public long getModuleId() {
     throw new UnsupportedOperationException();
   }
 
-  // Not needed for this basic token
-  public String toSerialForm() {
-    throw new UnsupportedOperationException();
-  }
-
   public String getUpdatedToken() {
     throw new UnsupportedOperationException();
   }
@@ -89,11 +91,8 @@ public class OAuthSecurityToken implemen
   public String getTrustedJson() {
     throw new UnsupportedOperationException();
   }
+
   public boolean isAnonymous() {
     return false;
   }
-
-  public String getActiveUrl() {
-    throw new UnsupportedOperationException("No active URL available");
-  }
 }

Modified: 
shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/sample/oauth/SampleOAuthDataStore.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/sample/oauth/SampleOAuthDataStore.java?rev=943254&r1=943253&r2=943254&view=diff
==============================================================================
--- 
shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/sample/oauth/SampleOAuthDataStore.java
 (original)
+++ 
shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/sample/oauth/SampleOAuthDataStore.java
 Tue May 11 19:57:36 2010
@@ -169,7 +169,7 @@ public class SampleOAuthDataStore implem
     String domain = "samplecontainer.com";
     String container = "default";
 
-    return new OAuthSecurityToken(userId, null, consumerKey, domain, container,
+    return new OAuthSecurityToken(userId, null, consumerKey, domain, 
container, null,
         AuthenticationMode.OAUTH_CONSUMER_REQUEST.name());
     
   }


Reply via email to