Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop into feature/pg

# Conflicts:
#	framework/src/main/java/cn/lili/common/security/filter/XssHttpServletRequestWrapper.java
This commit is contained in:
paulGao 2021-11-16 16:58:41 +08:00
commit a843081663
6 changed files with 40 additions and 8 deletions

View File

@ -29,7 +29,13 @@ import java.util.Map;
*/ */
public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper { public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper {
private static final String[] ignoreField = {"logo", "url", "photo", "intro", "content", "name", "image"};
/**
* xss过滤参数
*
* @todo 这里的参数应该更智能些例如iv前端的参数包含这两个字母就会放过这是有问题的
*/
private static final String[] IGNORE_FIELD = {"logo", "url", "photo", "intro", "content", "name", "image", "encrypted", "iv","mail"};
public XssHttpServletRequestWrapper(HttpServletRequest request) { public XssHttpServletRequestWrapper(HttpServletRequest request) {
super(request); super(request);
@ -227,7 +233,7 @@ public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper {
* @return 参数值 * @return 参数值
*/ */
private String filterXss(String name, String value) { private String filterXss(String name, String value) {
if (CharSequenceUtil.containsAny(name.toLowerCase(Locale.ROOT), ignoreField)) { if (CharSequenceUtil.containsAny(name.toLowerCase(Locale.ROOT), IGNORE_FIELD)) {
// 忽略的处理过滤敏感字符 // 忽略的处理过滤敏感字符
return HtmlUtil.unescape(HtmlUtil.filter(value)); return HtmlUtil.unescape(HtmlUtil.filter(value));
} else { } else {

View File

@ -4,16 +4,15 @@ import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import cn.lili.cache.Cache; import cn.lili.cache.Cache;
import cn.lili.cache.CachePrefix; import cn.lili.cache.CachePrefix;
import cn.lili.common.context.ThreadContextHolder;
import cn.lili.common.enums.ClientTypeEnum;
import cn.lili.common.enums.ResultCode; import cn.lili.common.enums.ResultCode;
import cn.lili.common.exception.ServiceException; import cn.lili.common.exception.ServiceException;
import cn.lili.common.security.AuthUser; import cn.lili.common.security.AuthUser;
import cn.lili.common.security.context.UserContext; import cn.lili.common.security.context.UserContext;
import cn.lili.common.security.token.Token; import cn.lili.common.security.token.Token;
import cn.lili.modules.member.token.MemberTokenGenerate;
import cn.lili.common.utils.CookieUtil; import cn.lili.common.utils.CookieUtil;
import cn.lili.common.utils.StringUtils; import cn.lili.common.utils.StringUtils;
import cn.lili.common.context.ThreadContextHolder;
import cn.lili.common.enums.ClientTypeEnum;
import cn.lili.modules.connect.entity.Connect; import cn.lili.modules.connect.entity.Connect;
import cn.lili.modules.connect.entity.dto.ConnectAuthUser; import cn.lili.modules.connect.entity.dto.ConnectAuthUser;
import cn.lili.modules.connect.entity.dto.WechatMPLoginParams; import cn.lili.modules.connect.entity.dto.WechatMPLoginParams;
@ -22,6 +21,7 @@ import cn.lili.modules.connect.mapper.ConnectMapper;
import cn.lili.modules.connect.service.ConnectService; import cn.lili.modules.connect.service.ConnectService;
import cn.lili.modules.member.entity.dos.Member; import cn.lili.modules.member.entity.dos.Member;
import cn.lili.modules.member.service.MemberService; import cn.lili.modules.member.service.MemberService;
import cn.lili.modules.member.token.MemberTokenGenerate;
import cn.lili.modules.system.entity.dos.Setting; import cn.lili.modules.system.entity.dos.Setting;
import cn.lili.modules.system.entity.dto.connect.WechatConnectSetting; import cn.lili.modules.system.entity.dto.connect.WechatConnectSetting;
import cn.lili.modules.system.entity.dto.connect.dto.WechatConnectSettingItem; import cn.lili.modules.system.entity.dto.connect.dto.WechatConnectSettingItem;
@ -309,6 +309,8 @@ public class ConnectServiceImpl extends ServiceImpl<ConnectMapper, Connect> impl
* @return 用户信息 * @return 用户信息
*/ */
public JSONObject getUserInfo(String encryptedData, String sessionKey, String iv) { public JSONObject getUserInfo(String encryptedData, String sessionKey, String iv) {
log.info("encryptedData:{},sessionKey:{},iv:{}", encryptedData, sessionKey, iv);
//被加密的数据 //被加密的数据
byte[] dataByte = Base64.getDecoder().decode(encryptedData); byte[] dataByte = Base64.getDecoder().decode(encryptedData);
//加密秘钥 //加密秘钥

View File

@ -84,5 +84,9 @@ public class MemberVO implements Serializable {
@ApiModelProperty(value = "经验值数量") @ApiModelProperty(value = "经验值数量")
private Long experience; private Long experience;
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建时间", hidden = true)
private Date createTime;
} }

View File

@ -18,7 +18,10 @@ import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.*; import javax.validation.constraints.Email;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.util.Date; import java.util.Date;
/** /**
@ -180,11 +183,28 @@ public class StoreDetail extends BaseIdEntity {
public StoreDetail(Store store, AdminStoreApplyDTO adminStoreApplyDTO) { public StoreDetail(Store store, AdminStoreApplyDTO adminStoreApplyDTO) {
this.storeId = store.getId(); this.storeId = store.getId();
//过滤字段值
isNotNull(adminStoreApplyDTO);
//设置店铺公司信息设置店铺银行信息设置店铺其他信息 //设置店铺公司信息设置店铺银行信息设置店铺其他信息
BeanUtil.copyProperties(adminStoreApplyDTO, this); BeanUtil.copyProperties(adminStoreApplyDTO, this);
this.settlementDay = DateUtil.date(); this.settlementDay = DateUtil.date();
this.stockWarning = 10; this.stockWarning = 10;
} }
public void isNotNull(AdminStoreApplyDTO adminStoreApplyDTO){
if("null".equals(adminStoreApplyDTO.getSalesConsigneeName())){
adminStoreApplyDTO.setSalesConsigneeName("");
}
if("null".equals(adminStoreApplyDTO.getSalesConsigneeMobile())){
adminStoreApplyDTO.setSalesConsigneeMobile("");
}
if("null".equals(adminStoreApplyDTO.getSalesConsigneeDetail())){
adminStoreApplyDTO.setSalesConsigneeDetail("");
}
if("null".equals(adminStoreApplyDTO.getDdCode())){
adminStoreApplyDTO.setDdCode("");
}
}
} }

View File

@ -75,7 +75,8 @@ public class StoreDetailServiceImpl extends ServiceImpl<StoreDetailMapper, Store
@Override @Override
public StoreDetailVO getStoreDetailVO(String storeId) { public StoreDetailVO getStoreDetailVO(String storeId) {
return this.baseMapper.getStoreDetail(storeId); StoreDetailVO storeDetail = this.baseMapper.getStoreDetail(storeId);
return storeDetail;
} }
@Override @Override

View File

@ -115,7 +115,6 @@ public class StoreServiceImpl extends ServiceImpl<StoreMapper, Store> implements
if (Boolean.TRUE.equals(member.getHaveStore())) { if (Boolean.TRUE.equals(member.getHaveStore())) {
throw new ServiceException(ResultCode.STORE_APPLY_DOUBLE_ERROR); throw new ServiceException(ResultCode.STORE_APPLY_DOUBLE_ERROR);
} }
//添加店铺 //添加店铺
Store store = new Store(member, adminStoreApplyDTO); Store store = new Store(member, adminStoreApplyDTO);
this.save(store); this.save(store);