1、开启url签名配置
public class SignAuthConfiguration implements WebMvcConfigurer {
public static String[] urlList = new String[] {"/sys/dict/getDictItems/*", "/sys/dict/loadDict/*",
"/sys/dict/loadDictOrderByValue/*", "/sys/dict/loadDictItem/*", "/sys/dict/loadTreeData",
"/sys/api/queryTableDictItemsByCode", "/sys/api/queryFilterTableDictInfo", "/sys/api/queryTableDictByKeys",
"/sys/api/translateDictFromTable", "/sys/api/translateDictFromTableByKeys","/das.**"};/
2、签名拦截
public class SignAuthInterceptor implements HandlerInterceptor {
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
log.info("request URI = " + request.getRequestURI());
HttpServletRequest requestWrapper = new BodyReaderHttpServletRequestWrapper(request);
//获取全部参数(包括URL和body上的)
SortedMap<String, String> allParams = HttpUtils.getAllParams(requestWrapper);
//对参数进行签名验证
String headerSign = request.getHeader(CommonConstant.X_SIGN);
String timesTamp = request.getHeader(CommonConstant.X_TIMESTAMP);
if (oConvertUtils.isEmpty(headerSign)) {
headerSign = request.getParameter(CommonConstant.X_SIGN);
}
if (oConvertUtils.isEmpty(timesTamp)) {
timesTamp = request.getParameter(CommonConstant.X_TIMESTAMP);
}
```
3、前端添加签名
getUrl(){
let timestamp = signMd5Utils.getDateTimeToString()
let url0 = ${this.url.downloadUrl}
let sign = signMd5Utils.getSign(url0, ‘’);
//将签名和时间戳,添加在请求接口URL
let _url = url0 +/${this.id}&token=
+Vue.ls.get(ACCESS_TOKEN)+&X-Sign=
+sign+&X-TIMESTAMP=
+timestamp
let picType =[".jpg",".tif",".png"]
const hasPic = picType.filter(item => item == "."+this.filetype)
if(hasPic != ""){
return `${window._CONFIG['domianURL']}`+_url
}
let url = `${window._CONFIG['domianURL']}/generic/web/viewer.html?file=${window._CONFIG['domianURL']}`+_url
return url
},
```