Subversion Repositories bacoAlunos

Rev

Rev 2001 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2001 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 {
2029 jmachado 31
            //TODO Mudar par get em vez de load como demonstra a imagem
32
            session = (UserSession) HibernateUtils.getCurrentSession().get(UserSession.class, request.getSession().getId());
2001 es 33
            if(session == null)
34
            {
35
                session = new UserSessionImpl();
36
                session.setCookie(request.getSession().getId());
37
                HibernateUtils.getCurrentSession().save(session);
38
            }
39
        }catch(1.5.0/docs/api/java/lang/Exception.html">Exception e)
40
        {
41
            session = new UserSessionImpl();
42
            session.setCookie(request.getSession().getId());
43
            HibernateUtils.getCurrentSession().save(session);
44
        }
2029 jmachado 45
        User u = (User) HibernateUtils.getCurrentSession().get(User.class, new 1.5.0/docs/api/java/lang/Long.html">Long(1));
46
 
47
        u = (User) HibernateUtils.narrow(u);
48
 
2001 es 49
        session.setUser(u);
2029 jmachado 50
 
51
        session = (UserSession) HibernateUtils.narrow(session);
2001 es 52
        HibernateUtils.getCurrentSession().getTransaction().commit();
53
        return session;
54
    }
55
}