fix tag interceptor error && format comment publish time

main
wangqing 10 months ago
parent 0adfcc23b8
commit 439fecf195

@ -6,6 +6,7 @@ import api.Result;
import api.StatusCode; import api.StatusCode;
import com.luoo.comment.pojo.*; import com.luoo.comment.pojo.*;
import com.luoo.comment.service.CommentService; import com.luoo.comment.service.CommentService;
import com.luoo.comment.util.IpUtil;
import constants.Constants; import constants.Constants;
import controller.BaseController; import controller.BaseController;
import dto.UserLoginDto; import dto.UserLoginDto;
@ -97,7 +98,7 @@ public class CommentController extends BaseController {
comment.setUserId(userId); comment.setUserId(userId);
comment.setNickName(userLoginDto.getNickName()); comment.setNickName(userLoginDto.getNickName());
comment.setAvatar(Constants.RESOURCE_PREFIX+userLoginDto.getAvatar()); comment.setAvatar(Constants.RESOURCE_PREFIX+userLoginDto.getAvatar());
comment.setLocation(getIpAddr(request)); comment.setLocation(IpUtil.getIpLocation(getIpAddr(request)));
commentService.save(comment,userLoginDto); commentService.save(comment,userLoginDto);
return Result.success(); return Result.success();

@ -1,7 +1,9 @@
package com.luoo.comment.pojo; package com.luoo.comment.pojo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Id;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
@ -15,6 +17,8 @@ public class Comment implements Serializable {
// 评论内容 // 评论内容
private String content; private String content;
// 发布时间 // 发布时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date publishTime; private Date publishTime;
private String userId; private String userId;

@ -1,12 +1,7 @@
package com.luoo.tag.interceptor; package com.luoo.tag.interceptor;
import com.luoo.tag.config.RequestContext;
import exception.BizException;
import io.jsonwebtoken.Claims; import io.jsonwebtoken.Claims;
import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.lang.Nullable;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.HandlerInterceptor;
import util.JwtUtil; import util.JwtUtil;
@ -14,35 +9,37 @@ import util.JwtUtil;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
/**
* JWT
*/
@Slf4j
@Component @Component
@RequiredArgsConstructor
public class JwtInterceptor implements HandlerInterceptor { public class JwtInterceptor implements HandlerInterceptor {
private final JwtUtil jwtUtil;
@Autowired
private JwtUtil jwtUtil;
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
log.info("JWT拦截器"); System.out.println("经过了拦截器");
String authHeader = request.getHeader("Admin-token"); String header = request.getHeader("Authorization");
if(StringUtils.isBlank(authHeader) || !authHeader.startsWith("Bearer ")){
throw new BizException("JWT令牌缺失"); if (header!=null && !"".equals(header)) {
}
if (header.startsWith("Bearer ")){
String token = header.substring(7);
try { try {
String token = authHeader.substring(7);
Claims claims = jwtUtil.parseJWT(token); Claims claims = jwtUtil.parseJWT(token);
RequestContext.set(claims.getId(), claims.getSubject()); String roles = (String) claims.get("roles");
} catch (Exception e) { if (roles != null || !roles.equals("admin")) {
throw new BizException("JWT令牌解析异常"); request.setAttribute("claims_admin",token);
} }
if (roles != null || !roles.equals("user")) {
request.setAttribute("claims_user",token);
request.setAttribute("userid",claims.getId());
request.setAttribute("mobile",claims.getSubject());
return true;
} }
} catch (Exception e) {
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, throw new RuntimeException("令牌不正确!");
@Nullable Exception ex) throws Exception { }
RequestContext.remove(); }
}
return true;
} }
} }

Loading…
Cancel
Save