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.services;

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 pt.estgp.es.exemplos.hibernate.security.logic.Transaction;

import javax.servlet.http.HttpServletRequest;

public class ServicoSessoes {

    /**
     * Regista-se o contexto de segurança no monitor e cria-se uma sessão na base de dados
     * se não existir
     * @param requester
     * @return UserSession registada para o Requester
     */

    @Transaction
    public UserSession registerUserSession(1.5.0/docs/api/java/lang/String.html">String requester) {

        SecurityContextProvider.getInstance().registerSessionContext(requester);
        UserSession session;
        try {
            session = (UserSession) HibernateUtils.getCurrentSession().load(UserSession.class, requester);
            if(session == null)
            {
                session = new UserSessionImpl();
                session.setCookie(requester);
                HibernateUtils.getCurrentSession().save(session);
            }
        }
        catch(1.5.0/docs/api/java/lang/Exception.html">Exception e)
        {

            session = new UserSessionImpl();
            session.setCookie(requester);
            HibernateUtils.getCurrentSession().save(session);
        }
        return session;
    }
}