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 | } |