Rev 2001 | Go to most recent revision | 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 | } |