maia_modificado/.svn/pristine/1b/1b99bfd90c85112dbab6d436a48...

66 lines
2.9 KiB
Plaintext
Executable File

package com.fp.frontend.webservices.rest.services;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import com.fp.common.logger.APPLogger;
import com.fp.dto.Request;
import com.fp.frontend.helper.CallerHelper;
import com.fp.frontend.webservices.rest.dto.LoginData;
import com.fp.frontend.webservices.rest.dto.LoginResult;
import com.fp.frontend.webservices.rest.dto.StatusMessage;
import com.fp.frontend.webservices.rest.util.JwtValidateException;
@Path("/security")
@Produces(MediaType.APPLICATION_JSON)
public class SecurityResource extends CommonResource {
@POST
@Path("/login")
@Consumes(MediaType.APPLICATION_JSON)
public Response login(LoginData loginData) {
APPLogger.getLogger().info("Ingresa a Login MOB");
Response response = null;
try {
String respuesta = "0";
CallerHelper callerHelper = new CallerHelper();
Request request = callerHelper.getRequest();
request.setCompany(1);
request.put("USERCODE", loginData.getUsername());
request.put("PASSWORD", callerHelper.getPasswordEncriptado(loginData.getPassword()));
request.put("queryalias", "CONSULTALOGIN");
com.fp.dto.Response responseMaia = callerHelper.executeQuery(request);
if(responseMaia.getResponseCode().compareTo(com.fp.dto.Response.RESPONSE_OK) == 0){
respuesta = (String) responseMaia.get("RESPUESTA");//esta contiene la localidad de la direccion principal del usuario
if (respuesta == null || respuesta.isEmpty()) {
throw new WebApplicationException(Response.status(Status.BAD_REQUEST).entity(new StatusMessage(Status.BAD_REQUEST.getStatusCode(), "Usuario/Password Incorrecto")).build());
}
} else {
throw new WebApplicationException(Response.status(Status.BAD_REQUEST).entity(new StatusMessage(Status.BAD_REQUEST.getStatusCode(), "Usuario/Password Incorrecto")).build());
}
String token = generateTokenJwt(loginData.getUsername());
response = Response.ok().entity(new LoginResult(loginData.getUsername(), token)).build();
} catch (JwtValidateException e) {
APPLogger.getLogger().error(e.getMessage(), e);
response = Response.status(e.getStatusMessage().getStatus()).entity(e.getStatusMessage()).build();
} catch (WebApplicationException e) {
APPLogger.getLogger().error(e.getMessage(), e);
response = e.getResponse();
} catch (Exception e) {
APPLogger.getLogger().error(e.getMessage(), e);
response = Response.serverError().entity(new StatusMessage(Status.INTERNAL_SERVER_ERROR.getStatusCode(), e.getMessage())).build();
} catch (Throwable e) {
APPLogger.getLogger().error(e.getMessage(), e);
response = Response.serverError().entity(new StatusMessage(Status.INTERNAL_SERVER_ERROR.getStatusCode(), e.getMessage())).build();
}
return response;
}
}