Subversion Repositories bacoAlunos

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2018 es 1
package pt.estgp.es.exemplos.hibernate.web.pluginSession;
2
 
3
import pt.estgp.es.exemplos.hibernate.HibernateUtils;
4
import pt.estgp.es.exemplos.hibernate.User;
5
import pt.estgp.es.exemplos.hibernate.UserSession;
6
import pt.estgp.es.exemplos.hibernate.UserSessionImpl;
7
import pt.estgp.es.exemplos.hibernate.security.SecurityContextProvider;
8
 
9
import javax.servlet.ServletException;
10
import javax.servlet.ServletRequest;
11
import javax.servlet.http.HttpServletRequest;
12
import java.io.IOException;
13
 
14
public class DevelopRegisterSession implements RegisterSession {
15
 
16
  /**
17
   * Abre uma sessao se esta não existir e associa-a sempre ao User com id 1
18
   * @param servletRequest
19
   * @return
20
   * @throws IOException
21
   * @throws ServletException
22
   */
23
  @1.5.0/docs/api/java/lang/Override.html">Override
24
  public UserSession openSession(ServletRequest servletRequest) {
25
    HttpServletRequest request = (HttpServletRequest) servletRequest;
26
 
27
    SecurityContextProvider.getInstance().registerSessionContext(request.getSession().getId());
28
    UserSession session;
29
    HibernateUtils.getCurrentSession().beginTransaction();
30
    try {
31
      session = (UserSession) HibernateUtils.getCurrentSession().load(UserSession.class, request.getSession().getId());
32
      if(session == null)
33
      {
34
        session = new UserSessionImpl();
35
        session.setCookie(request.getSession().getId());
36
        HibernateUtils.getCurrentSession().save(session);
37
      }
38
    }catch(1.5.0/docs/api/java/lang/Exception.html">Exception e)
39
    {
40
      session = new UserSessionImpl();
41
      session.setCookie(request.getSession().getId());
42
      HibernateUtils.getCurrentSession().save(session);
43
    }
44
    User u = (User) HibernateUtils.getCurrentSession().load(User.class, new 1.5.0/docs/api/java/lang/Long.html">Long(1));
45
    session.setUser(u);
46
    HibernateUtils.getCurrentSession().getTransaction().commit();
47
    return session;
48
  }
49
}