Subversion Repositories bacoAlunos

Rev

Rev 2018 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package pt.estgp.es.exemplos.hibernate.web;

import pt.estgp.es.exemplos.hibernate.HibernateUtils;
import pt.estgp.es.exemplos.hibernate.UserSession;
import pt.estgp.es.exemplos.hibernate.UserSessionImpl;

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

import static org.hibernate.criterion.Restrictions.like;

public class SecurityFilter implements 1.5.0/docs/api/java/util/logging/Filter.html">Filter {
  @1.5.0/docs/api/java/lang/Override.html">Override
  public void init(FilterConfig filterConfig) throws ServletException{

  }

  @1.5.0/docs/api/java/lang/Override.html">Override
  public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws 1.5.0/docs/api/java/io/IOException.html">IOException, ServletException {
    HttpServletResponse response=(HttpServletResponse) servletResponse;

    HttpServletRequest request = (HttpServletRequest) servletRequest;
    request.getSession().getId();
    //SecurityCotextProvider.getInstance().registerSessionContext(request.getSession().getId());
    HibernateUtils.getCurrentSession().beginTransaction();

    /*User user= (User)HibernateUtils.getCurrentSession()
            .createCriteria(User.class)
            .createAlias("user", "u")
            .add(like("u.nome", "jorge"))
            .add(eq("username", "jcmachado"))
            .add(eq("password", "123"))
            //.add(Order.asc("username"))
            .uniqueResult();*/


    User u = null;
    try {
      UserSession session= (UserSession) HibernateUtils.getCurrentSession().load(UserSession.class, request.getSession().getId());;
      if(session==null){
        session= new UserSessionImpl();
        session.setCookie(request.getSession().getId());
        HibernateUtils.getCurrentSession().save(session);
      }
      u= session.getUser();
    }
    catch (1.5.0/docs/api/java/lang/Exception.html">Exception e){
      UserSession session = new UserSessionImpl();
      session.setCookie(request.getSession().getId());
      HibernateUtils.getCurrentSession().save(session);

    }
    HibernateUtils.getCurrentSession().getTransaction().commit();

      filterChain.doFilter(servletRequest, response);

  }

  @1.5.0/docs/api/java/lang/Override.html">Override
  public void destroy() {

  }

}