package com.iplatform.base.support; import com.iplatform.base.VariableConstants; import com.iplatform.base.util.TokenUtils; import com.walker.infrastructure.utils.StringUtils; import com.walker.web.TokenException; import com.walker.web.TokenGenerator; import com.walker.web.interceptor.WebOperationInterceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * 平台基本操作拦截器,主要针对界面操作。 * @author 时克英 * @date 2023-03-09 */ public class PlatformOperationInterceptor extends WebOperationInterceptor { @Override protected boolean doPreHandleOther(String servletPath, HttpServletRequest request, HttpServletResponse response){ return this.checkReportView4Jim(servletPath, request); } private boolean checkReportView4Jim(String servletPath, HttpServletRequest request){ if(servletPath.indexOf(REPORT_VIEW_JIM) >= 0){ // 获取token验证 String token = TokenUtils.getAuthorizationToken(request, REPORT_TOKEN_NAME); if(StringUtils.isEmpty(token)){ logger.debug("-----> token 为空"); return false; } String data = null; try { data = tokenGenerator.validateToken(token, VariableConstants.TOKEN_SECRET); String[] userIdAndKey = TokenUtils.getUserIdAndKey(data); String loginId = userIdAndKey[1]; return true; } catch (TokenException e) { logger.error("查看报表token验证错误:" + e.getMessage(), e); return false; } } return true; } public void setTokenGenerator(TokenGenerator tokenGenerator) { this.tokenGenerator = tokenGenerator; } private TokenGenerator tokenGenerator; private static final String REPORT_VIEW_JIM = "/jmreport/view/"; private static final String REPORT_TOKEN_NAME = "token"; }