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/services/UserResource.java | 32 +++++++++++++++++++++++++++++++-
1 files changed, 31 insertions(+), 1 deletions(-)
diff --git a/securis/src/main/java/net/curisit/securis/services/UserResource.java b/securis/src/main/java/net/curisit/securis/services/UserResource.java
index 0b5e208..2bc90ee 100644
--- a/securis/src/main/java/net/curisit/securis/services/UserResource.java
+++ b/securis/src/main/java/net/curisit/securis/services/UserResource.java
@@ -19,6 +19,7 @@
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
@@ -206,13 +207,42 @@
log.info("user: {}, pass: {}", user, password);
log.info("is user in role: {} == {} ? ", "advance", request.isUserInRole("advance"));
- request.getSession().setAttribute("username", user);
if ("no".equals(password))
return Response.status(Status.UNAUTHORIZED).build();
String tokenAuth = tokenHelper.generateToken(user);
return Response.ok(Utils.createMap("success", true, "token", tokenAuth)).build();
}
+ /**
+ * Check if current token is valid
+ *
+ * @param user
+ * @param password
+ * @param request
+ * @return
+ */
+ @POST
+ @Path("/check")
+ @Produces(
+ { MediaType.APPLICATION_JSON })
+ public Response check(@HeaderParam(TokenHelper.TOKEN_HEADER_PÀRAM) String token, @QueryParam("token") String token2) {
+ if (token == null)
+ token = token2;
+ if (token == null)
+ return Response.status(Status.FORBIDDEN).build();
+
+ log.info("Token : " + token);
+ String user = tokenHelper.extractUserFromToken(token);
+ log.info("Token user: " + user);
+ Date date = tokenHelper.extractDateCreationFromToken(token);
+ log.info("Token date: " + date);
+ boolean valid = tokenHelper.isTokenValid(token);
+
+ log.info("Is Token valid: " + valid);
+
+ return Response.ok(Utils.createMap("valid", true, "user", user, "date", date, "token", token)).build();
+ }
+
@GET
@Path("/logout")
@Produces(
--
Gitblit v1.3.2