Subversion Repositories bacoAlunos

Rev

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

Rev Author Line No. Line
2018 es 1
package pt.estgp.es.exemplos.hibernate.services;
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
import pt.estgp.es.exemplos.hibernate.security.logic.Transaction;
9
 
10
import javax.servlet.http.HttpServletRequest;
11
 
12
public class ServicoSessoes {
13
 
2049 es 14
    /**
15
     * Regista-se o contexto de segurança no monitor e cria-se uma sessão na base de dados
16
     * se não existir
17
     * @param requester
18
     * @return UserSession registada para o Requester
19
     */
20
    @Transaction
21
    public UserSession registerUserSession(1.5.0/docs/api/java/lang/String.html">String requester) {
2018 es 22
 
2049 es 23
        SecurityContextProvider.getInstance().registerSessionContext(requester);
24
        UserSession session;
2018 es 25
        try {
2049 es 26
            session = (UserSession) HibernateUtils.getCurrentSession().get(UserSession.class, requester);
27
            if(session == null)
28
            {
29
                session = new UserSessionImpl();
30
                session.setCookie(requester);
31
                HibernateUtils.getCurrentSession().save(session);
32
            }
33
        }
2018 es 34
        catch(1.5.0/docs/api/java/lang/Exception.html">Exception e)
2049 es 35
        {
2018 es 36
 
2049 es 37
            session = new UserSessionImpl();
38
            session.setCookie(requester);
39
            HibernateUtils.getCurrentSession().save(session);
40
        }
41
        session = (UserSession) HibernateUtils.narrow(session);
2018 es 42
        return session;
2049 es 43
    }
2018 es 44
}