From da889d489da5d7fa8c71d9f21f24b1dc2e29d8e1 Mon Sep 17 00:00:00 2001
From: rsanchez <rsanchez@curisit.net>
Date: Wed, 28 Jan 2015 08:53:21 +0000
Subject: [PATCH] #0 refactoring - Removing Google Guice by CDI standard

---
 securis/src/main/java/net/curisit/securis/services/UserResource.java |   30 ++++++++++++++++--------------
 1 files changed, 16 insertions(+), 14 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 3169039..2bbc7d2 100644
--- a/securis/src/main/java/net/curisit/securis/services/UserResource.java
+++ b/securis/src/main/java/net/curisit/securis/services/UserResource.java
@@ -6,12 +6,13 @@
 import java.util.Set;
 
 import javax.annotation.security.RolesAllowed;
+import javax.enterprise.context.RequestScoped;
 import javax.inject.Inject;
-import javax.inject.Provider;
 import javax.persistence.EntityManager;
 import javax.persistence.PersistenceException;
 import javax.persistence.TypedQuery;
 import javax.servlet.http.HttpServletRequest;
+import javax.transaction.Transactional;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.DELETE;
 import javax.ws.rs.FormParam;
@@ -35,12 +36,12 @@
 import net.curisit.securis.db.User;
 import net.curisit.securis.security.BasicSecurityContext;
 import net.curisit.securis.security.Securable;
+import net.curisit.securis.services.exception.SeCurisServiceException;
+import net.curisit.securis.services.exception.SeCurisServiceException.ErrorCodes;
 import net.curisit.securis.utils.TokenHelper;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
-
-import com.google.inject.persist.Transactional;
 
 /**
  * User resource
@@ -48,13 +49,14 @@
  * @author roberto <roberto.sanchez@curisit.net>
  */
 @Path("/user")
+@RequestScoped
 public class UserResource {
 
     @Inject
     TokenHelper tokenHelper;
 
     @Inject
-    Provider<EntityManager> emProvider;
+    EntityManager em;
 
     private static final Logger LOG = LogManager.getLogger(UserResource.class);
 
@@ -75,7 +77,7 @@
     public Response index() {
         LOG.info("Getting users list ");
 
-        EntityManager em = emProvider.get();
+        // EntityManager em = emProvider.get();
         em.clear();
         TypedQuery<User> q = em.createNamedQuery("list-users", User.class);
 
@@ -102,7 +104,7 @@
             return Response.status(Status.NOT_FOUND).build();
         }
 
-        EntityManager em = emProvider.get();
+        // EntityManager em = emProvider.get();
         em.clear();
         User lt = em.find(User.class, uid);
         if (lt == null) {
@@ -123,7 +125,7 @@
     @RolesAllowed(BasicSecurityContext.ROL_ADMIN)
     public Response create(User user, @HeaderParam(TokenHelper.TOKEN_HEADER_PÀRAM) String token) {
         LOG.info("Creating new user");
-        EntityManager em = emProvider.get();
+        // EntityManager em = emProvider.get();
         User currentUser = em.find(User.class, user.getUsername());
         if (currentUser != null) {
             LOG.info("User with id {} was found in DB, we'll try to modify it", user.getUsername());
@@ -179,7 +181,7 @@
     @RolesAllowed(BasicSecurityContext.ROL_ADMIN)
     public Response modify(User user, @PathParam("uid") String uid, @HeaderParam(TokenHelper.TOKEN_HEADER_PÀRAM) String token) {
         LOG.info("Modifying user with id: {}", uid);
-        EntityManager em = emProvider.get();
+        // EntityManager em = emProvider.get();
         User currentUser = em.find(User.class, uid);
         if (currentUser == null) {
             LOG.info("User with id {} not found in DB, we'll try to create it", uid);
@@ -222,7 +224,7 @@
     @RolesAllowed(BasicSecurityContext.ROL_ADMIN)
     public Response delete(@PathParam("uid") String uid, @Context HttpServletRequest request) {
         LOG.info("Deleting app with id: {}", uid);
-        EntityManager em = emProvider.get();
+        // EntityManager em = emProvider.get();
         User app = em.find(User.class, uid);
         if (app == null) {
             LOG.error("User with id {} can not be deleted, It was not found in DB", uid);
@@ -238,23 +240,23 @@
     @Produces({
         MediaType.APPLICATION_JSON
     })
-    public Response login(@FormParam("username") String username, @FormParam("password") String password, @Context HttpServletRequest request) {
+    public Response login(@FormParam("username") String username, @FormParam("password") String password, @Context HttpServletRequest request)
+            throws SeCurisServiceException {
         LOG.info("index session: " + request.getSession());
         LOG.info("user: {}, pass: {}", username, password);
         LOG.info("is user in role: {} == {} ? ", "advance", request.isUserInRole("advance"));
         LOG.info("is user in role: {} == {} ? ", "admin", request.isUserInRole("admin"));
 
-        EntityManager em = emProvider.get();
+        // EntityManager em = emProvider.get();
         User user = em.find(User.class, username);
         if (user == null) {
             LOG.error("Inknown username {} used in login service", username);
-            return Response.status(Status.UNAUTHORIZED).build();
+            throw new SeCurisServiceException(ErrorCodes.UNAUTHORIZED_ACCESS, "Wrong credentials");
         }
         String securedPassword = Utils.sha256(password);
 
         if (securedPassword == null || !securedPassword.equals(user.getPassword())) {
-            // TODO: Code to test exception handling
-            return Response.status(Status.UNAUTHORIZED).build();
+            throw new SeCurisServiceException(ErrorCodes.UNAUTHORIZED_ACCESS, "Wrong credentials");
         }
         user.setLastLogin(new Date());
         em.getTransaction().begin();

--
Gitblit v1.3.2