From 8d5386be38db25a2a41c3bf6c876adee21ca26cc Mon Sep 17 00:00:00 2001
From: Roberto Sánchez <roberto.sanchez@curisit.net>
Date: Fri, 19 Sep 2014 08:26:02 +0000
Subject: [PATCH] #396 fix - Fixed more SonarQube issues

---
 securis/src/main/java/net/curisit/securis/services/UserResource.java |  354 +++++++++++++++++++++++++++++------------------------------
 1 files changed, 174 insertions(+), 180 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 514003b..4b0c8ac 100644
--- a/securis/src/main/java/net/curisit/securis/services/UserResource.java
+++ b/securis/src/main/java/net/curisit/securis/services/UserResource.java
@@ -46,210 +46,204 @@
 @Path("/user")
 public class UserResource {
 
-	@Inject
-	TokenHelper tokenHelper;
+    @Inject
+    TokenHelper tokenHelper;
 
-	@Inject
-	Provider<EntityManager> emProvider;
+    @Inject
+    Provider<EntityManager> emProvider;
 
-	// private LicenseHelper licenseHelper = InjectorFactory.getInjector().getInstance(LicenseHelper.class);
-	private static final Logger LOG = LogManager.getLogger(UserResource.class);
+    private static final Logger LOG = LogManager.getLogger(UserResource.class);
 
-	public UserResource() {
-	}
+    public UserResource() {}
 
-	/**
-	 * 
-	 * @return the server version in format majorVersion.minorVersion
-	 */
-	@GET
-	@Path("/")
-	@Produces(
-		{ MediaType.APPLICATION_JSON })
-	public Response index() {
-		LOG.info("Getting users list ");
+    /**
+     * 
+     * @return the server version in format majorVersion.minorVersion
+     */
+    @GET
+    @Path("/")
+    @Produces({ MediaType.APPLICATION_JSON })
+    public Response index() {
+        LOG.info("Getting users list ");
 
-		EntityManager em = emProvider.get();
-		TypedQuery<User> q = em.createNamedQuery("list-users", User.class);
+        EntityManager em = emProvider.get();
+        TypedQuery<User> q = em.createNamedQuery("list-users", User.class);
 
-		List<User> list = q.getResultList();
+        List<User> list = q.getResultList();
 
-		return Response.ok(list).build();
-	}
+        return Response.ok(list).build();
+    }
 
-	/**
-	 * 
-	 * @return The user
-	 */
-	@GET
-	@Path("/{uid}")
-	@Produces(
-		{ MediaType.APPLICATION_JSON })
-	public Response get(@PathParam("uid") String uid, @HeaderParam(TokenHelper.TOKEN_HEADER_PÀRAM) String token) {
-		LOG.info("Getting user data for id: {}: ", uid);
-		if (uid == null || uid.equals("")) {
-			LOG.error("User ID is mandatory");
-			return Response.status(Status.NOT_FOUND).build();
-		}
+    /**
+     * 
+     * @return The user
+     */
+    @GET
+    @Path("/{uid}")
+    @Produces({ MediaType.APPLICATION_JSON })
+    public Response get(@PathParam("uid") String uid, @HeaderParam(TokenHelper.TOKEN_HEADER_PÀRAM) String token) {
+        LOG.info("Getting user data for id: {}: ", uid);
+        if (uid == null || "".equals(uid)) {
+            LOG.error("User ID is mandatory");
+            return Response.status(Status.NOT_FOUND).build();
+        }
 
-		EntityManager em = emProvider.get();
-		User lt = em.find(User.class, uid);
-		if (lt == null) {
-			LOG.error("User with id {} not found in DB", uid);
-			return Response.status(Status.NOT_FOUND).build();
-		}
-		return Response.ok(lt).build();
-	}
+        EntityManager em = emProvider.get();
+        User lt = em.find(User.class, uid);
+        if (lt == null) {
+            LOG.error("User with id {} not found in DB", uid);
+            return Response.status(Status.NOT_FOUND).build();
+        }
+        return Response.ok(lt).build();
+    }
 
-	@POST
-	@Path("/")
-	@Consumes(MediaType.APPLICATION_JSON)
-	@Produces(
-		{ MediaType.APPLICATION_JSON })
-	@Transactional
-	public Response create(User user, @HeaderParam(TokenHelper.TOKEN_HEADER_PÀRAM) String token) {
-		LOG.info("Creating new user");
-		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());
-			return modify(user, user.getUsername(), token);
-		}
-		
-		try {
-			this.setUserOrg(user, user.getOrgsIds(), em);
-		} catch (SeCurisException e) {
-			return Response.status(Status.NOT_FOUND).header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER, e.getMessage()).build();
-		}
-		user.setModificationTimestamp(new Date());
-		user.setLastLogin(null);
-		user.setCreationTimestamp(new Date());
-		em.persist(user);
+    @POST
+    @Path("/")
+    @Consumes(MediaType.APPLICATION_JSON)
+    @Produces({ MediaType.APPLICATION_JSON })
+    @Transactional
+    public Response create(User user, @HeaderParam(TokenHelper.TOKEN_HEADER_PÀRAM) String token) {
+        LOG.info("Creating new user");
+        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());
+            return modify(user, user.getUsername(), token);
+        }
 
-		return Response.ok(user).build();
-	}
-	
-	private void setUserOrg(User user, Set<Integer> orgsIds, EntityManager em) throws SeCurisException {
-		Set<Organization> orgs = null;
-		if (orgsIds != null && orgsIds.size() > 0) {
-			orgs = new HashSet<>();
-			for (Integer orgId : orgsIds) {
-				Organization o = em.find(Organization.class, orgId);
-				if (o == null) {
-					LOG.error("User organization with id {} not found in DB", orgId);
-					throw new SeCurisException("User's organization not found with ID: " + orgId);
-				}
-				orgs.add(o);
-			}
-		}
+        try {
+            this.setUserOrg(user, user.getOrgsIds(), em);
+        } catch (SeCurisException e) {
+            return Response.status(Status.NOT_FOUND).header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER, e.getMessage()).build();
+        }
+        user.setModificationTimestamp(new Date());
+        user.setLastLogin(null);
+        user.setCreationTimestamp(new Date());
+        em.persist(user);
 
-		user.setOrganizations(orgs);
+        return Response.ok(user).build();
+    }
 
-	}
+    private void setUserOrg(User user, Set<Integer> orgsIds, EntityManager em) throws SeCurisException {
+        Set<Organization> orgs = null;
+        if (orgsIds != null && orgsIds.size() > 0) {
+            orgs = new HashSet<>();
+            for (Integer orgId : orgsIds) {
+                Organization o = em.find(Organization.class, orgId);
+                if (o == null) {
+                    LOG.error("User organization with id {} not found in DB", orgId);
+                    throw new SeCurisException("User's organization not found with ID: " + orgId);
+                }
+                orgs.add(o);
+            }
+        }
 
-	@PUT
-	@POST
-	@Path("/{uid}")
-	@Transactional
-	@Consumes(MediaType.APPLICATION_JSON)
-	@Produces(
-		{ MediaType.APPLICATION_JSON })
-	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();
-		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);
-			return create(user, token);
-		}
+        user.setOrganizations(orgs);
 
-		try {
-			this.setUserOrg(currentUser, user.getOrgsIds(), em);
-		} catch (SeCurisException e) {
-			return Response.status(Status.NOT_FOUND).header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER, e.getMessage()).build();
-		}
-		currentUser.setFirstName(user.getFirstName());
-		currentUser.setLastName(user.getLastName());
-		currentUser.setRoles(user.getRoles());
-		currentUser.setLang(user.getLang());
-		currentUser.setModificationTimestamp(new Date());
-		currentUser.setPassword(user.getPassword());
-		currentUser.setLastLogin(user.getLastLogin());
+    }
 
-		em.persist(currentUser);
+    @PUT
+    @POST
+    @Path("/{uid}")
+    @Transactional
+    @Consumes(MediaType.APPLICATION_JSON)
+    @Produces({ MediaType.APPLICATION_JSON })
+    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();
+        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);
+            return create(user, token);
+        }
 
-		return Response.ok(currentUser).build();
-	}
+        try {
+            this.setUserOrg(currentUser, user.getOrgsIds(), em);
+        } catch (SeCurisException e) {
+            return Response.status(Status.NOT_FOUND).header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER, e.getMessage()).build();
+        }
+        currentUser.setFirstName(user.getFirstName());
+        currentUser.setLastName(user.getLastName());
+        currentUser.setRoles(user.getRoles());
+        currentUser.setLang(user.getLang());
+        currentUser.setModificationTimestamp(new Date());
+        currentUser.setPassword(user.getPassword());
+        currentUser.setLastLogin(user.getLastLogin());
 
-	@DELETE
-	@Path("/{uid}")
-	@Transactional
-	@Produces(
-		{ MediaType.APPLICATION_JSON })
-	public Response delete(@PathParam("uid") String uid, @Context HttpServletRequest request) {
-		LOG.info("Deleting app with id: {}", uid);
-		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);
-			return Response.status(Status.NOT_FOUND).build();
-		}
+        em.persist(currentUser);
 
-		em.remove(app);
-		return Response.ok(Utils.createMap("success", true, "id", uid)).build();
-	}
+        return Response.ok(currentUser).build();
+    }
 
-	@POST
-	@Path("/login")
-	@Produces(
-		{ MediaType.APPLICATION_JSON })
-	public Response login(@FormParam("username") String user, @FormParam("password") String password, @Context HttpServletRequest request) {
-		LOG.info("index session: " + request.getSession());
-		LOG.info("user: {}, pass: {}", user, password);
-		LOG.info("is user in role: {} == {} ? ", "advance", request.isUserInRole("advance"));
+    @DELETE
+    @Path("/{uid}")
+    @Transactional
+    @Produces({ MediaType.APPLICATION_JSON })
+    public Response delete(@PathParam("uid") String uid, @Context HttpServletRequest request) {
+        LOG.info("Deleting app with id: {}", uid);
+        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);
+            return Response.status(Status.NOT_FOUND).build();
+        }
 
-		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();
-	}
+        em.remove(app);
+        return Response.ok(Utils.createMap("success", true, "id", uid)).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();
+    @POST
+    @Path("/login")
+    @Produces({ MediaType.APPLICATION_JSON })
+    public Response login(@FormParam("username") String user, @FormParam("password") String password, @Context HttpServletRequest request) {
+        LOG.info("index session: " + request.getSession());
+        LOG.info("user: {}, pass: {}", user, password);
+        LOG.info("is user in role: {} == {} ? ", "advance", request.isUserInRole("advance"));
 
-		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);
+        if ("no".equals(password)) {
+            // TODO: Code to test exception handling
+            return Response.status(Status.UNAUTHORIZED).build();
+        }
+        String tokenAuth = tokenHelper.generateToken(user);
+        return Response.ok(Utils.createMap("success", true, "token", tokenAuth)).build();
+    }
 
-		LOG.info("Is Token valid: " + valid);
+    /**
+     * 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();
+        }
 
-		return Response.ok(Utils.createMap("valid", true, "user", user, "date", date, "token", token)).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);
 
-	@GET
-	@Path("/logout")
-	@Produces(
-		{ MediaType.APPLICATION_JSON })
-	public Response logout(@Context HttpServletRequest request) {
-		request.getSession().invalidate();
-		return Response.ok().build();
-	}
+        LOG.info("Is Token valid: " + valid);
+
+        return Response.ok(Utils.createMap("valid", true, "user", user, "date", date, "token", token)).build();
+    }
+
+    @GET
+    @Path("/logout")
+    @Produces({ MediaType.APPLICATION_JSON })
+    public Response logout(@Context HttpServletRequest request) {
+        request.getSession().invalidate();
+        return Response.ok().build();
+    }
 }

--
Gitblit v1.3.2