package cc.mrbird.febs.common.interceptor;
|
|
import cc.mrbird.febs.common.entity.FebsResponse;
|
import cc.mrbird.febs.common.utils.RedisUtils;
|
import cc.mrbird.febs.common.utils.SpringContextUtil;
|
import cc.mrbird.febs.dapp.entity.DappMemberEntity;
|
import cc.mrbird.febs.dapp.mapper.DappMemberDao;
|
import cn.hutool.core.util.StrUtil;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.http.HttpStatus;
|
import org.springframework.web.servlet.HandlerInterceptor;
|
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
import java.io.IOException;
|
|
/**
|
* @author wzy
|
* @date 2022-03-17
|
**/
|
@Slf4j
|
public class DappInterceptor implements HandlerInterceptor {
|
|
private final DappMemberDao dappMemberDao = SpringContextUtil.getBean(DappMemberDao.class);
|
|
@Override
|
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
String headAddress = request.getHeader("address");
|
log.info("进入拦截:{}", headAddress);
|
if (StrUtil.isBlank(headAddress)) {
|
responseUnAuth(response);
|
return false;
|
}
|
|
DappMemberEntity memberEntity = dappMemberDao.selectByAddress(headAddress);
|
if (memberEntity == null) {
|
responseUnAuth(response);
|
return false;
|
}
|
|
request.getSession().setAttribute("member", memberEntity);
|
return true;
|
}
|
|
private void responseUnAuth(HttpServletResponse response) throws IOException {
|
response.setCharacterEncoding("UTF-8");
|
response.setContentType("application/json; charset=utf-8");
|
response.getWriter().write(new ObjectMapper().writeValueAsString(new FebsResponse().code(HttpStatus.UNAUTHORIZED)));
|
}
|
}
|