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