Advertisement
Guest User

Untitled

a guest
Dec 2nd, 2015
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.29 KB | None | 0 0
  1. package my.utm.acad.ac.biz.integration.springsecurity;
  2.  
  3. import my.utm.acad.ac.core.sys.dao.AcPrincipalDao;
  4. import my.utm.acad.ac.core.sys.dao.AcUserDao;
  5. import my.utm.acad.ac.core.sys.model.AcPrincipalRole;
  6. import my.utm.acad.ac.core.sys.model.AcUser;
  7. import org.hibernate.SessionFactory;
  8. import org.hibernate.classic.Session;
  9. import org.slf4j.Logger;
  10. import org.slf4j.LoggerFactory;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.dao.DataAccessException;
  13. import org.springframework.security.core.GrantedAuthority;
  14. import org.springframework.security.core.authority.GrantedAuthorityImpl;
  15. import org.springframework.security.core.userdetails.UserDetails;
  16. import org.springframework.security.core.userdetails.UserDetailsService;
  17. import org.springframework.security.core.userdetails.UsernameNotFoundException;
  18. import org.springframework.stereotype.Service;
  19. import org.springframework.transaction.annotation.Transactional;
  20.  
  21. import java.util.HashSet;
  22. import java.util.Set;
  23.  
  24. /**
  25. * @author team utmacad
  26. * @since 20/5/2015.
  27. */
  28. @Service("userDetailService")
  29. @Transactional
  30. public class AcUserDetailsService implements UserDetailsService {
  31.  
  32. private static final Logger LOG = LoggerFactory.getLogger(AcUserDetailsService.class);
  33.  
  34. @Autowired(required = true)
  35. protected SessionFactory sessionFactory;
  36.  
  37. @Autowired(required = true)
  38. private AcPrincipalDao principalDao;
  39.  
  40. @Autowired(required = true)
  41. private AcUserDao userDao;
  42.  
  43. @Override
  44. public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException, DataAccessException {
  45. AcUser user = userDao.findByUsername(username);
  46. Session session = sessionFactory.getCurrentSession();
  47. if (user == null)
  48. throw new UsernameNotFoundException("No such user");
  49. return new AcUserDetails(user, loadGrantedAuthoritiesFor(user));
  50. }
  51.  
  52. private Set<GrantedAuthority> loadGrantedAuthoritiesFor(AcUser user) {
  53. Set<GrantedAuthority> grantedAuthorities = new HashSet<GrantedAuthority>();
  54. for (AcPrincipalRole role : principalDao.findRoles(user)) {
  55. grantedAuthorities.add(new GrantedAuthorityImpl(role.getRole().name()));
  56. }
  57. LOG.info("load auth for " + user.getName() + "#" + user.getId());
  58. return grantedAuthorities;
  59. }
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement