SecurityUtils.java 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package com.ruoyi.common.utils;
  2. import cn.hutool.http.HttpStatus;
  3. import com.ruoyi.common.core.domain.entity.SysUser;
  4. import com.ruoyi.common.core.service.UserService;
  5. import com.ruoyi.common.exception.ServiceException;
  6. import com.ruoyi.common.utils.spring.SpringUtils;
  7. import lombok.AccessLevel;
  8. import lombok.NoArgsConstructor;
  9. import org.springframework.security.core.Authentication;
  10. import org.springframework.security.core.context.SecurityContextHolder;
  11. import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
  12. /**
  13. * 安全服务工具类
  14. *
  15. * @author Long Li
  16. */
  17. @NoArgsConstructor(access = AccessLevel.PRIVATE)
  18. public class SecurityUtils {
  19. /**
  20. * 获取用户
  21. **/
  22. public static SysUser getUser() {
  23. try {
  24. return SpringUtils.getBean(UserService.class).selectUserById(LoginUtils.getUserId());
  25. } catch (Exception e) {
  26. throw new ServiceException("获取用户信息异常", HttpStatus.HTTP_UNAUTHORIZED);
  27. }
  28. }
  29. /**
  30. * 生成BCryptPasswordEncoder密码
  31. *
  32. * @param password 密码
  33. * @return 加密字符串
  34. */
  35. public static String encryptPassword(String password) {
  36. BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
  37. return passwordEncoder.encode(password);
  38. }
  39. /**
  40. * 判断密码是否相同
  41. *
  42. * @param rawPassword 真实密码
  43. * @param encodedPassword 加密后字符
  44. * @return 结果
  45. */
  46. public static boolean matchesPassword(String rawPassword, String encodedPassword) {
  47. BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
  48. return passwordEncoder.matches(rawPassword, encodedPassword);
  49. }
  50. /**
  51. * 是否为管理员
  52. *
  53. * @param userId 用户ID
  54. * @return 结果
  55. */
  56. public static boolean isAdmin(Long userId) {
  57. return userId != null && 1L == userId;
  58. }
  59. }