Rev 2001 |
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 {
//TODO Mudar par get em vez de load como demonstra a imagem
session =
(UserSession
) HibernateUtils.
getCurrentSession().
get(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().
get(User.
class,
new 1.5.0/docs/api/java/lang/Long.html">Long(1
));
u =
(User
) HibernateUtils.
narrow(u
);
session.
setUser(u
);
session =
(UserSession
) HibernateUtils.
narrow(session
);
HibernateUtils.
getCurrentSession().
getTransaction().
commit();
return session
;
}
}