SignAuthInterceptor.java 签名认证增加接受参数请求
@Override
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);
}
...
view.js 增加接受前台参数请求
function webViewerInitialized() {
var queryString = document.location.search.substring(1);
var params = PDFViewerApplication.parseQueryString(queryString);
var file = 'file' in params ? params.file : DEFAULT_URL;
var token = 'token' in params ? params.token : '';
var timestamp = 'X-TIMESTAMP' in params ? params.X-TIMESTAMP : '';
var sign = 'X-Sign' in params ? params.X-Sign : '';
// console.log(token)
file += "?token="+token+"&X-TIMESTAMP="+timestamp+"&X-Sign="+sign
DasInfoVAttachmentLayout.vue 前台打开pdf文件增加认证参数
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 _urlPic = 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']}`+_urlPic
}
let url = `${window._CONFIG['domianURL']}/generic/web/viewer.html?file=${window._CONFIG['domianURL']}`+_url
return url
},
```