TokenFilter.java 文件源码

java
阅读 29 收藏 0 点赞 0 评论 0

项目:automat 作者:
public void doFilter(ServletRequest servletRequest, ServletResponse response, FilterChain chain)
        throws IOException, ServletException {
    HttpServletRequest request = (HttpServletRequest) servletRequest;
    if (isWhiteReq(request.getRequestURI())) {
        chain.doFilter(request, response);
    } else {
        String token = request.getHeader("token");
        if (StringUtils.isNotBlank(token)) {
            try {
                Token tokenInfo = TokenUtil.getTokenInfo(token);
                if (tokenInfo != null) {
                    Long now = System.currentTimeMillis();
                    if (now - tokenInfo.getTime() < 1000 * 60 * 30) {
                        String value = tokenInfo.getValue();
                        TokenUtil.setTokenInfo(token, value);
                        WebUtil.saveCurrentUser(request, value);
                    }
                }
            } catch (Exception e) {
                logger.error("token检查发生异常:", e);
            }
        }
        // 响应
        if (DataUtil.isEmpty(WebUtil.getCurrentUser(request))) {
            response.setContentType("text/html; charset=UTF-8");
            Map<String, Object> modelMap = InstanceUtil.newLinkedHashMap();
            modelMap.put("httpCode", HttpCode.UNAUTHORIZED.value());
            modelMap.put("msg", HttpCode.UNAUTHORIZED.msg());
            modelMap.put("timestamp", System.currentTimeMillis());
            PrintWriter out = response.getWriter();
            out.println(JSON.toJSONString(modelMap));
            out.flush();
            out.close();
        } else {
            chain.doFilter(request, response);
        }
    }
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号