package com.dragoninfo.dcuc.authweb.util; import cn.hutool.core.util.StrUtil; import com.auth0.jwt.JWT; import com.auth0.jwt.interfaces.DecodedJWT; import com.dragoninfo.dcuc.common.Constants; import com.dragonsoft.duceap.commons.util.string.StringUtils; import javax.servlet.http.HttpServletRequest; /** * @author mazq * @date 2023/3/7 */ public class HeadTokenUtils { public static String getIdcard(HttpServletRequest request) { // 获取基础凭据 String idcard = request.getHeader(Constants.IDCARD); // 获取总线的IDCARD if (StrUtil.isBlank(idcard)) { idcard = request.getHeader(Constants.BUS_SRE_IDCARD); } // 获取令牌中的身份证号 if (StringUtils.isBlank(idcard)) { String userToken = getUserToken(request); if (StringUtils.isNotBlank(userToken)) { DecodedJWT decode = JWT.decode(userToken); idcard = decode.getClaim("idCard").asString(); } } return idcard; } public static String getAppCode(HttpServletRequest request) { String appCode = request.getHeader(Constants.APP_CODE); if (StrUtil.isBlank(appCode)) { // 获取总线的应用代码 appCode = request.getHeader(Constants.BUS_SRA_ID); } if (StringUtils.isBlank(appCode)) { String appToken = getAppToken(request); DecodedJWT decode = JWT.decode(appToken); appCode = decode.getClaim("appCode").asString(); } return appCode; } public static String getUserToken(HttpServletRequest request) { String userToken = request.getHeader(Constants.DCUC_USER_TOKEN); if (StrUtil.isBlank(userToken)) { // 获取数据总线用户令牌 userToken = request.getHeader(Constants.BUS_SRE_TOKEN); } if (StrUtil.isBlank(userToken)) { userToken = request.getHeader(Constants.USER_TOKEN); } if (StrUtil.isBlank(userToken)) { userToken = request.getHeader(Constants.RZZX_USERTOKEN); } return userToken; } public static String getAppToken(HttpServletRequest request) { String appToken = request.getHeader(Constants.DCUC_APP_TOKEN); if (StrUtil.isBlank(appToken)) { // 获取数据总线应用令牌 appToken = request.getHeader(Constants.BUS_SRA_TOKEN); } if (StrUtil.isBlank(appToken)) { appToken = request.getHeader(Constants.APP_TOKEN); } if (StrUtil.isBlank(appToken)) { appToken = request.getHeader(Constants.RZZX_APPTOKEN); } return appToken; } }