package org.jeecg.config.license; import com.alibaba.fastjson.JSON; import lombok.extern.slf4j.Slf4j; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.lang.Nullable; import org.springframework.stereotype.Component; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.HashMap; import java.util.Map; /** * @Author: lius * @Description: 使用拦截器拦截请求,验证证书的可用性 * @DateTime: 2024/11/2 16:00 */ @Component public class LicenseCheckInterceptor implements HandlerInterceptor { private static Logger log = LoggerFactory.getLogger(LicenseCheckListener.class); /** * 进入controller层之前拦截请求 * @param request * @param response * @param handler * @return * @throws Exception */ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { log.info("进入拦截器,验证证书可使用性"); LicenseVerify licenseVerify = new LicenseVerify(); //校验证书是否有效 boolean verifyResult = licenseVerify.verify(); if(verifyResult){ log.info("验证成功,证书可用"); return true; }else{ log.info("验证失败,证书无效"); response.setContentType("application/json;charset=utf-8"); Map result = new HashMap<>(1); result.put("result","您的证书无效,请核查服务器是否取得授权或重新申请证书!"); response.getWriter().write(JSON.toJSONString(result)); return false; } } /** * 处理请求完成后视图渲染之前的处理操作 * @param request * @param response * @param handler * @param modelAndView * @throws Exception */ @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable ModelAndView modelAndView) throws Exception { // log.info("处理请求完成后视图渲染之前的处理操作"); } /** * 视图渲染之后的操作 * @param request * @param response * @param handler * @param ex * @throws Exception */ @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable Exception ex) throws Exception { // log.info("视图渲染之后的操作"); } }