UserService.java 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package com.yihu.jw.config.security;
  2. import com.yihu.jw.base.user.BaseEmployDO;
  3. import com.yihu.jw.fegin.base.user.EmployFeign;
  4. import com.yihu.jw.restmodel.common.Envelop;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.security.core.authority.AuthorityUtils;
  7. import org.springframework.security.core.userdetails.User;
  8. import org.springframework.security.core.userdetails.UserDetails;
  9. import org.springframework.security.core.userdetails.UserDetailsService;
  10. import org.springframework.security.core.userdetails.UsernameNotFoundException;
  11. import org.springframework.security.crypto.password.PasswordEncoder;
  12. import org.springframework.stereotype.Component;
  13. import org.springframework.util.StringUtils;
  14. import java.util.Map;
  15. /**
  16. * Created by chenweida on 2017/11/29.
  17. * 处理用户校验
  18. */
  19. @Component
  20. public class UserService implements UserDetailsService {
  21. @Autowired
  22. private PasswordEncoder passwordEncoder;
  23. @Autowired
  24. private EmployFeign employFeign;
  25. // @Autowired
  26. // private EmployFeign employFeign;
  27. /**
  28. * 我们只需要把用户返回给spring-security 密码框架自己帮我们校验
  29. *
  30. * @param saasPhone
  31. * @return
  32. * @throws UsernameNotFoundException
  33. */
  34. @Override
  35. public UserDetails loadUserByUsername(String saasPhone) throws UsernameNotFoundException {
  36. //saasPhone=saas+phone
  37. //根据userName获取账户信息(手机号码)
  38. String[] sp = saasPhone.split(",");
  39. String phone = sp[0];
  40. String saasId = sp[1];
  41. Envelop envelop = employFeign.getEmployeeByPhoneAndSaasId(phone,saasId);
  42. Map baseEmployDO = (Map)envelop.getObj();
  43. if (!baseEmployDO.isEmpty()) {
  44. return new User(saasPhone,
  45. passwordEncoder.encode(baseEmployDO.get("password")+""),
  46. true,
  47. true,
  48. true,
  49. true
  50. , AuthorityUtils.commaSeparatedStringToAuthorityList("admin,ROLE_USER") //权限
  51. );
  52. } else {
  53. throw new UsernameNotFoundException("用户不存在");
  54. }
  55. }
  56. }