From bc2cedc83f6353259ea1364f98ce60bf11d7ecf4 Mon Sep 17 00:00:00 2001
From: rsanchez <rsanchez@curisit.net>
Date: Thu, 23 Oct 2014 12:06:14 +0000
Subject: [PATCH] #2021 feature - Upgtaded Jackson annotations version and added request data hash management

---
 securis/src/main/java/net/curisit/securis/db/BlockedRequest.java |   31 ++++++++++++++++++++++++-------
 1 files changed, 24 insertions(+), 7 deletions(-)

diff --git a/securis/src/main/java/net/curisit/securis/db/BlockedRequest.java b/securis/src/main/java/net/curisit/securis/db/BlockedRequest.java
index 2233432..51eac7e 100644
--- a/securis/src/main/java/net/curisit/securis/db/BlockedRequest.java
+++ b/securis/src/main/java/net/curisit/securis/db/BlockedRequest.java
@@ -5,23 +5,27 @@
 
 import javax.persistence.Column;
 import javax.persistence.Entity;
+import javax.persistence.EntityManager;
 import javax.persistence.Id;
 import javax.persistence.JoinColumn;
 import javax.persistence.ManyToOne;
 import javax.persistence.Table;
 
-import org.codehaus.jackson.annotate.JsonAutoDetect;
-import org.codehaus.jackson.annotate.JsonIgnore;
-import org.codehaus.jackson.annotate.JsonIgnoreProperties;
-import org.codehaus.jackson.annotate.JsonProperty;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
+import net.curisit.integrity.commons.Utils;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
+import com.fasterxml.jackson.annotation.JsonProperty;
 
 /**
  * Entity implementation class for Entity: pack
  * 
  */
 @JsonAutoDetect
-@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
+@JsonInclude(Include.NON_NULL)
 @Entity
 @Table(name = "blocked_request")
 @JsonIgnoreProperties(ignoreUnknown = true)
@@ -58,7 +62,7 @@
         if (!(obj instanceof BlockedRequest))
             return false;
         BlockedRequest other = (BlockedRequest) obj;
-        return hash.equals(other.hash);
+        return (hash == null && other.hash == null) || hash.equals(other.hash);
     }
 
     @Override
@@ -73,6 +77,7 @@
 
     public void setRequestData(String requestData) {
         this.requestData = requestData;
+        this.hash = generateHash(this.requestData);
     }
 
     public User getBlockedBy() {
@@ -82,4 +87,16 @@
     public void setBlockedBy(User blockedBy) {
         this.blockedBy = blockedBy;
     }
+
+    public static String generateHash(String reqData) {
+        String hash = reqData != null ? Utils.sha256(reqData) : null;
+        return hash;
+    }
+
+    public static boolean isRequestBlocked(String requestData, EntityManager em) {
+        String hash = generateHash(requestData);
+        BlockedRequest br = em.find(BlockedRequest.class, hash);
+        return br != null;
+    }
+
 }

--
Gitblit v1.3.2