UserService.java 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package com.yaozhitech.spring5.service;
  2. import java.util.Arrays;
  3. import java.util.List;
  4. import org.apache.shiro.crypto.hash.Sha256Hash;
  5. import org.springframework.beans.factory.annotation.Value;
  6. import org.springframework.stereotype.Service;
  7. import com.yaozhitech.spring5.dto.UserDto;
  8. import com.yaozhitech.spring5.utils.JwtUtils;
  9. @Service
  10. public class UserService {
  11. @Value("${password.salt}")
  12. private String encryptSalt;
  13. @Value("${jwt.salt}")
  14. private String jwtSalt;
  15. /**
  16. * 保存user登录信息,返回token
  17. *
  18. * @param userDto
  19. */
  20. public String generateJwtToken(String username) {
  21. return JwtUtils.sign(username, jwtSalt, 3600); // 生成jwt token,设置过期时间为1小时
  22. }
  23. /**
  24. * 获取上次token生成时的salt值和登录用户信息
  25. *
  26. * @param username
  27. * @return
  28. */
  29. public UserDto getJwtTokenInfo(String username) {
  30. UserDto user = getUserInfo(username);
  31. user.setSalt(jwtSalt);
  32. return user;
  33. }
  34. /**
  35. * 获取数据库中保存的用户信息,主要是加密后的密码
  36. *
  37. * @param userName
  38. * @return
  39. */
  40. public UserDto getUserInfo(String userName) {
  41. UserDto user = new UserDto();
  42. user.setUserId(1L);
  43. user.setUsername(userName);
  44. user.setEncryptPwd(new Sha256Hash("123456", encryptSalt).toHex());
  45. return user;
  46. }
  47. /**
  48. * 获取用户角色列表,强烈建议从缓存中获取
  49. *
  50. * @param userId
  51. * @return
  52. */
  53. public List<String> getUserRoles(Long userId) {
  54. return Arrays.asList("admin");
  55. }
  56. }