Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package apiProject;
- import javax.ws.rs.Path;
- import javax.ws.rs.Path;
- import java.sql.*;
- import java.text.SimpleDateFormat;
- import java.time.LocalDate;
- import javax.ws.rs.*;
- import javax.ws.rs.core.MediaType;
- import javax.ws.rs.core.Response;
- import org.hibernate.Session;
- import java.util.Date;
- import com.auth0.jwt.JWT;
- import com.auth0.jwt.algorithms.Algorithm;
- import com.google.gson.Gson;
- import domain.Alumno;
- import domain.Usuario;
- import util.Constants;
- import util.HibernateUtil;
- @Path("/users")
- public class LoginRest {
- @POST
- @Path("/login")
- @Consumes(MediaType.APPLICATION_JSON)
- @Produces(MediaType.APPLICATION_JSON)
- public Response login(String json) {
- Gson gson = new Gson();
- Usuario user = gson.fromJson(json, Usuario.class);
- boolean userValidated = false;
- Usuario userFound;
- try {
- Session session = HibernateUtil.getSessionFactory().getCurrentSession();
- session.beginTransaction();
- String sql = "from Usuario WHERE username = :entryUser and password = :entryPw";
- userFound = (Usuario) session.createQuery(sql).setParameter("entryUser", user.getUsername()).setParameter("entryPw", user.getPassword()).getSingleResult();
- session.getTransaction().commit();
- session.close();
- if(userFound != null) {
- user.setToken(generateToken(userFound.getIdUsuario()));
- userValidated = true;
- }
- } catch (javax.persistence.NoResultException noResultException) {
- userFound = null;
- } catch (Exception e) {
- System.out.println(e);
- return Response.status(500).build();
- }
- user.setPassword("");
- if (userValidated) {
- return Response.status(200).entity(gson.toJson(user)).build();
- } else {
- return Response.status(401).build();
- }
- }
- private String generateToken(int id) throws Exception {
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
- Date issuedDate = format.parse(LocalDate.now().toString());
- Date expirationDate = format.parse(LocalDate.now().plusMonths(1).toString());
- Algorithm algorithm = Algorithm.HMAC256(Constants.TOKEN_KEY);
- String token = JWT.create().withSubject(String.valueOf(id)).withIssuedAt(issuedDate)
- .withExpiresAt(expirationDate).sign(algorithm);
- return token;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement