Subversion Repositories bacoAlunos

Rev

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

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

import pt.estgp.es.exemplos.hibernate.HibernateUtils;
import pt.estgp.es.exemplos.hibernate.User;
import pt.estgp.es.exemplos.hibernate.UserSession;
import pt.estgp.es.exemplos.hibernate.UserSessionImpl;
import pt.estgp.es.exemplos.hibernate.security.SecurityContextProvider;

import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;

public class DevelopRegisterSession implements RegisterSession {

    /**
     * Abre uma sessao se esta não existir e associa-a sempre ao User com id 1
     * @param servletRequest
     * @return
     * @throws IOException
     * @throws ServletException
     */

    @1.5.0/docs/api/java/lang/Override.html">Override
    public UserSession openSession(ServletRequest servletRequest) {
        HttpServletRequest request = (HttpServletRequest) servletRequest;

        SecurityContextProvider.getInstance().registerSessionContext(request.getSession().getId());
        UserSession session;
        HibernateUtils.getCurrentSession().beginTransaction();
        try {
            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);
            }
        }catch(1.5.0/docs/api/java/lang/Exception.html">Exception e)
        {
            session = new UserSessionImpl();
            session.setCookie(request.getSession().getId());
            HibernateUtils.getCurrentSession().save(session);
        }
        User u = (User) HibernateUtils.getCurrentSession().load(User.class, new 1.5.0/docs/api/java/lang/Long.html">Long(1));
        session.setUser(u);
        HibernateUtils.getCurrentSession().getTransaction().commit();
        return session;
    }
}