| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- package com.smartreview.utils;
- import com.smartreview.exception.SmartReviewException;
- import com.smartreview.po.User;
- import jakarta.servlet.http.HttpServletRequest;
- import lombok.RequiredArgsConstructor;
- import org.springframework.stereotype.Component;
- import org.springframework.web.context.request.RequestContextHolder;
- import org.springframework.web.context.request.ServletRequestAttributes;
- /**
- * 安全工具类
- */
- @Component
- @RequiredArgsConstructor
- public class SecurityUtil {
- private final TokenUtil tokenUtil;
- /**
- * 获取当前登录用户ID
- */
- public Long getCurrentUserId() {
- HttpServletRequest request = getCurrentRequest();
- if (request == null) {
- throw SmartReviewException.notLogin();
- }
- // 优先从session获取
- User user = (User) request.getSession().getAttribute("currentUser");
- if (user != null) {
- return user.getId();
- }
- // 从token获取
- String token = request.getHeader("token");
- if (token == null || token.isEmpty()) {
- token = request.getHeader("Authorization");
- if (token != null && token.startsWith("Bearer ")) {
- token = token.substring(7);
- }
- }
- Long userId = tokenUtil.getUserId(token);
- if (userId == null) {
- throw SmartReviewException.notLogin();
- }
- return userId;
- }
- /**
- * 获取当前登录用户
- */
- public User getCurrentUser() {
- HttpServletRequest request = getCurrentRequest();
- if (request == null) {
- throw SmartReviewException.notLogin();
- }
- User user = (User) request.getSession().getAttribute("currentUser");
- if (user != null) {
- return user;
- }
- String token = request.getHeader("token");
- if (token == null || token.isEmpty()) {
- token = request.getHeader("Authorization");
- if (token != null && token.startsWith("Bearer ")) {
- token = token.substring(7);
- }
- }
- user = tokenUtil.getUser(token);
- if (user == null) {
- throw SmartReviewException.notLogin();
- }
- return user;
- }
- private HttpServletRequest getCurrentRequest() {
- ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
- return attributes != null ? attributes.getRequest() : null;
- }
- }
|