From 441c660af706fd3c6d0e06b36b8f25a808fcdf5f Mon Sep 17 00:00:00 2001
From: Roberto Sánchez <roberto.sanchez@curisit.net>
Date: Fri, 17 Jan 2014 17:35:50 +0000
Subject: [PATCH] #396 feature - Added security management methods for REST API

---
 securis/src/main/java/net/curisit/securis/utils/TokenHelper.java |   22 ++++++++++++++++++++--
 1 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/securis/src/main/java/net/curisit/securis/utils/TokenHelper.java b/securis/src/main/java/net/curisit/securis/utils/TokenHelper.java
index df247d0..b7d82de 100644
--- a/securis/src/main/java/net/curisit/securis/utils/TokenHelper.java
+++ b/securis/src/main/java/net/curisit/securis/utils/TokenHelper.java
@@ -78,10 +78,12 @@
 	 * @param token
 	 * @return
 	 */
-	public boolean validateToken(String token) {
+	public boolean isTokenValid(String token) {
 		try {
 			String tokenDecoded = new String(Base64.decode(token));
 			String[] parts = StringUtils.split(tokenDecoded, ' ');
+			if (parts == null || parts.length < 3)
+				return false;
 			String secret = parts[0];
 			String user = parts[1];
 			Date date = Utils.toDateFromIso(parts[2]);
@@ -101,8 +103,24 @@
 		try {
 			String tokenDecoded = new String(Base64.decode(token));
 			String[] parts = StringUtils.split(tokenDecoded, ' ');
+			if (parts == null || parts.length < 3)
+				return null;
 			String user = parts[1];
 			return user;
+		} catch (IOException e) {
+			log.error("Error decoding Base64 token", e);
+		}
+		return null;
+	}
+
+	public Date extractDateCreationFromToken(String token) {
+		try {
+			String tokenDecoded = new String(Base64.decode(token));
+			String[] parts = StringUtils.split(tokenDecoded, ' ');
+			if (parts == null || parts.length < 3)
+				return null;
+			Date date = Utils.toDateFromIso(parts[2]);
+			return date;
 		} catch (IOException e) {
 			log.error("Error decoding Base64 token", e);
 		}
@@ -114,6 +132,6 @@
 		String token = th.generateToken("pepe");
 		System.out.println("Token: " + token);
 		System.out.println("Token: " + new String(Base64.decode(token)));
-		System.out.println("Valid Token: " + th.validateToken(token));
+		System.out.println("Valid Token: " + th.isTokenValid(token));
 	}
 }

--
Gitblit v1.3.2