You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wookie.apache.org by sc...@apache.org on 2014/03/04 14:06:18 UTC

svn commit: r1574082 - /wookie/trunk/wookie-server/src/main/java/org/apache/wookie/auth/AuthToken.java

Author: scottbw
Date: Tue Mar  4 13:06:17 2014
New Revision: 1574082

URL: http://svn.apache.org/r1574082
Log:
Added a nonce to AuthToken; this is needed as when creating a new instance, the token must never be the same even when the "content" of the token is identical.

Modified:
    wookie/trunk/wookie-server/src/main/java/org/apache/wookie/auth/AuthToken.java

Modified: wookie/trunk/wookie-server/src/main/java/org/apache/wookie/auth/AuthToken.java
URL: http://svn.apache.org/viewvc/wookie/trunk/wookie-server/src/main/java/org/apache/wookie/auth/AuthToken.java?rev=1574082&r1=1574081&r2=1574082&view=diff
==============================================================================
--- wookie/trunk/wookie-server/src/main/java/org/apache/wookie/auth/AuthToken.java (original)
+++ wookie/trunk/wookie-server/src/main/java/org/apache/wookie/auth/AuthToken.java Tue Mar  4 13:06:17 2014
@@ -18,6 +18,7 @@
 package org.apache.wookie.auth;
 
 import org.apache.wookie.server.security.ApiKey;
+import org.apache.wookie.w3c.util.RandomGUID;
 
 /**
  * An AuthToken used to pass contextual information about an instance of a
@@ -34,6 +35,7 @@ public class AuthToken {
 	private String contextId;
 	private String lang;
 	private boolean singleUse = false;
+	private String nonce;
 
 	public static final int DEFAULT_MAX_TOKEN_TTL = 3600; // 1 hour
 	private static final long CLOCK_SKEW_ALLOWANCE = 180; // allow three minutes for clock skew
@@ -43,7 +45,7 @@ public class AuthToken {
 	/**
 	 * Default constructor
 	 */
-	protected AuthToken(){
+	private AuthToken(){
 	}
 	
 	/**
@@ -56,6 +58,7 @@ public class AuthToken {
 		AuthToken authToken = new AuthToken();
 		authToken.setExpires(300); // 5 minutes
 		authToken.setSingleUse(true);
+		authToken.nonce = new RandomGUID(true).toString();
 		authToken.setApiKey(oldToken.getApiKeyInstance());
 		authToken.setContextId(oldToken.getContextId());
 		authToken.setWidgetId(oldToken.getWidgetId());
@@ -70,6 +73,7 @@ public class AuthToken {
 	 */
 	public static AuthToken SHORT_LIFESPAN_TOKEN(){
 		AuthToken authToken = new AuthToken();
+		authToken.nonce = new RandomGUID(true).toString();
 		authToken.setExpires(300); // 5 minutes
 		return authToken;
 	}
@@ -81,6 +85,7 @@ public class AuthToken {
 	 */
 	public static AuthToken SHORT_LIFESPAN_TOKEN(AuthToken oldToken){
 		AuthToken authToken = new AuthToken();
+		authToken.nonce = new RandomGUID(true).toString();
 		authToken.setExpires(300); // 5 minutes
 		authToken.setApiKey(oldToken.getApiKeyInstance());
 		authToken.setContextId(oldToken.getContextId());
@@ -96,6 +101,7 @@ public class AuthToken {
 	 */
 	public static AuthToken STANDARD_LIFESPAN_TOKEN(){
 		AuthToken authToken = new AuthToken();
+		authToken.nonce = new RandomGUID(true).toString();
 		authToken.setExpires();
 		return authToken;
 	}
@@ -107,6 +113,7 @@ public class AuthToken {
 	 */
 	public static AuthToken STANDARD_LIFESPAN_TOKEN(AuthToken oldToken){
 		AuthToken authToken = new AuthToken();
+		authToken.nonce = new RandomGUID(true).toString();
 		authToken.setExpires();
 		authToken.setApiKey(oldToken.getApiKeyInstance());
 		authToken.setContextId(oldToken.getContextId());
@@ -279,6 +286,20 @@ public class AuthToken {
 		this.singleUse = singleUse;
 	}
 
+	/**
+	 * @return the nonce
+	 */
+	public String getNonce() {
+		return nonce;
+	}
+
+	/**
+	 * @param nonce the nonce to set
+	 */
+	public void setNonce(String nonce) {
+		this.nonce = nonce;
+	}
+
 	/* (non-Javadoc)
 	 * @see java.lang.Object#toString()
 	 */