首页 > 其他分享 >spring boot 拦截器

spring boot 拦截器

时间:2023-03-03 15:12:11浏览次数:35  
标签:info 拦截器 String MsgUtil spring boot request import logger

在interceptor包下创建ApiInterceptor和WebConfig

ApiInterceptor

 

 

``` package com.media.weappapi.interceptor;

import com.media.common.po.config.TCmsSite;
import com.media.common.util.MD5Util;
import com.media.common.util.MsgUtil;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
import java.util.Map.Entry;

@Component
public class ApiInterceptor implements HandlerInterceptor {

private static Logger logger = LoggerFactory.getLogger(ApiInterceptor.class);
public static final String SIGNATURE = "signature";
public static final String SITEID = "siteId";
public static final String APISIGN = "apiSign";

private  Map<String,String> apiSignMap = new HashMap<String, String>();
{
	apiSignMap.put(SITEID, APISIGN);
}


@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
		throws Exception {
	
	//开发者模式时runType参数添加test不进行拦截
	if ("test".equals(request.getParameter("runType"))) {
		return true;
	}
	logger.info("—————————————————进入拦截模式————————————————————————————");
	//判断是否是文件上传,文件上传的请求不拦截

// String contentType=request.getHeader("Content-Type");
// logger.info("contentType:"+contentType);
// if(StringUtils.isNotBlank(contentType) && contentType.startsWith("multipart")){
// return true;
// }

	String signature = request.getParameter(SIGNATURE);
	logger.info(request.toString()+"\t" +"signature:"+"\t"+signature);
	logger.info(request.toString()+"\t" +"url:"+"\t"+request.getRequestURI());

	String siteId = request.getParameter("siteId");
	String currentTimeMillis = request.getParameter("currentTimeMillis");
	if (StringUtils.isBlank(siteId)) {
		response.getWriter().println(MsgUtil.fail("站点id不能为空"));
		return false;
	}
	if (StringUtils.isBlank(currentTimeMillis)) {
		response.getWriter().println(MsgUtil.fail("时间戳不能为空"));
		return false;
	}
	// 判断签名是否正确
	StringBuffer sbf = new StringBuffer();
	sbf.append(siteId);
	sbf.append(currentTimeMillis);
	logger.info("paramList加密前参数:" + sbf.toString());
	String createSign = MD5Util.getMD5String(sbf.toString());
	logger.info("paramList加密后:" + createSign);

	if(!(signature.equals(createSign))){
		logger.info(MsgUtil.fail("签名错误"));
		response.getWriter().append(MsgUtil.fail("签名错误"));
	}else{
		logger.info(MsgUtil.success("签名正确"));
	}
	return (signature.equals(createSign));

}

}
、、、

标签:info,拦截器,String,MsgUtil,spring,boot,request,import,logger
From: https://www.cnblogs.com/f9264/p/17175696.html

相关文章

  • 18_Spring_事务管理注解方式
    ​ 事务的管理应该放在我们的service层进行处理spring中有两种事务的管理方式1编程式事务管理(了解) 2声明式事务管理(掌握)    基于注解方式实现(掌握)......
  • 18_Spring_事务管理注解方式
    ​ 事务的管理应该放在我们的service层进行处理spring中有两种事务的管理方式1编程式事务管理(了解) 2声明式事务管理(掌握)    基于注解方式实现(掌握)......
  • SSM框架-Spring学习日记4
    代理模式代理模式:静态代理动态代理静态代理抽象角色:一般使用接口或者抽象类来实现真实角色:被代理的角色代理角色:代理真实角色;代理真实角色后,一般会......
  • 7_Spring_使用外部属性配置文件
    ​ spring容器可以读取.properties属性配置文件,可以将文件中的信息注入给bean例如,引入Druid数据源,配置连接池信息1 导入Druid依赖和mysql-connector依赖<d......
  • 7_Spring_使用外部属性配置文件
    ​ spring容器可以读取.properties属性配置文件,可以将文件中的信息注入给bean例如,引入Druid数据源,配置连接池信息1 导入Druid依赖和mysql-connector依赖<d......
  • springboot(三)
    1.热部署可以在不重启服务器的情况下重新加载更新后的程序.1.1实现原理①非springboot项目热部署实现原理开发非springboot项目时,我们要制作一个web工程并通过tomca......
  • 9_Spring_JDK动态代理
    ​ 代理模式是通过代理对象访问目标对象,这样可以在目标对象基础上增强额外的功能,如添加权限,访问控制和审计等功能。房产中介代替业主卖房 静态代理     ......
  • 9_Spring_JDK动态代理
    ​ 代理模式是通过代理对象访问目标对象,这样可以在目标对象基础上增强额外的功能,如添加权限,访问控制和审计等功能。房产中介代替业主卖房 静态代理     ......
  • SpringBoot接口返回统一格式
    packagecom.example.springboot.common;importorg.springframework.core.MethodParameter;importorg.springframework.http.MediaType;importorg.springframework......
  • Fleet Spring Boot
    前言Fleet是JetBrains的一款新的IDE,包罗万象(夸张)。示例项目在,有一个父项目和多个子项目构成菜单Run菜单Run&Debug点击创建run.json文件内容:{ "configur......