From 4dfe06ffb252676bdb4a1cee817ec9cbf044def6 Mon Sep 17 00:00:00 2001 From: wangyu <727842003@qq.com> Date: Tue, 25 Jun 2024 10:49:11 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=8D=87=E7=BA=A7Date?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/record/ApproveRecordListVo.java | 3 +- .../approval/domain/todo/ApprovalListVo.java | 3 +- .../framework/backup/domain/Version.java | 4 +-- .../backup/scheduler/BackupScheduler.java | 9 ++--- .../framework/context/DateContext.java | 17 ++++++++++ .../query/spi/QueryChainFactory.java | 22 ------------- .../framework/domain/base/AuditDomain.java | 6 ++-- .../flyfish/framework/domain/base/IUser.java | 6 ++-- .../com/flyfish/framework/domain/po/User.java | 5 +-- flyfish-data/flyfish-data-r2dbc/pom.xml | 5 +++ .../r2dbc/config/R2dbcDataConfig.java | 5 +-- .../config/annotations/EnableR2dbcRepo.java | 2 -- .../framework/r2dbc/R2DbcRepositoryTest.java | 33 +++++++++++++++++++ .../framework/r2dbc/repository/TestDO.java | 11 +++++++ .../framework/r2dbc/repository/TestQO.java | 7 ++++ .../r2dbc/repository/TestRepository.java | 9 +++++ .../src/test/resources/applicaiton.yml | 5 +++ .../flyfish/framework/logging/domain/Log.java | 6 ++-- .../framework/logging/service/LogManager.java | 6 ++-- .../service/SimpleAuthenticationLogger.java | 6 ++-- .../config/AuthenticationAuditorImpl.java | 4 +-- .../framework/domain/AdminUserDetails.java | 5 +-- .../configuration/jwt/TokenProvider.java | 20 +++++------ lombok.config | 4 +++ pom.xml | 2 +- 25 files changed, 139 insertions(+), 66 deletions(-) delete mode 100644 flyfish-data/flyfish-data-common/src/main/java/com/flyfish/framework/query/spi/QueryChainFactory.java create mode 100644 flyfish-data/flyfish-data-r2dbc/src/test/java/com/flyfish/framework/r2dbc/R2DbcRepositoryTest.java create mode 100644 flyfish-data/flyfish-data-r2dbc/src/test/java/com/flyfish/framework/r2dbc/repository/TestDO.java create mode 100644 flyfish-data/flyfish-data-r2dbc/src/test/java/com/flyfish/framework/r2dbc/repository/TestQO.java create mode 100644 flyfish-data/flyfish-data-r2dbc/src/test/java/com/flyfish/framework/r2dbc/repository/TestRepository.java create mode 100644 flyfish-data/flyfish-data-r2dbc/src/test/resources/applicaiton.yml create mode 100644 lombok.config diff --git a/flyfish-approval/src/main/java/com/flyfish/framework/approval/domain/record/ApproveRecordListVo.java b/flyfish-approval/src/main/java/com/flyfish/framework/approval/domain/record/ApproveRecordListVo.java index f2805ab..c1ec7ca 100644 --- a/flyfish-approval/src/main/java/com/flyfish/framework/approval/domain/record/ApproveRecordListVo.java +++ b/flyfish-approval/src/main/java/com/flyfish/framework/approval/domain/record/ApproveRecordListVo.java @@ -5,6 +5,7 @@ import com.flyfish.framework.approval.enums.ApproveAction; import com.flyfish.framework.domain.base.Vo; import lombok.Data; +import java.time.LocalDateTime; import java.util.Date; import java.util.Optional; @@ -23,7 +24,7 @@ public class ApproveRecordListVo implements Vo { private String approver; @JsonFormat(pattern = "yyyy-MM-dd HH:mm") - private Date approveTime; + private LocalDateTime approveTime; private String action; diff --git a/flyfish-approval/src/main/java/com/flyfish/framework/approval/domain/todo/ApprovalListVo.java b/flyfish-approval/src/main/java/com/flyfish/framework/approval/domain/todo/ApprovalListVo.java index 70ee8c2..3abcf3d 100644 --- a/flyfish-approval/src/main/java/com/flyfish/framework/approval/domain/todo/ApprovalListVo.java +++ b/flyfish-approval/src/main/java/com/flyfish/framework/approval/domain/todo/ApprovalListVo.java @@ -5,6 +5,7 @@ import com.flyfish.framework.approval.domain.record.ApproveRecord; import com.flyfish.framework.domain.base.Vo; import lombok.Data; +import java.time.LocalDateTime; import java.util.Date; /** @@ -24,7 +25,7 @@ public class ApprovalListVo implements Vo { private String dataId; @JsonFormat(pattern = "yyyy-MM-dd HH:mm") - private Date createTime; + private LocalDateTime createTime; private String creator; diff --git a/flyfish-backup/src/main/java/com/flyfish/framework/backup/domain/Version.java b/flyfish-backup/src/main/java/com/flyfish/framework/backup/domain/Version.java index 3d31c5f..a40a2c1 100644 --- a/flyfish-backup/src/main/java/com/flyfish/framework/backup/domain/Version.java +++ b/flyfish-backup/src/main/java/com/flyfish/framework/backup/domain/Version.java @@ -3,7 +3,7 @@ package com.flyfish.framework.backup.domain; import com.flyfish.framework.annotations.Property; import lombok.Data; -import java.util.Date; +import java.time.LocalDateTime; /** * 版本号实体 @@ -23,5 +23,5 @@ public class Version { private String script; @Property("创建时间") - private Date time; + private LocalDateTime time; } diff --git a/flyfish-backup/src/main/java/com/flyfish/framework/backup/scheduler/BackupScheduler.java b/flyfish-backup/src/main/java/com/flyfish/framework/backup/scheduler/BackupScheduler.java index e67ba12..e3cda02 100644 --- a/flyfish-backup/src/main/java/com/flyfish/framework/backup/scheduler/BackupScheduler.java +++ b/flyfish-backup/src/main/java/com/flyfish/framework/backup/scheduler/BackupScheduler.java @@ -2,6 +2,7 @@ package com.flyfish.framework.backup.scheduler; import com.alibaba.fastjson.JSON; import com.flyfish.framework.backup.domain.Backup; +import com.flyfish.framework.context.DateContext; import com.flyfish.framework.domain.base.DomainService; import com.flyfish.framework.query.Query; import com.flyfish.framework.repository.ReactiveEntityOperations; @@ -28,7 +29,7 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardOpenOption; -import java.util.Date; +import java.time.LocalDateTime; import java.util.List; import java.util.UUID; import java.util.concurrent.atomic.AtomicLong; @@ -82,7 +83,7 @@ public class BackupScheduler { String parent = createIfNotExists(backupPath + "/" + code); // 开始备份,先构造一个指示器 Backup backup = new Backup(); - backup.setCreateTime(new Date()); + backup.setCreateTime(LocalDateTime.now()); backup.setCreator("系统"); backup.setCode(code); backup.setStatus(Backup.Status.RUNNING); @@ -116,7 +117,7 @@ public class BackupScheduler { }) .then(Mono.defer(() -> { backup.setLog("成功备份"); - backup.setPeriod(new Date().getTime() - backup.getCreateTime().getTime()); + backup.setPeriod(DateContext.distance(backup.getCreateTime(), LocalDateTime.now())); backup.setStatus(Backup.Status.SUCCESS); backup.setSize(DataSize.ofBytes(sizeCounter.get()).toKilobytes() + "KB"); return operations.save(backup); @@ -126,7 +127,7 @@ public class BackupScheduler { }, e -> { backup.setStatus(Backup.Status.FAILED); backup.setLog(e.getMessage()); - backup.setPeriod(new Date().getTime() - backup.getCreateTime().getTime()); + backup.setPeriod(DateContext.distance(backup.getCreateTime(), LocalDateTime.now())); operations.save(backup).subscribe(); }); diff --git a/flyfish-common/src/main/java/com/flyfish/framework/context/DateContext.java b/flyfish-common/src/main/java/com/flyfish/framework/context/DateContext.java index aff4623..0556a31 100644 --- a/flyfish-common/src/main/java/com/flyfish/framework/context/DateContext.java +++ b/flyfish-common/src/main/java/com/flyfish/framework/context/DateContext.java @@ -5,6 +5,9 @@ import org.springframework.stereotype.Component; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.time.Instant; +import java.time.LocalDateTime; +import java.time.ZoneId; import java.util.Date; import java.util.HashMap; import java.util.Map; @@ -20,6 +23,7 @@ public class DateContext { private static DateContext instance; private ThreadLocal formatThreadLocal = new ThreadLocal<>(); private ThreadLocal> mapThreadLocal = new ThreadLocal<>(); + private static final ZoneId zoneId = ZoneId.of("Asia/Shanghai"); public DateContext() { instance = this; @@ -29,6 +33,19 @@ public class DateContext { return instance; } + public static LocalDateTime ofMillis(long millis) { + Instant instant = Instant.ofEpochMilli(millis); + return LocalDateTime.ofInstant(instant, zoneId); + } + + public static long toMillis(LocalDateTime localDateTime) { + return localDateTime.atZone(zoneId).toInstant().toEpochMilli(); + } + + public static long distance(LocalDateTime start, LocalDateTime end) { + return toMillis(end) - toMillis(start); + } + public static DateFormat simpleFormat() { DateFormat format = instance.formatThreadLocal.get(); if (format == null) { diff --git a/flyfish-data/flyfish-data-common/src/main/java/com/flyfish/framework/query/spi/QueryChainFactory.java b/flyfish-data/flyfish-data-common/src/main/java/com/flyfish/framework/query/spi/QueryChainFactory.java deleted file mode 100644 index d216822..0000000 --- a/flyfish-data/flyfish-data-common/src/main/java/com/flyfish/framework/query/spi/QueryChainFactory.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.flyfish.framework.query.spi; - -import com.flyfish.framework.query.QueryChain; -import com.flyfish.framework.utils.Supportable; - -/** - * 查询链创建抽象泛型工厂 - * 基于spi提供实现类,最终返回真正实例化的内容 - * 根据引入的jar包自动加载,无需手动处理 - * - * @author wangyu - */ -public interface QueryChainFactory> extends Supportable> { - - /** - * 生产适配器 - * 此接口为高度抽象接口,目的是兼容更多的查询链类型,便于后续扩展 - * - * @return 生产结果 - */ - C produce(); -} diff --git a/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/base/AuditDomain.java b/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/base/AuditDomain.java index 4fde435..a5acc29 100644 --- a/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/base/AuditDomain.java +++ b/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/base/AuditDomain.java @@ -8,7 +8,7 @@ import org.springframework.data.annotation.CreatedDate; import org.springframework.data.annotation.LastModifiedBy; import org.springframework.data.annotation.LastModifiedDate; -import java.util.Date; +import java.time.LocalDateTime; /** * 需要审查的domain(修改和更新指定人) @@ -24,14 +24,14 @@ public abstract class AuditDomain extends Domain { */ @CreatedDate @Property(value = "创建日期", readonly = true) - protected Date createTime; + protected LocalDateTime createTime; /** * 修改日期 */ @LastModifiedDate @Property(value = "更新日期", readonly = true) - protected Date modifyTime; + protected LocalDateTime modifyTime; /** * 创建者 diff --git a/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/base/IUser.java b/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/base/IUser.java index 0a92356..93bb839 100644 --- a/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/base/IUser.java +++ b/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/base/IUser.java @@ -6,7 +6,7 @@ import com.flyfish.framework.domain.po.User; import com.flyfish.framework.enums.UserStatus; import com.flyfish.framework.enums.UserType; -import java.util.Date; +import java.time.LocalDateTime; import java.util.List; public interface IUser { @@ -51,9 +51,9 @@ public interface IUser { void setApp(Boolean app); - Date getValidDate(); + LocalDateTime getValidDate(); - void setValidDate(Date validDate); + void setValidDate(LocalDateTime validDate); List getDepartments(); diff --git a/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/po/User.java b/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/po/User.java index 66d3a0e..3084731 100644 --- a/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/po/User.java +++ b/flyfish-data/flyfish-data-domain/src/main/java/com/flyfish/framework/domain/po/User.java @@ -13,6 +13,7 @@ import org.springframework.data.annotation.Transient; import org.springframework.data.mongodb.core.index.Indexed; import org.springframework.data.mongodb.core.mapping.Document; +import java.time.LocalDateTime; import java.util.Date; import java.util.List; @@ -68,7 +69,7 @@ public class User extends AuditDomain implements IUser { * 有效期 */ @JsonFormat(pattern = "yyyy-MM-dd") - private Date validDate; + private LocalDateTime validDate; /** * 可操作校区 @@ -106,7 +107,7 @@ public class User extends AuditDomain implements IUser { /** * 上次登录日期 */ - private Date lastTime; + private LocalDateTime lastTime; @Override public User toUser() { diff --git a/flyfish-data/flyfish-data-r2dbc/pom.xml b/flyfish-data/flyfish-data-r2dbc/pom.xml index 0a8fde5..fe1f8b7 100644 --- a/flyfish-data/flyfish-data-r2dbc/pom.xml +++ b/flyfish-data/flyfish-data-r2dbc/pom.xml @@ -29,5 +29,10 @@ com.flyfish.framework flyfish-data-common + + org.springframework.boot + spring-boot-starter-test + test + diff --git a/flyfish-data/flyfish-data-r2dbc/src/main/java/com/flyfish/framework/r2dbc/config/R2dbcDataConfig.java b/flyfish-data/flyfish-data-r2dbc/src/main/java/com/flyfish/framework/r2dbc/config/R2dbcDataConfig.java index 810e5aa..3d54e17 100644 --- a/flyfish-data/flyfish-data-r2dbc/src/main/java/com/flyfish/framework/r2dbc/config/R2dbcDataConfig.java +++ b/flyfish-data/flyfish-data-r2dbc/src/main/java/com/flyfish/framework/r2dbc/config/R2dbcDataConfig.java @@ -5,9 +5,10 @@ import com.flyfish.framework.r2dbc.operations.R2dbcReactiveEntityOperations; import com.flyfish.framework.r2dbc.repository.factory.DefaultReactiveRepositoryFactoryBean; import com.flyfish.framework.r2dbc.repository.impl.DefaultReactiveRepositoryImpl; import com.flyfish.framework.repository.ReactiveEntityOperations; +import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; +import org.springframework.boot.autoconfigure.data.r2dbc.R2dbcDataAutoConfiguration; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; import org.springframework.data.mapping.callback.EntityCallback; import org.springframework.data.r2dbc.config.EnableR2dbcAuditing; import org.springframework.data.r2dbc.core.R2dbcEntityOperations; @@ -23,7 +24,7 @@ import org.springframework.data.r2dbc.repository.config.EnableR2dbcRepositories; repositoryBaseClass = DefaultReactiveRepositoryImpl.class ) @EnableR2dbcAuditing -@Configuration +@AutoConfiguration(after = R2dbcDataAutoConfiguration.class) public class R2dbcDataConfig { @Bean diff --git a/flyfish-data/flyfish-data-r2dbc/src/main/java/com/flyfish/framework/r2dbc/config/annotations/EnableR2dbcRepo.java b/flyfish-data/flyfish-data-r2dbc/src/main/java/com/flyfish/framework/r2dbc/config/annotations/EnableR2dbcRepo.java index a341043..0a652d4 100644 --- a/flyfish-data/flyfish-data-r2dbc/src/main/java/com/flyfish/framework/r2dbc/config/annotations/EnableR2dbcRepo.java +++ b/flyfish-data/flyfish-data-r2dbc/src/main/java/com/flyfish/framework/r2dbc/config/annotations/EnableR2dbcRepo.java @@ -3,7 +3,6 @@ package com.flyfish.framework.r2dbc.config.annotations; import com.flyfish.framework.r2dbc.repository.factory.DefaultReactiveRepositoryFactoryBean; import com.flyfish.framework.r2dbc.repository.impl.DefaultReactiveRepositoryImpl; import org.springframework.core.annotation.AliasFor; -import org.springframework.data.r2dbc.config.EnableR2dbcAuditing; import org.springframework.data.r2dbc.repository.config.EnableR2dbcRepositories; import java.lang.annotation.*; @@ -17,7 +16,6 @@ import java.lang.annotation.*; repositoryFactoryBeanClass = DefaultReactiveRepositoryFactoryBean.class, repositoryBaseClass = DefaultReactiveRepositoryImpl.class ) -@EnableR2dbcAuditing @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented diff --git a/flyfish-data/flyfish-data-r2dbc/src/test/java/com/flyfish/framework/r2dbc/R2DbcRepositoryTest.java b/flyfish-data/flyfish-data-r2dbc/src/test/java/com/flyfish/framework/r2dbc/R2DbcRepositoryTest.java new file mode 100644 index 0000000..72e3fc0 --- /dev/null +++ b/flyfish-data/flyfish-data-r2dbc/src/test/java/com/flyfish/framework/r2dbc/R2DbcRepositoryTest.java @@ -0,0 +1,33 @@ +package com.flyfish.framework.r2dbc; + +import com.flyfish.framework.query.Queries; +import com.flyfish.framework.r2dbc.config.R2dbcDataConfig; +import com.flyfish.framework.r2dbc.config.annotations.EnableR2dbcRepo; +import com.flyfish.framework.r2dbc.repository.TestDO; +import com.flyfish.framework.r2dbc.repository.TestQO; +import com.flyfish.framework.r2dbc.repository.TestRepository; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Import; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +import javax.annotation.Resource; +import java.util.Arrays; + +@ExtendWith(SpringExtension.class) +@SpringBootTest(classes = R2DbcRepositoryTest.class) +@EnableR2dbcRepo(basePackages = "com.flyfish.framework.r2dbc.repository") +@Import(R2dbcDataConfig.class) +public class R2DbcRepositoryTest { + + @Resource + private TestRepository testRepository; + + @Test + public void test() { + TestQO qo = new TestQO(); + qo.setIds(Arrays.asList("1", "2")); + testRepository.findAll(qo).subscribe(System.out::println); + } +} diff --git a/flyfish-data/flyfish-data-r2dbc/src/test/java/com/flyfish/framework/r2dbc/repository/TestDO.java b/flyfish-data/flyfish-data-r2dbc/src/test/java/com/flyfish/framework/r2dbc/repository/TestDO.java new file mode 100644 index 0000000..ae05dea --- /dev/null +++ b/flyfish-data/flyfish-data-r2dbc/src/test/java/com/flyfish/framework/r2dbc/repository/TestDO.java @@ -0,0 +1,11 @@ +package com.flyfish.framework.r2dbc.repository; + +import com.flyfish.framework.domain.base.AuditDomain; +import lombok.Data; +import org.springframework.data.relational.core.mapping.Table; + +@Table("test") +@Data +public class TestDO extends AuditDomain { + +} diff --git a/flyfish-data/flyfish-data-r2dbc/src/test/java/com/flyfish/framework/r2dbc/repository/TestQO.java b/flyfish-data/flyfish-data-r2dbc/src/test/java/com/flyfish/framework/r2dbc/repository/TestQO.java new file mode 100644 index 0000000..a7afa93 --- /dev/null +++ b/flyfish-data/flyfish-data-r2dbc/src/test/java/com/flyfish/framework/r2dbc/repository/TestQO.java @@ -0,0 +1,7 @@ +package com.flyfish.framework.r2dbc.repository; + +import com.flyfish.framework.domain.base.NameLikeQo; + +public class TestQO extends NameLikeQo { + +} diff --git a/flyfish-data/flyfish-data-r2dbc/src/test/java/com/flyfish/framework/r2dbc/repository/TestRepository.java b/flyfish-data/flyfish-data-r2dbc/src/test/java/com/flyfish/framework/r2dbc/repository/TestRepository.java new file mode 100644 index 0000000..5e14aa0 --- /dev/null +++ b/flyfish-data/flyfish-data-r2dbc/src/test/java/com/flyfish/framework/r2dbc/repository/TestRepository.java @@ -0,0 +1,9 @@ +package com.flyfish.framework.r2dbc.repository; + +import com.flyfish.framework.repository.DefaultReactiveRepository; + +/** + * 测试仓库 + */ +public interface TestRepository extends DefaultReactiveRepository { +} diff --git a/flyfish-data/flyfish-data-r2dbc/src/test/resources/applicaiton.yml b/flyfish-data/flyfish-data-r2dbc/src/test/resources/applicaiton.yml new file mode 100644 index 0000000..0bcb1a4 --- /dev/null +++ b/flyfish-data/flyfish-data-r2dbc/src/test/resources/applicaiton.yml @@ -0,0 +1,5 @@ +spring: + r2dbc: + url: r2dbc:mysql://192.168.33.205:3306/test?allowMultiQueries=true&useUnicode=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true&nullCatalogMeansCurrent=true + username: root + password: baiewf9XMq5K9Z2LiCXZ diff --git a/flyfish-logging/src/main/java/com/flyfish/framework/logging/domain/Log.java b/flyfish-logging/src/main/java/com/flyfish/framework/logging/domain/Log.java index 1d2e017..bb12741 100644 --- a/flyfish-logging/src/main/java/com/flyfish/framework/logging/domain/Log.java +++ b/flyfish-logging/src/main/java/com/flyfish/framework/logging/domain/Log.java @@ -6,7 +6,7 @@ import lombok.EqualsAndHashCode; import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.relational.core.mapping.Table; -import java.util.Date; +import java.time.LocalDateTime; /** * 日志集合 @@ -45,10 +45,10 @@ public class Log extends Domain { private Long period; // 操作时间 - private Date startTime; + private LocalDateTime startTime; // 完成时间 - private Date endTime; + private LocalDateTime endTime; // 操作人 private String operator; diff --git a/flyfish-logging/src/main/java/com/flyfish/framework/logging/service/LogManager.java b/flyfish-logging/src/main/java/com/flyfish/framework/logging/service/LogManager.java index 8fb97cf..742a725 100644 --- a/flyfish-logging/src/main/java/com/flyfish/framework/logging/service/LogManager.java +++ b/flyfish-logging/src/main/java/com/flyfish/framework/logging/service/LogManager.java @@ -1,6 +1,7 @@ package com.flyfish.framework.logging.service; import com.alibaba.fastjson.JSON; +import com.flyfish.framework.context.DateContext; import com.flyfish.framework.logging.config.LoggingTextRegistry; import com.flyfish.framework.logging.domain.Log; import com.flyfish.framework.logging.domain.LogType; @@ -10,7 +11,6 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.DisposableBean; import javax.annotation.Resource; -import java.util.Date; import java.util.Optional; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -52,8 +52,8 @@ public class LogManager implements DisposableBean { log.setOperator(context.getUser()); log.setSignature(context.getSignature()); log.setPeriod(context.getEndTime() - context.getStartTime()); - log.setStartTime(new Date(context.getStartTime())); - log.setEndTime(new Date(context.getEndTime())); + log.setStartTime(DateContext.ofMillis(context.getStartTime())); + log.setEndTime(DateContext.ofMillis(context.getEndTime())); // 先不拼接 log.setUri(null); // 写入日志 diff --git a/flyfish-logging/src/main/java/com/flyfish/framework/logging/service/SimpleAuthenticationLogger.java b/flyfish-logging/src/main/java/com/flyfish/framework/logging/service/SimpleAuthenticationLogger.java index be28ad4..e24eb20 100644 --- a/flyfish-logging/src/main/java/com/flyfish/framework/logging/service/SimpleAuthenticationLogger.java +++ b/flyfish-logging/src/main/java/com/flyfish/framework/logging/service/SimpleAuthenticationLogger.java @@ -14,7 +14,7 @@ import org.springframework.stereotype.Service; import reactor.core.publisher.Mono; import javax.annotation.Resource; -import java.util.Date; +import java.time.LocalDateTime; import java.util.Optional; /** @@ -80,7 +80,7 @@ public class SimpleAuthenticationLogger implements AuthenticationLogger { log.setResponse(message); log.setOperator(Optional.ofNullable(raw).map(Domain::getName).orElse("未知")); log.setPeriod(0L); - log.setStartTime(new Date()); + log.setStartTime(LocalDateTime.now()); // 写入日志 return logService.create(log).then(); } @@ -104,7 +104,7 @@ public class SimpleAuthenticationLogger implements AuthenticationLogger { log.setResponse(message); log.setOperator(user.getName()); log.setPeriod(0L); - log.setStartTime(new Date()); + log.setStartTime(LocalDateTime.now()); // 写入日志 return logService.create(log).then(); } diff --git a/flyfish-user/src/main/java/com/flyfish/framework/config/AuthenticationAuditorImpl.java b/flyfish-user/src/main/java/com/flyfish/framework/config/AuthenticationAuditorImpl.java index 18adbaa..d4a0b65 100644 --- a/flyfish-user/src/main/java/com/flyfish/framework/config/AuthenticationAuditorImpl.java +++ b/flyfish-user/src/main/java/com/flyfish/framework/config/AuthenticationAuditorImpl.java @@ -14,7 +14,7 @@ import org.springframework.security.web.server.WebFilterExchange; import reactor.core.publisher.Mono; import javax.annotation.Resource; -import java.util.Date; +import java.time.LocalDateTime; /** * 提供对象写入,登录登出审计 @@ -39,7 +39,7 @@ public class AuthenticationAuditorImpl extends ResultDataTransformer implements User updating = new User(); updating.setId(details.getId()); updating.setErrorCount(0); - updating.setLastTime(new Date()); + updating.setLastTime(LocalDateTime.now()); return userService.updateSelectiveById(updating).then(authenticationLogger.success(user)); } diff --git a/flyfish-user/src/main/java/com/flyfish/framework/domain/AdminUserDetails.java b/flyfish-user/src/main/java/com/flyfish/framework/domain/AdminUserDetails.java index bf93d1e..4b9d7de 100644 --- a/flyfish-user/src/main/java/com/flyfish/framework/domain/AdminUserDetails.java +++ b/flyfish-user/src/main/java/com/flyfish/framework/domain/AdminUserDetails.java @@ -19,6 +19,7 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.userdetails.UserDetails; +import java.time.LocalDateTime; import java.util.*; /** @@ -77,7 +78,7 @@ public class AdminUserDetails implements UserDetails, IUser, AuthorizedUserDetai * 有效期 */ @JsonFormat(pattern = "yyyy-MM-dd") - private Date validDate; + private LocalDateTime validDate; /** * 可操作校区 */ @@ -139,7 +140,7 @@ public class AdminUserDetails implements UserDetails, IUser, AuthorizedUserDetai @Override @JsonIgnore public boolean isCredentialsNonExpired() { - return null == validDate || validDate.after(new Date()); + return null == validDate || validDate.isBefore(LocalDateTime.now()); } @JsonIgnore diff --git a/flyfish-web/src/main/java/com/flyfish/framework/configuration/jwt/TokenProvider.java b/flyfish-web/src/main/java/com/flyfish/framework/configuration/jwt/TokenProvider.java index fe295fd..c8b1743 100644 --- a/flyfish-web/src/main/java/com/flyfish/framework/configuration/jwt/TokenProvider.java +++ b/flyfish-web/src/main/java/com/flyfish/framework/configuration/jwt/TokenProvider.java @@ -21,7 +21,7 @@ import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Mono; import javax.annotation.Resource; -import java.security.Key; +import javax.crypto.SecretKey; import java.time.Duration; import java.util.Arrays; import java.util.Collection; @@ -49,7 +49,7 @@ public class TokenProvider implements InitializingBean { @Resource private JwtProperties jwtProperties; - private Key key; + private SecretKey key; public TokenProvider(JwtProperties jwtProperties) { this.remember = jwtProperties.isRemember(); @@ -134,11 +134,11 @@ public class TokenProvider implements InitializingBean { Date validity = new Date(now + duration); return Jwts.builder() - .setSubject(authentication.getName()) - .setId(UUIDUtils.generateShortUuid()) + .subject(authentication.getName()) + .id(UUIDUtils.generateShortUuid()) .claim(AUTHORITIES_KEY, authorities) - .signWith(key, SignatureAlgorithm.HS512) - .setExpiration(validity) + .signWith(key) + .expiration(validity) .compact(); } @@ -167,11 +167,11 @@ public class TokenProvider implements InitializingBean { * @return 结果 */ public Claims parseToken(String token) { - return Jwts.parserBuilder() - .setSigningKey(key) + return Jwts.parser() + .decryptWith(key) .build() - .parseClaimsJws(token) - .getBody(); + .parseEncryptedClaims(token) + .getPayload(); } private String getCacheKey(String jti) { diff --git a/lombok.config b/lombok.config new file mode 100644 index 0000000..a6a9e0a --- /dev/null +++ b/lombok.config @@ -0,0 +1,4 @@ +config.stopBubbling = true +lombok.tostring.callsuper=CALL +lombok.equalsandhashcode.callsuper=CALL +lombok.accessors.chain=false diff --git a/pom.xml b/pom.xml index 50a8693..206746a 100644 --- a/pom.xml +++ b/pom.xml @@ -25,7 +25,7 @@ 1.8 3.0.3 Finchley.SR1 - 0.11.0 + 0.12.6 0.10.2 1.1.3 1.5.0