HttpRequestAspect.java 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package com.backendsys.aspect;
  2. import cn.hutool.core.convert.Convert;
  3. import com.backendsys.modules.common.config.security.utils.TokenUtil;
  4. import io.jsonwebtoken.Claims;
  5. import jakarta.servlet.http.HttpServletRequest;
  6. import org.aspectj.lang.annotation.Aspect;
  7. import org.aspectj.lang.annotation.Before;
  8. import org.aspectj.lang.annotation.Pointcut;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.stereotype.Component;
  11. import org.springframework.web.context.request.RequestContextHolder;
  12. import org.springframework.web.context.request.ServletRequestAttributes;
  13. @Aspect
  14. @Component
  15. public class HttpRequestAspect {
  16. @Autowired
  17. private TokenUtil tokenUtil;
  18. @Pointcut("execution(public * com.backendsys.service.*.*(..))")
  19. public void serviceMethods() {}
  20. /**
  21. * 获取HttpServletRequest 对象
  22. */
  23. private HttpServletRequest getRequest() {
  24. // 获取HttpServletRequest对象
  25. ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
  26. HttpServletRequest request = attributes != null ? attributes.getRequest() : null;
  27. return request;
  28. }
  29. /**
  30. * 从 Token 中获得 user_id
  31. */
  32. @Before("serviceMethods()")
  33. public Long getUserId() {
  34. HttpServletRequest request = getRequest();
  35. if (request != null) {
  36. Claims tokenInfo = tokenUtil.getTokenInfo(request);
  37. if (tokenInfo != null) {
  38. return Convert.toLong(tokenInfo.get("user_id"));
  39. }
  40. }
  41. return null;
  42. }
  43. /**
  44. * 从 Token 中获得 member_id
  45. */
  46. @Before("serviceMethods()")
  47. public Long getMemberId() {
  48. HttpServletRequest request = getRequest();
  49. if (request != null) {
  50. Claims tokenInfo = tokenUtil.getTokenInfo(request);
  51. if (tokenInfo != null) {
  52. return Convert.toLong(tokenInfo.get("member_id"));
  53. }
  54. }
  55. return null;
  56. }
  57. }