Commit a6bbe82f by Lizh

修复TokenHandle中getExpiration()可能为空的判断

parent bdb8936e
......@@ -89,7 +89,6 @@ public class CustomProductInfoServiceImpl implements CustomProductInfoService {
/** 负数 1 */
private static final int NEGATIVE_ONE = -1;
@Override
public IPage<CustomProductInfoPageSnakeVO> pageList(CustomProductInfoQuerySnakeDTO param) {
CustomAsserts.nonNull(param, "分页查询参数不能为空");
......@@ -179,7 +178,7 @@ public class CustomProductInfoServiceImpl implements CustomProductInfoService {
if (param.getId() != null) {
queryWrapper.eq(CustomProductInfoEntity::getId, param.getId());
}
// sku 支持逗号分隔多值 IN 查询, erpPage查询条件 TODO
// sku 支持逗号分隔多值 IN 查询, erpPage查询条件
if (StringUtils.isNotBlank(param.getSku())) {
String[] skuArr = param.getSku().split(",");
if (skuArr.length > MIN_LIST_SIZE) {
......@@ -201,7 +200,7 @@ public class CustomProductInfoServiceImpl implements CustomProductInfoService {
if (StringUtils.isNotBlank(param.getProduct_type())) {
queryWrapper.eq(CustomProductInfoEntity::getProductType, param.getProduct_type());
}
// 货号:逗号分隔多值 IN 查询,单个值模糊 LIKE 查询, erpPage查询条件 TODO
// 货号:逗号分隔多值 IN 查询,单个值模糊 LIKE 查询, erpPage查询条件
if (StringUtils.isNotBlank(param.getProduct_no())) {
String[] productNoArr = param.getProduct_no().split(",");
if (productNoArr.length > MIN_LIST_SIZE) {
......@@ -1161,7 +1160,7 @@ public class CustomProductInfoServiceImpl implements CustomProductInfoService {
* if (productInfo.sales_price_max == null || new Decimal(productInfo.sales_price_max).greaterThan(new Decimal(item.sales_price))) {
* productInfo.sales_price_max = item.sales_price;
* }
*
* <p>
* saveFull 批量保存时使用
*
*/
......
......@@ -12,6 +12,7 @@ import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
......@@ -175,7 +176,11 @@ public class TokenHandle {
Long deptId = claims.get("deptId", Long.class);
LoginUser loginUser = new LoginUser(userId, deptId, username);
loginUser.setExpireTime(claims.getExpiration().getTime());
// getExpiration() 在 JWT 无 exp claim 时返回 null,需判空避免 NPE
Date expiration = claims.getExpiration();
if (expiration != null) {
loginUser.setExpireTime(expiration.getTime());
}
loginUser.setPermissions(parsePermissionsFromClaims(claims));
log.debug("从 JWT claims 构建用户[{}]信息,权限数: {}", username, loginUser.getPermissions().size());
......
package com.jomalls.custom.integrate.service;
import com.jomalls.custom.enums.CodeEnum;
import com.jomalls.custom.integrate.client.RemoteApiClient;
import com.jomalls.custom.integrate.model.CategoryInfoModel;
import com.jomalls.custom.integrate.model.PropertyModel;
import com.jomalls.custom.integrate.model.SaasAdminApiResponseModel;
import com.jomalls.custom.security.LoginUser;
import com.jomalls.custom.security.SecurityUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import lombok.extern.slf4j.Slf4j;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;
/**
* 商品分类服务
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment