package net.curisit.securis.services; import javax.inject.Inject; import javax.servlet.http.HttpServletRequest; import javax.ws.rs.FormParam; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import javax.ws.rs.core.Response.Status; import net.curisit.integrity.commons.Utils; import net.curisit.securis.utils.TokenHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * User resource * * @author roberto */ @Path("/user") public class UserResource { @Inject TokenHelper tokenHelper; // private LicenseHelper licenseHelper = InjectorFactory.getInjector().getInstance(LicenseHelper.class); private static final Logger log = LoggerFactory.getLogger(UserResource.class); public UserResource() { } /** * * @return the server version in format majorVersion.minorVersion */ @GET @Path("/") @Produces( { MediaType.TEXT_PLAIN }) public Response index(@Context HttpServletRequest request) { return Response.ok("User resource").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")); request.getSession().setAttribute("username", user); if ("no".equals(password)) return Response.status(Status.FORBIDDEN).build(); String tokenAuth = tokenHelper.generateToken(user); return Response.ok(Utils.createMap("success", true, "token", tokenAuth)).build(); } /** * @return the version of the three entities that can be synchronized (Users, DataSet and Settings) */ @GET @Path("/{username}") @Produces( { MediaType.APPLICATION_JSON }) // @RolesAllowed("advance") public Response main(@PathParam("username") String username) { return Response.ok().entity(Utils.createMap("name", "Pepito", "username", username)).build(); } @GET @Path("/logout") @Produces( { MediaType.APPLICATION_JSON }) public Response logout(@Context HttpServletRequest request) { request.getSession().invalidate(); return Response.ok().build(); } // // private ServiceResponse buildErrorResponse(ServiceResponse response, String msgErrorCode) { // response.setSuccess(false); // response.setErrorMessage(localManager.getString(msgErrorCode)); // response.setErrorMessageCode(msgErrorCode); // return response; // } // // private Date calculateCaducation() { // Integer licenseExpiration = systemParams.getParamAsInt(SystemParams.Keys.CONFIG_SERVER_LICENSE_EXPIRATION); // if (licenseExpiration == null) // licenseExpiration = DEFAULT_LICENSE_EXPIRATION; // return Utils.addDays(new Date(), licenseExpiration); // } // // private boolean validateLicense(String license) { // BasicApplication ba = basicApplicationDao.findByLicense(license); // return (ba != null); // } // // private boolean validateVersion(int minorVersion, int majorVersion) { // return (versionManager.getMajorVersion() == majorVersion); // } // // private BasicApplication findBasicApp(String license) { // BasicApplication ba = basicApplicationDao.findByLicense(license); // return ba; // } // // private License generateLicense() { // // TODO complete all field of the license // License license = new License(); // license.setCustomerCode(systemParams.getParam(SystemParams.Keys.CONFIG_COMMON_CUSTOMER_CODE)); // license.setCSCode(systemParams.getParam(SystemParams.Keys.CONFIG_COMMON_CS_CODE)); // license.setCRCLogo("00000000"); // license.setExpirationDate(calculateCaducation()); // license.setInstallCode(codeGenerator.generateInstalationNumber()); // return license; // } }