UserService.java 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package com.yihu.jw.service;
  2. import com.yihu.jw.model.SaasDO;
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.context.annotation.Primary;
  5. import org.springframework.security.core.GrantedAuthority;
  6. import org.springframework.security.core.authority.AuthorityUtils;
  7. import org.springframework.security.core.authority.SimpleGrantedAuthority;
  8. import org.springframework.security.core.userdetails.User;
  9. import org.springframework.security.core.userdetails.UserDetails;
  10. import org.springframework.security.core.userdetails.UserDetailsService;
  11. import org.springframework.security.core.userdetails.UsernameNotFoundException;
  12. import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
  13. import org.springframework.security.crypto.password.PasswordEncoder;
  14. import org.springframework.security.oauth2.provider.ClientDetails;
  15. import org.springframework.security.oauth2.provider.ClientDetailsService;
  16. import org.springframework.security.oauth2.provider.ClientRegistrationException;
  17. import org.springframework.stereotype.Component;
  18. import org.springframework.stereotype.Service;
  19. import org.springframework.util.Base64Utils;
  20. import org.springframework.util.StringUtils;
  21. import java.util.ArrayList;
  22. import java.util.Arrays;
  23. import java.util.HashSet;
  24. import java.util.Set;
  25. /**
  26. * Created by chenweida on 2017/11/29.
  27. * 处理用户校验
  28. */
  29. @Component
  30. @Primary
  31. public class UserService implements UserDetailsService {
  32. @Autowired
  33. private PasswordEncoder passwordEncoder;
  34. /**
  35. * 我们只需要把用户返回给spring-security 密码框架自己帮我们校验
  36. *
  37. * @param userName
  38. * @return
  39. * @throws UsernameNotFoundException
  40. */
  41. @Override
  42. public UserDetails loadUserByUsername(String userName) throws UsernameNotFoundException {
  43. if ("admin".equals(userName)) {
  44. return new User("admin",
  45. passwordEncoder.encode("123456"),
  46. true,
  47. true,
  48. true,
  49. true
  50. , AuthorityUtils.commaSeparatedStringToAuthorityList("admin,ROLE_USER") //权限
  51. );
  52. } else if ((!StringUtils.isEmpty(userName))&&userName.length() == 11) {
  53. return new User("admin",
  54. passwordEncoder.encode("123456"),
  55. true,
  56. true,
  57. true,
  58. true
  59. , AuthorityUtils.commaSeparatedStringToAuthorityList("admin,ROLE_USER") //权限
  60. );
  61. } else {
  62. throw new UsernameNotFoundException("用户不存在");
  63. }
  64. }
  65. public static void main(String[] args) {
  66. BCryptPasswordEncoder bCryptPasswordEncoder=new BCryptPasswordEncoder();
  67. System.out.println(new String(Base64Utils.encode(("cwd:"+bCryptPasswordEncoder.encode("cwd")).getBytes())));
  68. }
  69. }