package com.iplatform.report.support; import com.iplatform.base.VariableConstants; import com.iplatform.base.util.TokenUtils; import com.walker.web.TokenException; import com.walker.web.TokenGenerator; import org.jeecg.modules.jmreport.api.JmReportTokenServiceI; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * 开源积木报表鉴权配置,实现报表接口。 * @date 2023-03-09 */ public class JimuReportTokenService implements JmReportTokenServiceI { protected final transient Logger logger = LoggerFactory.getLogger(this.getClass()); @Override public String getUsername(String token) { // String loginId = this.getLoginId(token); // if(StringUtils.isEmpty(loginId)){ // return StringUtils.EMPTY_STRING; // } // logger.debug("loginId = {}", loginId); // return loginId; return "admin"; } @Override public Boolean verifyToken(String token) { logger.debug("report verifyToken(token), token={}", token); String loginId = this.getLoginId(token); if(loginId != null){ // 这里可以根据用户登录id,查询是否具有管理报表的权限 // 暂时未实现。2023-03-09 logger.debug("......... loginId={}", loginId); return true; } return false; } public void setTokenGenerator(TokenGenerator tokenGenerator) { this.tokenGenerator = tokenGenerator; } private String getLoginId(String token){ try { String data = tokenGenerator.validateToken(token, VariableConstants.TOKEN_SECRET); String[] userIdAndKey = TokenUtils.getUserIdAndKey(data); return userIdAndKey[1]; } catch (TokenException e) { e.printStackTrace(); return null; // throw new RuntimeException(e); } } private TokenGenerator tokenGenerator; }