mirror of
https://gitee.com/gz-yami/mall4j.git
synced 2026-03-22 01:17:15 +08:00
升级springboot4,jackson3,移除spring-cloud-commons、fastjson依赖
This commit is contained in:
@@ -1,4 +0,0 @@
|
||||
### 1.0.0
|
||||
|
||||
*2019-07-02*
|
||||
|
||||
25
pom.xml
25
pom.xml
@@ -21,8 +21,8 @@
|
||||
<yami.shop.version>0.0.1-SNAPSHOT</yami.shop.version>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||
<maven.compiler.plugin.version>3.12.0</maven.compiler.plugin.version>
|
||||
<spring-boot.version>3.4.7</spring-boot.version>
|
||||
<maven.compiler.plugin.version>3.15.0</maven.compiler.plugin.version>
|
||||
<spring-boot.version>4.0.3</spring-boot.version>
|
||||
<java.version>17</java.version>
|
||||
<guava.version>33.4.0-jre</guava.version>
|
||||
<hutool.version>5.8.35</hutool.version>
|
||||
@@ -31,18 +31,15 @@
|
||||
<qiniu.version>7.12.1</qiniu.version>
|
||||
<aliyun-core.version>4.3.9</aliyun-core.version>
|
||||
<aliyun-dysmsapi.version>1.1.0</aliyun-dysmsapi.version>
|
||||
<mybatis-plus.version>3.5.10.1</mybatis-plus.version>
|
||||
<redisson.version>3.44.0</redisson.version>
|
||||
<mybatis-plus.version>3.5.16</mybatis-plus.version>
|
||||
<redisson.version>4.3.0</redisson.version>
|
||||
<transmittable-thread-local.version>2.14.5</transmittable-thread-local.version>
|
||||
<log4j.version>2.19.0</log4j.version>
|
||||
<knife4j.version>4.5.0</knife4j.version>
|
||||
<xxl-job.version>2.4.2</xxl-job.version>
|
||||
<spring-cloud-commons.version>4.2.0</spring-cloud-commons.version>
|
||||
<satoken.version>1.44.0</satoken.version>
|
||||
<fastjson.version>1.2.83</fastjson.version>
|
||||
<mybatis-spring.version>3.0.3</mybatis-spring.version>
|
||||
<!--这个是为了兼容springboot 3.4,knife4j更新这个大于2.7的版本就可以考虑删除掉-->
|
||||
<springdoc.version>2.8.4</springdoc.version>
|
||||
<springdoc.version>3.0.2</springdoc.version>
|
||||
</properties>
|
||||
|
||||
<dependencyManagement>
|
||||
@@ -54,11 +51,6 @@
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.mybatis</groupId>
|
||||
<artifactId>mybatis-spring</artifactId>
|
||||
<version>${mybatis-spring.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.aliyun</groupId>
|
||||
<artifactId>aliyun-java-sdk-core</artifactId>
|
||||
@@ -127,11 +119,6 @@
|
||||
<artifactId>xxl-job-core</artifactId>
|
||||
<version>${xxl-job.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-commons</artifactId>
|
||||
<version>${spring-cloud-commons.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
|
||||
@@ -148,7 +135,7 @@
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
<artifactId>spring-boot-starter-webmvc</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.github.xiaoymin</groupId>
|
||||
|
||||
@@ -35,10 +35,6 @@
|
||||
<groupId>com.xuxueli</groupId>
|
||||
<artifactId>xxl-job-core</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-commons</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
|
||||
|
||||
@@ -9,12 +9,12 @@
|
||||
*/
|
||||
package com.yami.shop.admin.config;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
|
||||
import com.yami.shop.common.util.IpHelper;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.cloud.commons.util.InetUtils;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
@@ -43,8 +43,8 @@ public class XxlJobConfig {
|
||||
@Value("${server.port}")
|
||||
private int port;
|
||||
|
||||
@Autowired
|
||||
private InetUtils inetUtils;
|
||||
@Value("${xxl-job.local.ip:}")
|
||||
private String localIp;
|
||||
|
||||
// @Bean
|
||||
// public XxlJobSpringExecutor xxlJobExecutor() {
|
||||
@@ -52,13 +52,16 @@ public class XxlJobConfig {
|
||||
// logger.info(">>>>>>>>>>> xxl-job config init.");
|
||||
// XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
|
||||
// xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
|
||||
// xxlJobSpringExecutor.setAppname("mall4j");
|
||||
// // 针对多网卡、容器内部署等情况,可借助 "spring-cloud-commons" 提供的 "InetUtils" 组件灵活定制注册IP
|
||||
// xxlJobSpringExecutor.setIp(inetUtils.findFirstNonLoopbackAddress().getHostAddress());
|
||||
// xxlJobSpringExecutor.setAppname("mall4j-bbc");
|
||||
// if (StrUtil.isNotBlank(localIp)) {
|
||||
// xxlJobSpringExecutor.setIp(localIp);
|
||||
// } else {
|
||||
// xxlJobSpringExecutor.setIp(IpHelper.getLocalIp());
|
||||
// }
|
||||
// xxlJobSpringExecutor.setPort(port + 1000);
|
||||
// xxlJobSpringExecutor.setAccessToken(accessToken);
|
||||
// xxlJobSpringExecutor.setLogPath(logPath);
|
||||
// xxlJobSpringExecutor.setLogRetentionDays(3);
|
||||
// xxlJobSpringExecutor.setLogRetentionDays(7);
|
||||
// return xxlJobSpringExecutor;
|
||||
// }
|
||||
|
||||
|
||||
@@ -256,8 +256,8 @@ public class OrderController {
|
||||
* 如果需要合并的话,就合并
|
||||
*/
|
||||
private void mergeIfNeed(ExcelWriter writer, int firstRow, int lastRow, int firstColumn, int lastColumn, Object content) {
|
||||
if (content instanceof Date) {
|
||||
content = DateUtil.format((Date) content, DatePattern.NORM_DATETIME_PATTERN);
|
||||
if (content instanceof Date date) {
|
||||
content = DateUtil.format(date, DatePattern.NORM_DATETIME_PATTERN);
|
||||
}
|
||||
if (lastRow - firstRow > 0 || lastColumn - firstColumn > 0) {
|
||||
writer.merge(firstRow, lastRow, firstColumn, lastColumn, content, false);
|
||||
|
||||
@@ -10,8 +10,8 @@
|
||||
|
||||
package com.yami.shop.admin.controller;
|
||||
|
||||
import com.fasterxml.jackson.databind.JavaType;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import tools.jackson.databind.JavaType;
|
||||
import tools.jackson.databind.ObjectMapper;
|
||||
import com.yami.shop.bean.model.ProdComm;
|
||||
import com.yami.shop.common.annotation.SysLog;
|
||||
import com.yami.shop.common.util.Json;
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
package com.yami.shop.bean.app.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import tools.jackson.databind.annotation.JsonSerialize;
|
||||
import com.yami.shop.common.serializer.json.ImgJsonSerializer;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
package com.yami.shop.bean.app.dto;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import tools.jackson.databind.annotation.JsonSerialize;
|
||||
import com.yami.shop.common.serializer.json.ImgJsonSerializer;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
package com.yami.shop.bean.app.dto;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import tools.jackson.databind.annotation.JsonSerialize;
|
||||
import com.yami.shop.common.serializer.json.ImgJsonSerializer;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
package com.yami.shop.bean.app.dto;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import tools.jackson.databind.annotation.JsonSerialize;
|
||||
import com.yami.shop.common.serializer.json.ImgJsonSerializer;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
package com.yami.shop.bean.app.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import tools.jackson.databind.annotation.JsonSerialize;
|
||||
import com.yami.shop.common.serializer.json.ImgJsonSerializer;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
package com.yami.shop.bean.app.dto;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import tools.jackson.databind.annotation.JsonSerialize;
|
||||
import com.yami.shop.bean.model.Transport;
|
||||
import com.yami.shop.common.serializer.json.ImgJsonSerializer;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
package com.yami.shop.bean.app.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import tools.jackson.databind.annotation.JsonSerialize;
|
||||
import com.yami.shop.common.serializer.json.ImgJsonSerializer;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@@ -10,12 +10,13 @@
|
||||
|
||||
package com.yami.shop.bean.app.dto;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import tools.jackson.databind.annotation.JsonSerialize;
|
||||
import com.yami.shop.common.serializer.json.ImgJsonSerializer;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
@@ -27,6 +28,7 @@ import java.util.List;
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class ShopCartItemDto extends ProductItemDto implements Serializable {
|
||||
@Serial
|
||||
private static final long serialVersionUID = -8284981156242930909L;
|
||||
|
||||
@Schema(description = "购物车ID" ,requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
|
||||
@@ -10,11 +10,12 @@
|
||||
|
||||
package com.yami.shop.bean.app.dto;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import tools.jackson.databind.annotation.JsonSerialize;
|
||||
import com.yami.shop.common.serializer.json.ImgJsonSerializer;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
@@ -23,6 +24,7 @@ import java.io.Serializable;
|
||||
@Data
|
||||
public class SkuDto implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 6457261945829470666L;
|
||||
|
||||
@Schema(description = "skuId" ,requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
package com.yami.shop.bean.dto;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import tools.jackson.databind.annotation.JsonSerialize;
|
||||
import com.yami.shop.common.serializer.json.ImgJsonSerializer;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@@ -16,6 +16,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
@@ -25,6 +26,7 @@ import java.util.List;
|
||||
@Data
|
||||
@TableName("tz_area")
|
||||
public class Area implements Serializable {
|
||||
@Serial
|
||||
private static final long serialVersionUID = -6013320537436191451L;
|
||||
@TableId
|
||||
@Schema(description = "地区id" ,requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
|
||||
@@ -13,7 +13,7 @@ package com.yami.shop.bean.model;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import tools.jackson.databind.annotation.JsonSerialize;
|
||||
import com.yami.shop.common.serializer.json.ImgJsonSerializer;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
@@ -13,10 +13,11 @@ package com.yami.shop.bean.model;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import tools.jackson.databind.annotation.JsonSerialize;
|
||||
import com.yami.shop.common.serializer.json.ImgJsonSerializer;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
@@ -26,6 +27,7 @@ import java.util.Date;
|
||||
@Data
|
||||
@TableName("tz_index_img")
|
||||
public class IndexImg implements Serializable {
|
||||
@Serial
|
||||
private static final long serialVersionUID = -3468251351681518798L;
|
||||
/**
|
||||
* 主键
|
||||
|
||||
@@ -16,6 +16,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
@@ -28,6 +29,7 @@ import java.util.Date;
|
||||
@Data
|
||||
@TableName("tz_notice")
|
||||
public class Notice implements Serializable {
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
|
||||
@@ -16,6 +16,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
@@ -26,6 +27,7 @@ import java.util.List;
|
||||
@Data
|
||||
@TableName("tz_order")
|
||||
public class Order implements Serializable {
|
||||
@Serial
|
||||
private static final long serialVersionUID = 6222259729062826852L;
|
||||
/**
|
||||
* 订单ID
|
||||
|
||||
@@ -15,6 +15,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
@@ -25,6 +26,7 @@ import java.util.Date;
|
||||
@TableName("tz_order_item")
|
||||
public class OrderItem implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 7307405761190788407L;
|
||||
/**
|
||||
* 订单项ID
|
||||
|
||||
@@ -14,13 +14,14 @@ import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import tools.jackson.databind.annotation.JsonSerialize;
|
||||
import com.yami.shop.bean.vo.UserVO;
|
||||
import com.yami.shop.common.serializer.json.ImgJsonSerializer;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
@@ -35,6 +36,7 @@ import java.util.List;
|
||||
@TableName("tz_prod_comm")
|
||||
@EqualsAndHashCode
|
||||
public class ProdComm implements Serializable{
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
|
||||
@@ -17,6 +17,8 @@ import lombok.Data;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
@@ -26,6 +28,7 @@ import java.util.List;
|
||||
@Data
|
||||
@TableName("tz_prod_prop")
|
||||
public class ProdProp implements Serializable {
|
||||
@Serial
|
||||
private static final long serialVersionUID = -8761177918672000191L;
|
||||
|
||||
/**
|
||||
|
||||
@@ -14,6 +14,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
@@ -23,9 +24,10 @@ import java.io.Serializable;
|
||||
@TableName("tz_prod_prop_value")
|
||||
public class ProdPropValue implements Serializable{
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 6604406039354172708L;
|
||||
*
|
||||
*/
|
||||
@Serial
|
||||
private static final long serialVersionUID = 6604406039354172708L;
|
||||
|
||||
/**
|
||||
* 属性值ID
|
||||
|
||||
@@ -15,6 +15,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
@@ -28,6 +29,7 @@ import java.util.Date;
|
||||
@TableName("tz_prod_tag")
|
||||
public class ProdTag implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1991508792679311621L;
|
||||
/**
|
||||
* 分组标签id
|
||||
|
||||
@@ -14,6 +14,8 @@ import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
@@ -26,6 +28,7 @@ import java.util.Date;
|
||||
@Data
|
||||
@TableName("tz_prod_tag_reference")
|
||||
public class ProdTagReference implements Serializable{
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
|
||||
@@ -11,10 +11,11 @@
|
||||
package com.yami.shop.bean.model;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import tools.jackson.databind.annotation.JsonSerialize;
|
||||
import com.yami.shop.common.serializer.json.ImgJsonSerializer;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
@@ -26,6 +27,7 @@ import java.util.List;
|
||||
@TableName("tz_prod")
|
||||
public class Product implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = -4644407386444894349L;
|
||||
/**
|
||||
* 商品ID
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
|
||||
package com.yami.shop.bean.model;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
@@ -21,6 +22,7 @@ import lombok.Data;
|
||||
@Data
|
||||
@TableName("tz_shop_detail")
|
||||
public class ShopDetail implements Serializable{
|
||||
@Serial
|
||||
private static final long serialVersionUID = 3300529542917772262L;
|
||||
/**
|
||||
* 店铺id
|
||||
|
||||
@@ -13,6 +13,7 @@ package com.yami.shop.bean.model;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
@@ -21,6 +22,7 @@ import java.io.Serializable;
|
||||
@Data
|
||||
@TableName("tz_transcity_free")
|
||||
public class TranscityFree implements Serializable {
|
||||
@Serial
|
||||
private static final long serialVersionUID = 2579465286635831076L;
|
||||
/**
|
||||
* 指定条件包邮城市项id
|
||||
|
||||
@@ -16,14 +16,17 @@ import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author lanhai
|
||||
*/
|
||||
@Data
|
||||
@TableName("tz_transfee")
|
||||
public class Transfee implements Serializable {
|
||||
@Serial
|
||||
private static final long serialVersionUID = 8039640964056626028L;
|
||||
/**
|
||||
* 运费项id
|
||||
|
||||
@@ -16,14 +16,17 @@ import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author lanhai
|
||||
*/
|
||||
@Data
|
||||
@TableName("tz_transfee_free")
|
||||
public class TransfeeFree implements Serializable {
|
||||
@Serial
|
||||
private static final long serialVersionUID = -2811714952219888223L;
|
||||
/**
|
||||
* 指定条件包邮项id
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
|
||||
package com.yami.shop.bean.model;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
@@ -22,12 +23,14 @@ import org.springframework.format.annotation.DateTimeFormat;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
|
||||
/**
|
||||
* @author lanhai
|
||||
*/
|
||||
@Data
|
||||
@TableName("tz_transport")
|
||||
public class Transport implements Serializable {
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1876655654053364580L;
|
||||
/**
|
||||
* 运费模板id
|
||||
|
||||
@@ -16,14 +16,17 @@ import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author lanhai
|
||||
*/
|
||||
@Data
|
||||
@TableName("tz_user")
|
||||
public class User implements Serializable {
|
||||
@Serial
|
||||
private static final long serialVersionUID = 2090714647038636896L;
|
||||
/**
|
||||
* ID
|
||||
|
||||
@@ -17,6 +17,7 @@ import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
@@ -30,6 +31,7 @@ import java.util.Date;
|
||||
@TableName("tz_user_addr")
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class UserAddr implements Serializable {
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
|
||||
@@ -14,6 +14,8 @@ import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
@@ -27,6 +29,7 @@ import java.util.Date;
|
||||
@TableName("tz_user_collection")
|
||||
@EqualsAndHashCode
|
||||
public class UserCollection implements Serializable{
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-aop</artifactId>
|
||||
<artifactId>spring-boot-starter-aspectj</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.guava</groupId>
|
||||
@@ -25,7 +25,7 @@
|
||||
<artifactId>hutool-all</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<groupId>tools.jackson.core</groupId>
|
||||
<artifactId>jackson-databind</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
@@ -34,7 +34,7 @@
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.baomidou</groupId>
|
||||
<artifactId>mybatis-plus-boot-starter</artifactId>
|
||||
<artifactId>mybatis-plus-spring-boot4-starter</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.baomidou</groupId>
|
||||
|
||||
@@ -40,11 +40,11 @@ public class DefaultExceptionHandlerConfig {
|
||||
public ResponseEntity<ServerResponseEntity<List<String>>> methodArgumentNotValidExceptionHandler(Exception e) {
|
||||
log.error("methodArgumentNotValidExceptionHandler", e);
|
||||
List<FieldError> fieldErrors = null;
|
||||
if (e instanceof MethodArgumentNotValidException) {
|
||||
fieldErrors = ((MethodArgumentNotValidException) e).getBindingResult().getFieldErrors();
|
||||
if (e instanceof MethodArgumentNotValidException exception) {
|
||||
fieldErrors = exception.getBindingResult().getFieldErrors();
|
||||
}
|
||||
if (e instanceof BindException) {
|
||||
fieldErrors = ((BindException) e).getBindingResult().getFieldErrors();
|
||||
if (e instanceof BindException exception) {
|
||||
fieldErrors = exception.getBindingResult().getFieldErrors();
|
||||
}
|
||||
if (fieldErrors == null) {
|
||||
return ResponseEntity.status(HttpStatus.OK)
|
||||
|
||||
@@ -10,14 +10,6 @@
|
||||
|
||||
package com.yami.shop.common.config;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import com.fasterxml.jackson.databind.DeserializationFeature;
|
||||
import com.fasterxml.jackson.databind.MapperFeature;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.SerializationFeature;
|
||||
import com.fasterxml.jackson.databind.json.JsonMapper;
|
||||
import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
|
||||
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
||||
import org.springframework.cache.CacheManager;
|
||||
import org.springframework.cache.annotation.EnableCaching;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
@@ -28,10 +20,14 @@ import org.springframework.data.redis.cache.RedisCacheWriter;
|
||||
import org.springframework.data.redis.connection.RedisConnectionFactory;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.data.redis.core.StringRedisTemplate;
|
||||
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
|
||||
import org.springframework.data.redis.serializer.GenericJacksonJsonRedisSerializer;
|
||||
import org.springframework.data.redis.serializer.RedisSerializationContext;
|
||||
import org.springframework.data.redis.serializer.RedisSerializer;
|
||||
import org.springframework.data.redis.serializer.StringRedisSerializer;
|
||||
import tools.jackson.databind.DeserializationFeature;
|
||||
import tools.jackson.databind.MapperFeature;
|
||||
import tools.jackson.databind.SerializationFeature;
|
||||
import tools.jackson.databind.cfg.DateTimeFeature;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.util.HashMap;
|
||||
@@ -99,23 +95,29 @@ public class RedisCacheConfig {
|
||||
*/
|
||||
@Bean
|
||||
public RedisSerializer<Object> redisSerializer() {
|
||||
ObjectMapper objectMapper = JsonMapper.builder().disable(MapperFeature.USE_ANNOTATIONS).build();
|
||||
// 反序列化时候遇到不匹配的属性并不抛出异常
|
||||
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
||||
// 序列化时候遇到空对象不抛出异常
|
||||
objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
|
||||
// 反序列化的时候如果是无效子类型,不抛出异常
|
||||
objectMapper.configure(DeserializationFeature.FAIL_ON_INVALID_SUBTYPE, false);
|
||||
// 不使用默认的dateTime进行序列化,
|
||||
objectMapper.configure(SerializationFeature.WRITE_DATE_KEYS_AS_TIMESTAMPS, false);
|
||||
// 使用JSR310提供的序列化类,里面包含了大量的JDK8时间序列化类
|
||||
objectMapper.registerModule(new JavaTimeModule());
|
||||
// 启用反序列化所需的类型信息,在属性中添加@class
|
||||
objectMapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL,
|
||||
JsonTypeInfo.As.PROPERTY);
|
||||
// 配置null值的序列化器
|
||||
GenericJackson2JsonRedisSerializer.registerNullValueSerializer(objectMapper, null);
|
||||
return new GenericJackson2JsonRedisSerializer(objectMapper);
|
||||
return GenericJacksonJsonRedisSerializer.builder()
|
||||
// 尽量兼容旧 GenericJackson2JsonRedisSerializer 的 @class 结构
|
||||
.typePropertyName("@class")
|
||||
// 兼容旧系统:保留宽松 default typing
|
||||
.enableUnsafeDefaultTyping()
|
||||
// 兼容 Spring Cache 的 NullValue
|
||||
.enableSpringCacheNullValueSupport("@class")
|
||||
.customize(mapper -> mapper
|
||||
.disable(MapperFeature.USE_ANNOTATIONS)
|
||||
|
||||
// 1. 反序列化遇到未知属性不报错
|
||||
.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)
|
||||
|
||||
// 2. 序列化空对象不报错
|
||||
.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS)
|
||||
|
||||
// 3. 无效子类型不报错
|
||||
.disable(DeserializationFeature.FAIL_ON_INVALID_SUBTYPE)
|
||||
|
||||
// 4. 不把日期 key 写成时间戳
|
||||
.disable(DateTimeFeature.WRITE_DATE_KEYS_AS_TIMESTAMPS)
|
||||
)
|
||||
.build();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -14,16 +14,19 @@ import com.yami.shop.common.response.ResponseEnum;
|
||||
import com.yami.shop.common.response.ServerResponseEntity;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* @author lanhai
|
||||
*/
|
||||
@Getter
|
||||
public class YamiShopBindException extends RuntimeException{
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = -4137688758944857209L;
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@Serial
|
||||
private static final long serialVersionUID = -4137688758944857209L;
|
||||
|
||||
/**
|
||||
* http状态码
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
package com.yami.shop.common.handler;
|
||||
|
||||
import cn.hutool.core.util.CharsetUtil;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import tools.jackson.databind.ObjectMapper;
|
||||
import com.yami.shop.common.exception.YamiShopBindException;
|
||||
import com.yami.shop.common.response.ServerResponseEntity;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import tools.jackson.core.JacksonException;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.stereotype.Component;
|
||||
@@ -54,7 +56,7 @@ public class HttpHandler {
|
||||
printWriter = response.getWriter();
|
||||
printWriter.write(objectMapper.writeValueAsString(serverResponseEntity));
|
||||
}
|
||||
catch (IOException e) {
|
||||
catch (JacksonException | IOException e) {
|
||||
throw new YamiShopBindException("io 异常", e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,11 +11,12 @@
|
||||
package com.yami.shop.common.serializer.json;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.fasterxml.jackson.core.JsonGenerator;
|
||||
import com.fasterxml.jackson.databind.JsonSerializer;
|
||||
import com.fasterxml.jackson.databind.SerializerProvider;
|
||||
import tools.jackson.core.JsonGenerator;
|
||||
import com.yami.shop.common.bean.Qiniu;
|
||||
import com.yami.shop.common.util.ImgUploadUtil;
|
||||
import tools.jackson.databind.SerializationContext;
|
||||
import tools.jackson.databind.ValueSerializer;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@@ -28,7 +29,7 @@ import java.util.regex.Pattern;
|
||||
* @author lanhai
|
||||
*/
|
||||
@Component
|
||||
public class ImgJsonSerializer extends JsonSerializer<String> {
|
||||
public class ImgJsonSerializer extends ValueSerializer<String> {
|
||||
|
||||
@Autowired
|
||||
private Qiniu qiniu;
|
||||
@@ -36,7 +37,7 @@ public class ImgJsonSerializer extends JsonSerializer<String> {
|
||||
private ImgUploadUtil imgUploadUtil;
|
||||
|
||||
@Override
|
||||
public void serialize(String value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
|
||||
public void serialize(String value, JsonGenerator gen, SerializationContext serializers) {
|
||||
if (StrUtil.isBlank(value)) {
|
||||
gen.writeString(StrUtil.EMPTY);
|
||||
return;
|
||||
|
||||
@@ -12,6 +12,11 @@ package com.yami.shop.common.util;
|
||||
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
|
||||
import java.net.InetAddress;
|
||||
import java.net.NetworkInterface;
|
||||
import java.net.SocketException;
|
||||
import java.util.Enumeration;
|
||||
|
||||
/**
|
||||
* IP帮助工具
|
||||
* @author lanhai
|
||||
@@ -43,5 +48,26 @@ public class IpHelper {
|
||||
return ips[0].trim();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取本地IP
|
||||
* @return
|
||||
*/
|
||||
public static String getLocalIp() {
|
||||
try {
|
||||
Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
|
||||
while (networkInterfaces.hasMoreElements()) {
|
||||
NetworkInterface networkInterface = networkInterfaces.nextElement();
|
||||
Enumeration<InetAddress> inetAddresses = networkInterface.getInetAddresses();
|
||||
while (inetAddresses.hasMoreElements()) {
|
||||
InetAddress inetAddress = inetAddresses.nextElement();
|
||||
if (inetAddress.isSiteLocalAddress() && !inetAddress.isLoopbackAddress() && inetAddress.getHostAddress().indexOf(":") == -1) {
|
||||
return inetAddress.getHostAddress();
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (SocketException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return "127.0.0.1";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,14 +11,15 @@
|
||||
package com.yami.shop.common.util;
|
||||
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.core.json.JsonWriteFeature;
|
||||
import com.fasterxml.jackson.databind.DeserializationFeature;
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.SerializationFeature;
|
||||
import tools.jackson.core.json.JsonWriteFeature;
|
||||
import tools.jackson.databind.*;
|
||||
import tools.jackson.core.JacksonException;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import tools.jackson.databind.cfg.EnumFeature;
|
||||
import tools.jackson.databind.json.JsonMapper;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
@@ -30,21 +31,30 @@ import java.util.List;
|
||||
@Slf4j
|
||||
public class Json {
|
||||
|
||||
private static ObjectMapper objectMapper = new ObjectMapper();
|
||||
public static JsonMapper.Builder newBaseBuilder() {
|
||||
return JsonMapper.builder()
|
||||
.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS)
|
||||
.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)
|
||||
// 兼容 Jackson 2 的宽松行为,允许 null 映射到基础类型并使用其默认值。
|
||||
.disable(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES)
|
||||
.disable(SerializationFeature.FAIL_ON_SELF_REFERENCES)
|
||||
.enable(SerializationFeature.WRITE_SELF_REFERENCES_AS_NULL)
|
||||
.disable(EnumFeature.FAIL_ON_NUMBERS_FOR_ENUMS)
|
||||
.changeDefaultVisibility(vc -> vc
|
||||
.withFieldVisibility(JsonAutoDetect.Visibility.ANY)
|
||||
.withGetterVisibility(JsonAutoDetect.Visibility.NONE)
|
||||
.withIsGetterVisibility(JsonAutoDetect.Visibility.NONE)
|
||||
.withSetterVisibility(JsonAutoDetect.Visibility.NONE)
|
||||
.withCreatorVisibility(JsonAutoDetect.Visibility.NONE));
|
||||
// 如果你想尽量贴近 Jackson 2 默认行为,可再补:
|
||||
// .disable(DeserializationFeature.FAIL_ON_TRAILING_TOKENS)
|
||||
}
|
||||
|
||||
static {
|
||||
// 如果为空则不输出
|
||||
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY);
|
||||
// 对于空的对象转json的时候不抛出错误
|
||||
objectMapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);
|
||||
// 禁用序列化日期为timestamps
|
||||
objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
|
||||
// 禁用遇到未知属性抛出异常
|
||||
objectMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
|
||||
// 取消对非ASCII字符的转码
|
||||
objectMapper.configure(JsonWriteFeature.ESCAPE_NON_ASCII.mappedFeature(), false);
|
||||
|
||||
}
|
||||
/**
|
||||
* 普通用途:深拷贝、parseObject、mapAsList
|
||||
*/
|
||||
private static final ObjectMapper objectMapper =
|
||||
newBaseBuilder().build();
|
||||
|
||||
/**
|
||||
* 对象转json
|
||||
@@ -54,7 +64,7 @@ public class Json {
|
||||
public static String toJsonString(Object object) {
|
||||
try {
|
||||
return objectMapper.writeValueAsString(object);
|
||||
} catch (JsonProcessingException e) {
|
||||
} catch (JacksonException e) {
|
||||
log.error("对象转json错误:", e);
|
||||
}
|
||||
return null;
|
||||
|
||||
@@ -65,8 +65,8 @@ public class XssWrapper extends HttpServletRequestWrapper {
|
||||
@Override
|
||||
public Object getAttribute(String name) {
|
||||
Object value = super.getAttribute(name);
|
||||
if (value instanceof String && StrUtil.isNotBlank((String) value)) {
|
||||
return cleanXss((String) value);
|
||||
if (value instanceof String string && StrUtil.isNotBlank(string)) {
|
||||
return cleanXss(string);
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
@@ -40,11 +40,6 @@
|
||||
<artifactId>sa-token-redis-jackson</artifactId>
|
||||
<version>${satoken.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>fastjson</artifactId>
|
||||
<version>${fastjson.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
package com.yami.shop.security.common.adapter;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.security.config.Customizer;
|
||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
||||
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
||||
import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer;
|
||||
import org.springframework.security.config.http.SessionCreationPolicy;
|
||||
import org.springframework.security.web.SecurityFilterChain;
|
||||
import org.springframework.stereotype.Component;
|
||||
@@ -14,17 +17,29 @@ import org.springframework.web.cors.CorsUtils;
|
||||
* @date 2022/3/25 17:33
|
||||
*/
|
||||
@Component
|
||||
@Configuration
|
||||
@EnableWebSecurity
|
||||
public class MallWebSecurityConfigurerAdapter {
|
||||
@Bean
|
||||
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception{
|
||||
// We don't need CSRF for token based authentication
|
||||
return http.csrf().disable().cors()
|
||||
.and().sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
|
||||
.and().authorizeRequests().requestMatchers(CorsUtils::isPreFlightRequest).permitAll()
|
||||
.and()
|
||||
.authorizeRequests().requestMatchers(
|
||||
"/**").permitAll().and().build();
|
||||
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
|
||||
return http
|
||||
// 禁用basic明文验证
|
||||
.httpBasic(AbstractHttpConfigurer::disable)
|
||||
// 需要跨域的配置 参考cors config
|
||||
.cors(Customizer.withDefaults())
|
||||
// 前后端分离架构不需要csrf保护
|
||||
.csrf(AbstractHttpConfigurer::disable)
|
||||
// 禁用默认登录页
|
||||
.formLogin(AbstractHttpConfigurer::disable)
|
||||
// 禁用默认登出页
|
||||
.logout(AbstractHttpConfigurer::disable)
|
||||
// 前后端分离是无状态的,不需要session了,直接禁用。
|
||||
.sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
|
||||
// 允许所有请求
|
||||
.authorizeHttpRequests(authorizeHttpRequests -> authorizeHttpRequests
|
||||
.requestMatchers(CorsUtils::isPreFlightRequest).permitAll()
|
||||
.requestMatchers("/**").permitAll())
|
||||
.build();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -108,8 +108,8 @@ public class AuthFilter implements Filter {
|
||||
|
||||
}catch (Exception e) {
|
||||
// 手动捕获下非controller异常
|
||||
if (e instanceof YamiShopBindException) {
|
||||
httpHandler.printServerResponseToWeb((YamiShopBindException) e);
|
||||
if (e instanceof YamiShopBindException exception) {
|
||||
httpHandler.printServerResponseToWeb(exception);
|
||||
} else {
|
||||
throw e;
|
||||
}
|
||||
|
||||
@@ -11,10 +11,10 @@ package com.yami.shop.security.common.manager;
|
||||
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.yami.shop.common.constants.OauthCacheNames;
|
||||
import com.yami.shop.common.exception.YamiShopBindException;
|
||||
import com.yami.shop.common.response.ResponseEnum;
|
||||
import com.yami.shop.common.util.Json;
|
||||
import com.yami.shop.security.common.bo.TokenInfoBO;
|
||||
import com.yami.shop.security.common.bo.UserInfoInTokenBO;
|
||||
import com.yami.shop.security.common.enums.SysTypeEnum;
|
||||
@@ -63,7 +63,7 @@ public class TokenStore {
|
||||
redisTemplate.delete(keyName);
|
||||
redisTemplate.opsForValue().set(
|
||||
keyName,
|
||||
JSON.toJSONString(userInfoInToken),
|
||||
Json.toJsonString(userInfoInToken),
|
||||
timeoutSecond,
|
||||
TimeUnit.SECONDS
|
||||
);
|
||||
@@ -110,7 +110,7 @@ public class TokenStore {
|
||||
if (redisCache == null) {
|
||||
throw new YamiShopBindException(ResponseEnum.UNAUTHORIZED,"登录过期,请重新登录");
|
||||
}
|
||||
return JSON.parseObject(redisCache.toString(), UserInfoInTokenBO.class);
|
||||
return Json.parseObject(redisCache.toString(), UserInfoInTokenBO.class);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -14,6 +14,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
@@ -25,7 +26,8 @@ import java.util.Date;
|
||||
@Data
|
||||
@TableName("tz_sys_log")
|
||||
public class SysLog implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
@TableId
|
||||
private Long id;
|
||||
/**
|
||||
|
||||
@@ -18,6 +18,8 @@ import lombok.Data;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
@@ -28,7 +30,8 @@ import java.util.List;
|
||||
@Data
|
||||
@TableName("tz_sys_menu")
|
||||
public class SysMenu implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 菜单ID
|
||||
|
||||
@@ -18,6 +18,8 @@ import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
@@ -29,7 +31,8 @@ import java.util.List;
|
||||
@Data
|
||||
@TableName("tz_sys_role")
|
||||
public class SysRole implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 角色ID
|
||||
|
||||
@@ -15,6 +15,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
@@ -24,7 +25,8 @@ import java.io.Serializable;
|
||||
@Data
|
||||
@TableName("tz_sys_role_menu")
|
||||
public class SysRoleMenu implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
@TableId
|
||||
private Long id;
|
||||
|
||||
|
||||
@@ -22,6 +22,8 @@ import jakarta.validation.constraints.Email;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.Pattern;
|
||||
import jakarta.validation.constraints.Size;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
@@ -33,7 +35,8 @@ import java.util.List;
|
||||
@Data
|
||||
@TableName("tz_sys_user")
|
||||
public class SysUser implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
|
||||
@@ -15,6 +15,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
@@ -24,7 +25,8 @@ import java.io.Serializable;
|
||||
@Data
|
||||
@TableName("tz_sys_user_role")
|
||||
public class SysUserRole implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
@TableId
|
||||
private Long id;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user