46 lines
1.5 KiB
Java
46 lines
1.5 KiB
Java
package com.mini.mybigscreen.Config;
|
|
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
import com.mini.mybigscreen.Model.Result;
|
|
import jakarta.servlet.http.HttpServletRequest;
|
|
import jakarta.servlet.http.HttpServletResponse;
|
|
import jakarta.servlet.http.HttpSession;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.ObjectUtils;
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.web.servlet.HandlerInterceptor;
|
|
|
|
import java.io.PrintWriter;
|
|
|
|
|
|
@Component
|
|
public class LoginInterceptor implements HandlerInterceptor {
|
|
|
|
@Override
|
|
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
|
HttpSession session = request.getSession(false);
|
|
if (ObjectUtils.isEmpty(session)) {
|
|
String json = objectMapper.writeValueAsString(Result.unauthorized());
|
|
try (PrintWriter writer = response.getWriter()) {
|
|
writer.write(json);
|
|
writer.flush();
|
|
}
|
|
return false;
|
|
}
|
|
|
|
String token = (String) session.getAttribute("token");
|
|
if (StringUtils.isEmpty(token)) {
|
|
String json = objectMapper.writeValueAsString(Result.unauthorized());
|
|
try (PrintWriter writer = response.getWriter()) {
|
|
writer.write(json);
|
|
writer.flush();
|
|
}
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
}
|