View Javadoc

1   package org.gnomekr.potron.service;
2   
3   import net.sf.acegisecurity.Authentication;
4   import net.sf.acegisecurity.UserDetails;
5   import net.sf.acegisecurity.context.security.SecureContextUtils;
6   
7   import org.gnomekr.potron.data.User;
8   import org.hibernate.Session;
9   import org.springframework.orm.hibernate3.SessionFactoryUtils;
10  import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
11  
12  /***
13   * This class provides common methods to implement specific services.
14   * 
15   * @author iolo
16   * @version @Revision@ @Date@
17   */
18  public abstract class BasePotronService extends HibernateDaoSupport {
19  
20      /***
21       * Get currently logined user.
22       * 
23       * TODO: need more efficient way
24       * 
25       * @return the User object
26       */
27      User getContextUser() {
28          Authentication auth = SecureContextUtils.getSecureContext()
29                  .getAuthentication();
30          UserDetails principal = (UserDetails) auth.getPrincipal();
31          Session session = SessionFactoryUtils.getSession(
32                  getSessionFactory(),
33                  false);
34          User user = (User) session.load(User.class, principal.getUsername());
35          return user;
36      }
37  
38      /***
39       * Get a hibernate session.
40       * 
41       * @return the hibernate Session object
42       */
43      Session getHibernateSession() {
44          return SessionFactoryUtils.getSession(getSessionFactory(), false);
45      }
46  
47  }