Compare commits
9 Commits
087750d86a
...
bb5bc7468d
| Author | SHA1 | Date |
|---|---|---|
|
|
bb5bc7468d | |
|
|
19f5a9324c | |
|
|
e7cf898cbe | |
|
|
16f2cdd576 | |
|
|
1864799d3b | |
|
|
b7a8f2464f | |
|
|
1198ea8d02 | |
|
|
6dd0c2939a | |
|
|
8df5201079 |
|
|
@ -15,39 +15,36 @@
|
|||
<maven.compiler.source>17</maven.compiler.source>
|
||||
<maven.compiler.target>17</maven.compiler.target>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<lombok.version>1.18.36</lombok.version>
|
||||
<hutool.version>5.8.22</hutool.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<version>${lombok.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>cn.hutool</groupId>
|
||||
<artifactId>hutool-all</artifactId>
|
||||
<version>5.8.22</version>
|
||||
<version>${hutool.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.electromagnetic.data</groupId>
|
||||
<artifactId>electromagnetic-common</artifactId>
|
||||
<version>1.0</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.xml.bind</groupId>
|
||||
<artifactId>jaxb-api</artifactId>
|
||||
<version>2.3.1</version>
|
||||
</dependency>
|
||||
<!-- 可选:添加 JAXB 实现库(如 jaxb-impl) -->
|
||||
<dependency>
|
||||
<groupId>com.sun.xml.bind</groupId>
|
||||
<artifactId>jaxb-impl</artifactId>
|
||||
<version>2.3.3</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
|
|
|||
|
|
@ -16,6 +16,11 @@
|
|||
<maven.compiler.target>17</maven.compiler.target>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<mapstruct.version>1.4.1.Final</mapstruct.version>
|
||||
<mybatis-plus.version>3.5.7</mybatis-plus.version>
|
||||
<mariaddb-client.version>3.5.1</mariaddb-client.version>
|
||||
<pagehelper.version>5.3.1</pagehelper.version>
|
||||
<druid.version>1.2.6</druid.version>
|
||||
<aspectjweaver.version>1.9.7</aspectjweaver.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
|
|
@ -30,44 +35,40 @@
|
|||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-webflux</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.ai</groupId>
|
||||
<artifactId>spring-ai-starter-model-ollama</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.ai</groupId>
|
||||
<artifactId>spring-ai-starter-vector-store-mariadb</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.baomidou</groupId>
|
||||
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
|
||||
<version>3.5.7</version>
|
||||
<version>${mybatis-plus.version}</version>
|
||||
</dependency>
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>mysql</groupId>-->
|
||||
<!-- <artifactId>mysql-connector-java</artifactId>-->
|
||||
<!-- <version>8.0.31</version>-->
|
||||
<!-- </dependency>-->
|
||||
|
||||
<dependency>
|
||||
<groupId>org.mariadb.jdbc</groupId>
|
||||
<artifactId>mariadb-java-client</artifactId>
|
||||
<version>3.5.1</version>
|
||||
<version>${mariaddb-client.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.electromagnetic.data</groupId>
|
||||
<artifactId>electromagnetic-common</artifactId>
|
||||
<version>1.0</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.github.pagehelper</groupId>
|
||||
<artifactId>pagehelper</artifactId>
|
||||
|
|
@ -77,13 +78,14 @@
|
|||
<artifactId>jsqlparser</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
<version>5.1.2</version>
|
||||
<version>${pagehelper.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!--引入druid数据源-->
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>druid-spring-boot-starter</artifactId>
|
||||
<version>1.2.6</version>
|
||||
<version>${druid.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
|
|
@ -91,15 +93,17 @@
|
|||
<artifactId>mapstruct-processor</artifactId>
|
||||
<version>${mapstruct.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.mapstruct</groupId>
|
||||
<artifactId>mapstruct</artifactId>
|
||||
<version>${mapstruct.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.aspectj</groupId>
|
||||
<artifactId>aspectjweaver</artifactId>
|
||||
<version>1.9.7</version>
|
||||
<version>${aspectjweaver.version}</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
|
|
|||
|
|
@ -96,6 +96,10 @@ public class ElePropertyConfig {
|
|||
@Value("${file.enc.passwd}")
|
||||
private String fileEncPasswd;
|
||||
|
||||
@Getter
|
||||
@Value("${login.enc.passwd}")
|
||||
private String loginEncPasswd;
|
||||
|
||||
public String getAiFileUploadStoreDir() {
|
||||
if (EleCommonUtil.isWinOs()) {
|
||||
return FileUtil.normalize(winPrefix + File.separator + aiFileUploadStoreDir);
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import com.electromagnetic.industry.software.common.enums.AdminTypeEnum;
|
|||
import com.electromagnetic.industry.software.common.pojo.AccessSuccessInfo;
|
||||
import com.electromagnetic.industry.software.common.pojo.UserLoginInfo;
|
||||
import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
|
||||
import com.electromagnetic.industry.software.common.util.IdWorker;
|
||||
import com.electromagnetic.industry.software.common.util.EleIdCreator;
|
||||
import com.electromagnetic.industry.software.common.util.TokenUtil;
|
||||
import com.electromagnetic.industry.software.common.util.UserThreadLocal;
|
||||
import com.electromagnetic.industry.software.manage.mapper.TokenMapper;
|
||||
|
|
@ -145,7 +145,7 @@ public class LoginInterceptor implements HandlerInterceptor {
|
|||
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
return false;
|
||||
} else {
|
||||
Claims claims = TokenUtil.getLoginInfo(token);
|
||||
Claims claims = TokenUtil.getLoginInfo(token, elePropertyConfig.getLoginEncPasswd());
|
||||
if (claims == null) {
|
||||
log.error("User info is missing, uri is --->{}", uri);
|
||||
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
||||
|
|
@ -183,7 +183,7 @@ public class LoginInterceptor implements HandlerInterceptor {
|
|||
if (CollUtil.isEmpty(successInfoList)) {
|
||||
ElectromagneticResult res = user.getResult();
|
||||
UserAccessLog userAccessLog = new UserAccessLog()
|
||||
.setId(IdWorker.getSnowFlakeIdString())
|
||||
.setId(EleIdCreator.createSnowflakeId())
|
||||
.setUserId(user.getUserId())
|
||||
.setAccessStartTime(DateUtil.date(accessStartTime))
|
||||
.setAccessEndTime(DateUtil.date(accessEndTime))
|
||||
|
|
@ -209,7 +209,7 @@ public class LoginInterceptor implements HandlerInterceptor {
|
|||
} else {
|
||||
for (AccessSuccessInfo accessSuccessInfo : successInfoList) {
|
||||
UserAccessLog userAccessLog = new UserAccessLog()
|
||||
.setId(IdWorker.getSnowFlakeIdString())
|
||||
.setId(EleIdCreator.createSnowflakeId())
|
||||
.setUserId(user.getUserId())
|
||||
.setAccessStartTime(DateUtil.date(accessStartTime))
|
||||
.setAccessEndTime(DateUtil.date(accessEndTime))
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|||
import com.electromagnetic.industry.software.manage.pojo.models.ImportTableData;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
|
||||
@Mapper
|
||||
public interface ImportTableDataMapper extends BaseMapper<ImportTableData> {
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|||
import com.electromagnetic.industry.software.manage.pojo.models.UserRole;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
|
||||
@Mapper
|
||||
public interface UserRoleMapper extends BaseMapper<UserRole> {
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
|||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.electromagnetic.industry.software.common.util.IdWorker;
|
||||
import com.electromagnetic.industry.software.common.util.EleIdCreator;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
|
|
@ -23,6 +23,6 @@ public class EdFileFavorite extends BaseModel {
|
|||
private String fileId;
|
||||
|
||||
public void newInit() {
|
||||
this.setId(IdWorker.getSnowFlakeIdString());
|
||||
this.setId(EleIdCreator.createSnowflakeId());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package com.electromagnetic.industry.software.manage.pojo.models;
|
|||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.electromagnetic.industry.software.common.util.EleCommonUtil;
|
||||
import com.electromagnetic.industry.software.common.util.IdWorker;
|
||||
import com.electromagnetic.industry.software.common.util.EleIdCreator;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
|
@ -127,7 +127,7 @@ public class EdFileInfo extends BaseModel {
|
|||
private String templateCode;
|
||||
|
||||
public void newInit() {
|
||||
String newFileDbId = IdWorker.getSnowFlakeIdString();
|
||||
String newFileDbId = EleIdCreator.createSnowflakeId();
|
||||
String fileTime = EleCommonUtil.getNowTimeStr();
|
||||
this.setId(newFileDbId);
|
||||
this.setFileTime(fileTime);
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package com.electromagnetic.industry.software.manage.pojo.models;
|
|||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.electromagnetic.industry.software.common.util.IdWorker;
|
||||
import com.electromagnetic.industry.software.common.util.EleIdCreator;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
|
|
@ -31,6 +31,6 @@ public class EdFileRelation extends BaseModel {
|
|||
private String relationship;
|
||||
|
||||
public void newInit() {
|
||||
this.setId(IdWorker.getSnowFlakeIdString());
|
||||
this.setId(EleIdCreator.createSnowflakeId());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package com.electromagnetic.industry.software.manage.pojo.models;
|
|||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.electromagnetic.industry.software.common.enums.PublishEnum;
|
||||
import com.electromagnetic.industry.software.common.util.IdWorker;
|
||||
import com.electromagnetic.industry.software.common.util.EleIdCreator;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
|
|
@ -21,7 +21,7 @@ public class EdTagLibrary extends BaseModel {
|
|||
private Integer isPublished; // 是否已发布(0: 未发布, 1: 已发布)
|
||||
|
||||
public void newInit() {
|
||||
this.setTagId(IdWorker.getSnowFlakeIdString());
|
||||
this.setTagId(EleIdCreator.createSnowflakeId());
|
||||
this.setIsPublished(PublishEnum.UNPUBLISHED.getCode()); //默认未发布
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package com.electromagnetic.industry.software.manage.pojo.models;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.electromagnetic.industry.software.common.util.IdWorker;
|
||||
import com.electromagnetic.industry.software.common.util.EleIdCreator;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
|
|
@ -15,6 +15,6 @@ public class FileTagRelation extends BaseModel {
|
|||
private String tagId;
|
||||
|
||||
public void newInit() {
|
||||
this.setId(IdWorker.getSnowFlakeIdString());
|
||||
this.setId(EleIdCreator.createSnowflakeId());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package com.electromagnetic.industry.software.manage.pojo.models;
|
|||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.electromagnetic.industry.software.common.util.IdWorker;
|
||||
import com.electromagnetic.industry.software.common.util.EleIdCreator;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
|
|
@ -26,7 +26,7 @@ public class Role extends BaseModel {
|
|||
private String roleDesc;
|
||||
|
||||
public void newInit() {
|
||||
this.setId(IdWorker.getSnowFlakeIdString());
|
||||
this.setId(EleIdCreator.createSnowflakeId());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package com.electromagnetic.industry.software.manage.pojo.models;
|
|||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.electromagnetic.industry.software.common.util.IdWorker;
|
||||
import com.electromagnetic.industry.software.common.util.EleIdCreator;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
|
|
@ -35,6 +35,6 @@ public class RolePermission extends BaseModel {
|
|||
private String permissionCode;
|
||||
|
||||
public void newInit() {
|
||||
this.setId(IdWorker.getSnowFlakeIdString());
|
||||
this.setId(EleIdCreator.createSnowflakeId());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ import cn.hutool.core.util.RandomUtil;
|
|||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.electromagnetic.industry.software.common.cons.UserConstants;
|
||||
import com.electromagnetic.industry.software.common.enums.AdminTypeEnum;
|
||||
import com.electromagnetic.industry.software.common.util.IdWorker;
|
||||
import com.electromagnetic.industry.software.common.util.SignUtils;
|
||||
import com.electromagnetic.industry.software.common.util.EleCommonUtil;
|
||||
import com.electromagnetic.industry.software.common.util.EleIdCreator;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
|
|
@ -92,9 +92,9 @@ public class User extends BaseModel {
|
|||
private String salt;
|
||||
|
||||
public void newInit() {
|
||||
this.setId(IdWorker.getSnowFlakeIdString());
|
||||
this.setId(EleIdCreator.createSnowflakeId());
|
||||
this.setSalt(RandomUtil.randomString(16));
|
||||
this.setUserPwd(SignUtils.MD5(UserConstants.DEFAULT_PASSWORD + this.getSalt()));
|
||||
this.setUserPwd(EleCommonUtil.getStrMd5(UserConstants.DEFAULT_PASSWORD + this.getSalt()));
|
||||
this.setIsPublished(UserConstants.DEFAULT_PUBLISH_STATUS);
|
||||
this.setIsActivated(UserConstants.DEFAULT_ACTIVE_STATUS);
|
||||
this.setAdminType(AdminTypeEnum.NORMAL.getValue());
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package com.electromagnetic.industry.software.manage.pojo.models;
|
|||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.electromagnetic.industry.software.common.util.IdWorker;
|
||||
import com.electromagnetic.industry.software.common.util.EleIdCreator;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
|
|
@ -29,6 +29,6 @@ public class UserRole extends BaseModel {
|
|||
private String roleId;
|
||||
|
||||
public void newInit() {
|
||||
this.setId(IdWorker.getSnowFlakeIdString());
|
||||
this.setId(EleIdCreator.createSnowflakeId());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,10 +2,13 @@ package com.electromagnetic.industry.software.manage.pojo.other;
|
|||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class PublishParam {
|
||||
public class PublishParam implements Serializable {
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -4,12 +4,15 @@ import com.fasterxml.jackson.annotation.JsonFormat;
|
|||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class SingleUserResponse {
|
||||
public class SingleUserResponse implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = -7475233976453471059L;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
package com.electromagnetic.industry.software.common.pojo;
|
||||
package com.electromagnetic.industry.software.manage.pojo.other;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import lombok.Builder;
|
||||
|
|
@ -1,25 +1,9 @@
|
|||
package com.electromagnetic.industry.software.manage.pojo.req;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ChangePasswordRequest {
|
||||
private String userId;
|
||||
|
||||
private String newPassword;
|
||||
|
||||
// Getters and Setters
|
||||
public String getUserId() {
|
||||
return userId;
|
||||
}
|
||||
|
||||
public void setUserId(String userId) {
|
||||
this.userId = userId;
|
||||
}
|
||||
|
||||
|
||||
public String getNewPassword() {
|
||||
return newPassword;
|
||||
}
|
||||
|
||||
public void setNewPassword(String newPassword) {
|
||||
this.newPassword = newPassword;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,13 @@
|
|||
package com.electromagnetic.industry.software.manage.pojo.req;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class EDDataRequest extends BaseRequest implements Serializable {
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
package com.electromagnetic.industry.software.manage.pojo.req;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class GetSingleUserRequest extends BaseRequest implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
package com.electromagnetic.industry.software.manage.pojo.req;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class SearchUserRequest extends BaseRequest implements Serializable {
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
package com.electromagnetic.industry.software.manage.pojo.req;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class UserDeleteRequest extends BaseRequest implements Serializable {
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
package com.electromagnetic.industry.software.manage.pojo.req;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class UserLoginRequest extends BaseRequest implements Serializable {
|
||||
|
||||
|
|
|
|||
|
|
@ -3,10 +3,12 @@ package com.electromagnetic.industry.software.manage.pojo.req;
|
|||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class UserModiRequest extends BaseRequest implements Serializable {
|
||||
|
||||
|
|
|
|||
|
|
@ -2,10 +2,12 @@ package com.electromagnetic.industry.software.manage.pojo.req;
|
|||
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class UserPublishRequest extends BaseRequest implements Serializable {
|
||||
|
||||
|
|
|
|||
|
|
@ -2,10 +2,12 @@ package com.electromagnetic.industry.software.manage.pojo.req;
|
|||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class UserRequest extends BaseRequest implements Serializable {
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
package com.electromagnetic.industry.software.manage.pojo.req;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class UserWorkNumRequest extends BaseRequest implements Serializable {
|
||||
|
||||
|
|
|
|||
|
|
@ -1,23 +1,9 @@
|
|||
package com.electromagnetic.industry.software.manage.pojo.req;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ValidateOldPasswordRequest {
|
||||
private String userId;
|
||||
private String oldPassword;
|
||||
|
||||
// Getters and Setters
|
||||
public String getUserId() {
|
||||
return userId;
|
||||
}
|
||||
|
||||
public void setUserId(String userId) {
|
||||
this.userId = userId;
|
||||
}
|
||||
|
||||
public String getOldPassword() {
|
||||
return oldPassword;
|
||||
}
|
||||
|
||||
public void setOldPassword(String oldPassword) {
|
||||
this.oldPassword = oldPassword;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package com.electromagnetic.industry.software.manage.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.electromagnetic.industry.software.common.pojo.TreeNode;
|
||||
import com.electromagnetic.industry.software.manage.pojo.other.TreeNode;
|
||||
import com.electromagnetic.industry.software.manage.pojo.models.EdTagLibrary;
|
||||
import com.electromagnetic.industry.software.manage.pojo.resp.FileTagInfo;
|
||||
import com.electromagnetic.industry.software.manage.pojo.resp.TagListVO;
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import com.electromagnetic.industry.software.common.pojo.PageFile;
|
|||
import com.electromagnetic.industry.software.common.pojo.UserLoginInfo;
|
||||
import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
|
||||
import com.electromagnetic.industry.software.common.util.ElectromagneticResultUtil;
|
||||
import com.electromagnetic.industry.software.common.util.IdWorker;
|
||||
import com.electromagnetic.industry.software.common.util.EleIdCreator;
|
||||
import com.electromagnetic.industry.software.common.util.OfficeFileUtil;
|
||||
import com.electromagnetic.industry.software.common.util.UserThreadLocal;
|
||||
import com.electromagnetic.industry.software.manage.config.ElePropertyConfig;
|
||||
|
|
@ -149,7 +149,7 @@ public class ChatService {
|
|||
StringBuilder stringBuilder = new StringBuilder();
|
||||
for (Document document : documents) {
|
||||
Map<String, Object> metadata = Map.of("fileName", file.getOriginalFilename(), "fileMd5", fileMd5);
|
||||
newDocuments.add(new Document(IdWorker.getSnowFlakeIdString(), Objects.requireNonNull(document.getText()), metadata));
|
||||
newDocuments.add(new Document(EleIdCreator.createSnowflakeId(), Objects.requireNonNull(document.getText()), metadata));
|
||||
stringBuilder.append(document.getText());
|
||||
}
|
||||
FileUtil.writeString(stringBuilder.toString(), elePropertyConfig.getAiFileUploadStoreDir() + File.separator + fileMd5, Charset.defaultCharset());
|
||||
|
|
@ -158,7 +158,7 @@ public class ChatService {
|
|||
vectorStore.write(newDocuments);
|
||||
for (Document document : newDocuments) {
|
||||
aiFileUploadRecordMapper.insert(new AiFileUploadRecord()
|
||||
.setId(IdWorker.getSnowFlakeIdString())
|
||||
.setId(EleIdCreator.createSnowflakeId())
|
||||
.setVectorId(document.getId())
|
||||
.setFileSize(file.getSize())
|
||||
.setFileMd5(fileMd5)
|
||||
|
|
@ -170,7 +170,7 @@ public class ChatService {
|
|||
public Flux<String> chatStreamStr(QueryDTO queryDTO) {
|
||||
AiQuestionRecord record = new AiQuestionRecord()
|
||||
.setQuestion(queryDTO.getMsg())
|
||||
.setId(IdWorker.getSnowFlakeIdString());
|
||||
.setId(EleIdCreator.createSnowflakeId());
|
||||
UserLoginInfo userLoginInfo = new UserLoginInfo();
|
||||
userLoginInfo.setUserId(queryDTO.getUserId());
|
||||
UserThreadLocal.set(userLoginInfo);
|
||||
|
|
@ -202,7 +202,7 @@ public class ChatService {
|
|||
}
|
||||
|
||||
public Flux<ChatResponse> chatStreamResponse(QueryDTO queryDTO) {
|
||||
AiQuestionRecord record = new AiQuestionRecord().setQuestion(queryDTO.getMsg()).setId(IdWorker.getSnowFlakeIdString());
|
||||
AiQuestionRecord record = new AiQuestionRecord().setQuestion(queryDTO.getMsg()).setId(EleIdCreator.createSnowflakeId());
|
||||
UserLoginInfo userLoginInfo = new UserLoginInfo();
|
||||
userLoginInfo.setUserId(queryDTO.getUserId());
|
||||
UserThreadLocal.set(userLoginInfo);
|
||||
|
|
|
|||
|
|
@ -198,7 +198,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
@Override
|
||||
public ElectromagneticResult<?> createFolder(CreateFolderDTO createFolderDTO, int dataOwnCode) {
|
||||
Assert.isTrue(EleCommonUtil.isFileNameValid(createFolderDTO.getNewFolderName()), NAME_VALID_MSG);
|
||||
String folderId = IdWorker.getSnowFlakeIdString();
|
||||
String folderId = EleIdCreator.createSnowflakeId();
|
||||
|
||||
if (DataOwnEnum.isSysCode(dataOwnCode) || DataOwnEnum.isRepoCode(dataOwnCode)) {
|
||||
List<String> accessibleTree = permissionService.getAccessibleTree();
|
||||
|
|
@ -1034,7 +1034,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
.eq(EdFileInfo::getFileName, srcFileInfo.getFileName())
|
||||
.eq(EdFileInfo::getFileType, srcFileInfo.getFileType()));
|
||||
Integer maxFileVersion = Collections.max(sameFileInfos, Comparator.comparing(EdFileInfo::getFileVersion)).getFileVersion();
|
||||
String newFileDbId = IdWorker.getSnowFlakeIdString();
|
||||
String newFileDbId = EleIdCreator.createSnowflakeId();
|
||||
String fileTime = EleCommonUtil.getNowTimeStr();
|
||||
String codePathByDbPath = commonService.getCodePathByDbPath(destFolderInfo.getFilePath());
|
||||
String fileCode = commonService.createFileCode(codePathByDbPath, srcFileInfo.getFileType(), maxFileVersion + 1, fileTime);
|
||||
|
|
@ -1218,7 +1218,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
.eq(EdFileInfo::getFileType, srcFileInfo.getFileType());
|
||||
List<EdFileInfo> sameFileInfos = this.baseMapper.selectList(queryWrapper);
|
||||
Integer maxFileVersion = Collections.max(sameFileInfos, Comparator.comparing(EdFileInfo::getFileVersion)).getFileVersion();
|
||||
String newFileDbId = IdWorker.getSnowFlakeIdString();
|
||||
String newFileDbId = EleIdCreator.createSnowflakeId();
|
||||
String fileTime = EleCommonUtil.getNowTimeStr();
|
||||
String codePathByDbPath = commonService.getCodePathByDbPath(destFolderInfo.getFilePath());
|
||||
String fileCode = commonService.createFileCode(codePathByDbPath, srcFileInfo.getFileType(), maxFileVersion + 1, fileTime);
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import com.electromagnetic.industry.software.common.enums.EffectFlagEnum;
|
|||
import com.electromagnetic.industry.software.common.enums.PublishEnum;
|
||||
import com.electromagnetic.industry.software.common.enums.TagTypeEnum;
|
||||
import com.electromagnetic.industry.software.common.exception.BizException;
|
||||
import com.electromagnetic.industry.software.common.pojo.TreeNode;
|
||||
import com.electromagnetic.industry.software.manage.pojo.other.TreeNode;
|
||||
import com.electromagnetic.industry.software.common.util.UserThreadLocal;
|
||||
import com.electromagnetic.industry.software.manage.mapper.EdTagLibraryMapper;
|
||||
import com.electromagnetic.industry.software.manage.pojo.models.EdTagLibrary;
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import cn.hutool.core.text.StrFormatter;
|
|||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.electromagnetic.industry.software.common.enums.EffectFlagEnum;
|
||||
import com.electromagnetic.industry.software.common.util.IdWorker;
|
||||
import com.electromagnetic.industry.software.common.util.EleIdCreator;
|
||||
import com.electromagnetic.industry.software.common.util.UserThreadLocal;
|
||||
import com.electromagnetic.industry.software.manage.mapper.FileFormatMapper;
|
||||
import com.electromagnetic.industry.software.manage.pojo.models.FileFormat;
|
||||
|
|
@ -39,7 +39,7 @@ public class FileFormatServiceImpl extends ServiceImpl<FileFormatMapper, FileFor
|
|||
FileFormat fileFormat = new FileFormat();
|
||||
fileFormat.setSuffixName(suffixName);
|
||||
fileFormat.setEffectFlag(EffectFlagEnum.EFFECT.code);
|
||||
fileFormat.setId(IdWorker.getSnowFlakeIdString());
|
||||
fileFormat.setId(EleIdCreator.createSnowflakeId());
|
||||
fileFormat.setSuffixNo(createFileFormatNo(fileFormats.size()));
|
||||
fileFormat.setCreatedBy(UserThreadLocal.getUserId());
|
||||
this.baseMapper.insert(fileFormat);
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
|
|||
import cn.hutool.core.codec.Base64;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.io.IoUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.lang.tree.Tree;
|
||||
import cn.hutool.core.lang.tree.TreeNodeConfig;
|
||||
|
|
@ -21,7 +22,7 @@ import com.electromagnetic.industry.software.common.enums.EleDataTypeEnum;
|
|||
import com.electromagnetic.industry.software.common.exception.BizException;
|
||||
import com.electromagnetic.industry.software.common.pojo.RespPageVO;
|
||||
import com.electromagnetic.industry.software.common.util.EleCommonUtil;
|
||||
import com.electromagnetic.industry.software.common.util.IdWorker;
|
||||
import com.electromagnetic.industry.software.common.util.EleIdCreator;
|
||||
import com.electromagnetic.industry.software.common.util.UserThreadLocal;
|
||||
import com.electromagnetic.industry.software.manage.config.ElePropertyConfig;
|
||||
import com.electromagnetic.industry.software.manage.mapper.ImportPrjInfoMapper;
|
||||
|
|
@ -33,7 +34,6 @@ import com.electromagnetic.industry.software.manage.service.ImportPrjService;
|
|||
import jakarta.annotation.Resource;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.mockito.internal.util.io.IOUtil;
|
||||
import org.springframework.core.io.FileSystemResource;
|
||||
import org.springframework.core.io.InputStreamResource;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
|
|
@ -91,7 +91,7 @@ public class ImportPrjServiceImpl extends ServiceImpl<ImportPrjInfoMapper, Impor
|
|||
// 如果是目录且不是最后一个元素
|
||||
boolean isDirectory = i < pathParts.length - 1 || entry.isDirectory();
|
||||
if (!pathIdMap.containsKey(currentPath)) {
|
||||
String newId = IdWorker.getSnowFlakeIdString();
|
||||
String newId = EleIdCreator.createSnowflakeId();
|
||||
pathIdMap.put(currentPath, newId);
|
||||
String findIdPath = findIdPath(parentId, itemIdMap);
|
||||
String filePath = StrUtil.isEmpty(findIdPath) ? newId : findIdPath + ElectromagneticConstants.MYSQL_FILE_PATH_SPLIT + newId;
|
||||
|
|
@ -137,7 +137,7 @@ public class ImportPrjServiceImpl extends ServiceImpl<ImportPrjInfoMapper, Impor
|
|||
} catch (Exception e) {
|
||||
throw new BizException("导入工程失败,原因 " + e.getMessage(), e);
|
||||
} finally {
|
||||
IOUtil.close(zipFile);
|
||||
IoUtil.close(zipFile);
|
||||
FileUtil.del(zipTmpPath);
|
||||
}
|
||||
return true;
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import com.electromagnetic.industry.software.common.pojo.RespPageVO;
|
|||
import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
|
||||
import com.electromagnetic.industry.software.common.util.EleCommonUtil;
|
||||
import com.electromagnetic.industry.software.common.util.ElectromagneticResultUtil;
|
||||
import com.electromagnetic.industry.software.common.util.IdWorker;
|
||||
import com.electromagnetic.industry.software.common.util.EleIdCreator;
|
||||
import com.electromagnetic.industry.software.manage.mapper.ImportTableDataMapper;
|
||||
import com.electromagnetic.industry.software.manage.mapper.ImportTableInfoMapper;
|
||||
import com.electromagnetic.industry.software.manage.pojo.models.ImportTableData;
|
||||
|
|
@ -45,7 +45,7 @@ public class ImportTableServiceImpl implements ImportTableService {
|
|||
|
||||
@Override
|
||||
public String addTableInfo(String relatedId, Map<Integer, Object> tableHeader) {
|
||||
String id = IdWorker.getSnowFlakeIdString();
|
||||
String id = EleIdCreator.createSnowflakeId();
|
||||
ImportTableInfo importTableInfo = new ImportTableInfo()
|
||||
.setId(id)
|
||||
.setTableHeader(JSONUtil.toJsonStr(tableHeader))
|
||||
|
|
@ -107,7 +107,7 @@ public class ImportTableServiceImpl implements ImportTableService {
|
|||
|
||||
@Override
|
||||
public String addTableData(String tableInfoId, String tableData) {
|
||||
String id = IdWorker.getSnowFlakeIdString();
|
||||
String id = EleIdCreator.createSnowflakeId();
|
||||
ImportTableData importTableData = new ImportTableData().setId(id).setTableInfoId(tableInfoId).setData(tableData);
|
||||
importTableDataMapper.insert(importTableData);
|
||||
return id;
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import com.electromagnetic.industry.software.common.exception.BizException;
|
|||
import com.electromagnetic.industry.software.common.pojo.UserLoginInfo;
|
||||
import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
|
||||
import com.electromagnetic.industry.software.common.util.*;
|
||||
import com.electromagnetic.industry.software.manage.config.ElePropertyConfig;
|
||||
import com.electromagnetic.industry.software.manage.mapper.RoleMapper;
|
||||
import com.electromagnetic.industry.software.manage.mapper.TokenMapper;
|
||||
import com.electromagnetic.industry.software.manage.mapper.UserMapper;
|
||||
|
|
@ -34,12 +35,14 @@ import com.electromagnetic.industry.software.manage.service.EdFileFavoriteServic
|
|||
import com.electromagnetic.industry.software.manage.service.UserRoleService;
|
||||
import com.electromagnetic.industry.software.manage.service.UserService;
|
||||
import io.jsonwebtoken.Jwts;
|
||||
import io.jsonwebtoken.SignatureAlgorithm;
|
||||
import io.jsonwebtoken.security.Keys;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.crypto.SecretKey;
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
|
@ -58,6 +61,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
|||
private RoleMapper roleMapper;
|
||||
@Resource
|
||||
private EdFileFavoriteService edFileFavoriteService;
|
||||
@Resource
|
||||
private ElePropertyConfig elePropertyConfig;
|
||||
|
||||
/**
|
||||
* 用户登录
|
||||
|
|
@ -68,7 +73,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
|||
@Override
|
||||
public ElectromagneticResult<?> login(UserLoginRequest loginRequest) {
|
||||
UserLoginInfo info = UserMappers.INSTANCE.getUserLoginRequestToModel(loginRequest);
|
||||
String decodePwd = AESUtils.decrypt(info.getUserPwd(), UserConstants.SECRET_KEY);
|
||||
String decodePwd = AESUtils.decrypt(info.getUserPwd(), elePropertyConfig.getLoginEncPasswd());
|
||||
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(User::getWorkNumber, info.getWorkNumber())
|
||||
.eq(User::getEffectFlag, EffectFlagEnum.EFFECT.code);
|
||||
|
|
@ -116,17 +121,19 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
|||
claims.put(UserConstants.LOGIN_USER_NAME, loginInfo.getUsername());
|
||||
claims.put(UserConstants.LOGIN_WORK_NUMBER, loginInfo.getWorkNumber());
|
||||
claims.put(UserConstants.LOGIN_ADMIN_TYPE, loginInfo.getAdminType());
|
||||
byte[] keyBytes = elePropertyConfig.getLoginEncPasswd().getBytes(Charset.defaultCharset());
|
||||
SecretKey key = Keys.hmacShaKeyFor(keyBytes);
|
||||
return Jwts.builder()
|
||||
.addClaims(claims)
|
||||
.setId(UUID.randomUUID().toString())
|
||||
.setIssuedAt(DateTime.now())
|
||||
.signWith(SignatureAlgorithm.HS512, UserConstants.SECRET_KEY)
|
||||
.claims(claims) // 自定义 claims
|
||||
.id(UUID.randomUUID().toString()) // JWT ID
|
||||
.issuedAt(new Date()) // 签发时间,使用 java.util.Date
|
||||
.signWith(key) // 签名
|
||||
.compact();
|
||||
}
|
||||
|
||||
public Boolean matchPassword(User user, String password) {
|
||||
String salt = user.getSalt();
|
||||
String encodePwd = SignUtils.MD5(password + salt);
|
||||
String encodePwd = EleCommonUtil.getStrMd5(password + salt);
|
||||
return user.getUserPwd().equals(encodePwd);
|
||||
}
|
||||
|
||||
|
|
@ -247,7 +254,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
|||
singleUserResponse.setRoleList(roleList);
|
||||
|
||||
// 检查密码是否和初始密码相同
|
||||
if (user.getUserPwd().equals(SignUtils.MD5(UserConstants.DEFAULT_PASSWORD + user.getSalt()))) {
|
||||
if (user.getUserPwd().equals(EleCommonUtil.getStrMd5(UserConstants.DEFAULT_PASSWORD + user.getSalt()))) {
|
||||
singleUserResponse.setIsDefaultPwd(1);
|
||||
} else {
|
||||
singleUserResponse.setIsDefaultPwd(0);
|
||||
|
|
@ -323,11 +330,11 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
|||
public ElectromagneticResult<?> changePassword(String userId, String newPassword) {
|
||||
User user = this.getById(userId);
|
||||
Assert.notNull(user, StrFormatter.format("用户ID {} 无效", userId));
|
||||
String decodeNewPwd = AESUtils.decrypt(newPassword, UserConstants.SECRET_KEY);
|
||||
String decodeNewPwd = AESUtils.decrypt(newPassword, elePropertyConfig.getLoginEncPasswd());
|
||||
|
||||
Assert.isTrue(!decodeNewPwd.contains(user.getUserAccount()), "密码最小长度为8,必须至少包含一个大写字母、一个小写字母、一个特殊字符、数字、不可包含账号");
|
||||
Assert.isTrue(EleCommonUtil.isPwdValid(decodeNewPwd), "密码最小长度为8,必须至少包含一个大写字母、一个小写字母、一个特殊字符、数字、不可包含账号");
|
||||
user.setUserPwd(SignUtils.MD5(decodeNewPwd + user.getSalt()));
|
||||
user.setUserPwd(EleCommonUtil.getStrMd5(decodeNewPwd + user.getSalt()));
|
||||
boolean success = this.updateById(user);
|
||||
UserThreadLocal.setSuccessInfo("", userId, StrFormatter.format("修改了用户密码"));
|
||||
return ElectromagneticResultUtil.success(success);
|
||||
|
|
@ -344,7 +351,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
|||
User user = this.getById(userId);
|
||||
Assert.notNull(user, StrFormatter.format("用户ID {} 无效", userId));
|
||||
|
||||
user.setUserPwd(SignUtils.MD5(UserConstants.DEFAULT_PASSWORD + user.getSalt()));
|
||||
user.setUserPwd(EleCommonUtil.getStrMd5(UserConstants.DEFAULT_PASSWORD + user.getSalt()));
|
||||
boolean success = this.updateById(user);
|
||||
|
||||
if (success) {
|
||||
|
|
@ -418,7 +425,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
|||
Assert.notNull(user, StrFormatter.format("用户不存在,ID为 {}", userId));
|
||||
|
||||
// 解密并验证密码
|
||||
String decodeOldPwd = AESUtils.decrypt(oldInputPassword, UserConstants.SECRET_KEY);
|
||||
String decodeOldPwd = AESUtils.decrypt(oldInputPassword, elePropertyConfig.getLoginEncPasswd());
|
||||
Boolean isValid = matchPassword(user, decodeOldPwd);
|
||||
UserThreadLocal.setSuccessInfo("", "", "校验原始密码,当前密码与原始密码匹配结果 {}", isValid ? "通过" : "不通过");
|
||||
return ElectromagneticResultUtil.success(isValid);
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ import com.electromagnetic.industry.software.common.enums.UserOperationModuleEnu
|
|||
import com.electromagnetic.industry.software.common.pojo.BackupFileResLog;
|
||||
import com.electromagnetic.industry.software.common.pojo.UserLoginInfo;
|
||||
import com.electromagnetic.industry.software.common.util.EleCommonUtil;
|
||||
import com.electromagnetic.industry.software.common.util.IdWorker;
|
||||
import com.electromagnetic.industry.software.common.util.EleIdCreator;
|
||||
import com.electromagnetic.industry.software.common.util.UserThreadLocal;
|
||||
import com.electromagnetic.industry.software.manage.config.ElePropertyConfig;
|
||||
import com.electromagnetic.industry.software.manage.mapper.EdFileInfoMapper;
|
||||
|
|
@ -109,7 +109,7 @@ public class BackupTask {
|
|||
BackupFileResLog resLog = backupHandler.backupFiles(fileSysPath);
|
||||
long endTime = System.currentTimeMillis();
|
||||
FileBackupLog backupLog = new FileBackupLog()
|
||||
.setId(IdWorker.getSnowFlakeIdString())
|
||||
.setId(EleIdCreator.createSnowflakeId())
|
||||
.setFileId(edFileInfo.getId())
|
||||
.setFileCode(edFileInfo.getFileCode())
|
||||
.setBackupSuccess(resLog.getBackupSuccess())
|
||||
|
|
@ -154,7 +154,7 @@ public class BackupTask {
|
|||
for (File file : files) {
|
||||
fileSystemService.deleteFile(file.getAbsolutePath());
|
||||
UserAccessLog userAccessLog = new UserAccessLog()
|
||||
.setId(IdWorker.getSnowFlakeIdString())
|
||||
.setId(EleIdCreator.createSnowflakeId())
|
||||
.setUserId("")
|
||||
.setAccessStartTime(new Date())
|
||||
.setAccessEndTime(new Date())
|
||||
|
|
@ -212,7 +212,7 @@ public class BackupTask {
|
|||
List<FileBackupLog> failBacks = fileBackupLogs.stream().filter(FileBackupLog::isBackupSuccess).toList();
|
||||
if (CollUtil.isEmpty(failBacks)) {
|
||||
FileBackupLog backupLog = new FileBackupLog()
|
||||
.setId(IdWorker.getSnowFlakeIdString())
|
||||
.setId(EleIdCreator.createSnowflakeId())
|
||||
.setFileId(Base64.encode(fileName))
|
||||
.setFileCode(Base64.encode(fileName))
|
||||
.setBackupSuccess(resLog.getBackupSuccess())
|
||||
|
|
@ -277,7 +277,7 @@ public class BackupTask {
|
|||
}
|
||||
|
||||
// 每 2 分钟执行一次
|
||||
@Scheduled(cron = "0 */2 * * * ?")
|
||||
@Scheduled(cron = "0 0 4 * * ?")
|
||||
public void updateFileStatus() {
|
||||
DateTime twoMinutesAgo = DateUtil.offsetMinute(DateUtil.date(), -2);
|
||||
edFileInfoMapper.update(Wrappers.<EdFileInfo>lambdaUpdate().set(EdFileInfo::getDataStatus, EleDataStatusEnum.PUBLISHED.code).le(EdFileInfo::getUpdatedTime, twoMinutesAgo));
|
||||
|
|
|
|||
|
|
@ -63,4 +63,5 @@ backup.remote.port=1111
|
|||
backup.mysql.path=/workspace/mysqlbak/test
|
||||
backup.mysql.script.path=/workspace/mysqlbak/back_dev.sh
|
||||
|
||||
file.enc.passwd=123456
|
||||
file.enc.passwd=123456
|
||||
login.enc.passwd=123456
|
||||
|
|
@ -15,97 +15,128 @@
|
|||
<maven.compiler.source>17</maven.compiler.source>
|
||||
<maven.compiler.target>17</maven.compiler.target>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<jwt.version>0.9.0</jwt.version>
|
||||
<jwt.version>0.13.0</jwt.version>
|
||||
<lombok.version>1.18.36</lombok.version>
|
||||
<hutool.version>5.8.22</hutool.version>
|
||||
<logback.version>1.5.16</logback.version>
|
||||
<rapidocr.version>0.0.7</rapidocr.version>
|
||||
<rapidocr-onnx.version>1.2.2</rapidocr-onnx.version>
|
||||
<documents4j.version>1.0.3</documents4j.version>
|
||||
<bcprov.version>1.78</bcprov.version>
|
||||
<fr.opensagres.xdocreport.version>2.0.1</fr.opensagres.xdocreport.version>
|
||||
<poi-ooxml.version>4.1.2</poi-ooxml.version>
|
||||
<poi-scratchpad.version>4.1.2</poi-scratchpad.version>
|
||||
<poi-ooxml-schemas.version>4.1.0</poi-ooxml-schemas.version>
|
||||
<commons-compress.version>1.26.0</commons-compress.version>
|
||||
<pdfbox.version>3.0.3</pdfbox.version>
|
||||
<jaxb-impl.version>2.3.3</jaxb-impl.version>
|
||||
<jbig2-imageio.version>3.0.2</jbig2-imageio.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<version>1.18.36</version>
|
||||
<version>${lombok.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>io.jsonwebtoken</groupId>
|
||||
<artifactId>jjwt</artifactId>
|
||||
<version>${jwt.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcprov-jdk18on</artifactId>
|
||||
<version>1.77</version>
|
||||
<version>${bcprov.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>cn.hutool</groupId>
|
||||
<artifactId>hutool-all</artifactId>
|
||||
<version>5.8.22</version>
|
||||
<version>${hutool.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>ch.qos.logback</groupId>
|
||||
<artifactId>logback-classic</artifactId>
|
||||
<version>1.5.16</version>
|
||||
<version>${logback.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>ch.qos.logback</groupId>
|
||||
<artifactId>logback-core</artifactId>
|
||||
<version>1.5.16</version>
|
||||
<version>${logback.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>fr.opensagres.xdocreport</groupId>
|
||||
<artifactId>fr.opensagres.poi.xwpf.converter.pdf-gae</artifactId>
|
||||
<version>2.0.1</version>
|
||||
<version>${fr.opensagres.xdocreport.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.documents4j</groupId>
|
||||
<artifactId>documents4j-local</artifactId>
|
||||
<version>1.0.3</version>
|
||||
<version>${documents4j.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.documents4j</groupId>
|
||||
<artifactId>documents4j-transformer-msoffice-word</artifactId>
|
||||
<version>1.0.3</version>
|
||||
<version>${documents4j.version}</version>
|
||||
</dependency>
|
||||
<!--处理word文档需要的额外的jar包-->
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi-ooxml</artifactId>
|
||||
<version>4.1.2</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-compress</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
<version>${poi-ooxml.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-compress</artifactId>
|
||||
<version>${commons-compress.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!--处理word文档需要的额外的jar包-->
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi-ooxml-schemas</artifactId>
|
||||
<version>4.1.0</version>
|
||||
<version>${poi-ooxml-schemas.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- POI-word文件处理需要 -->
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi-scratchpad</artifactId>
|
||||
<version>4.1.2</version>
|
||||
<version>${poi-scratchpad.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.pdfbox</groupId>
|
||||
<artifactId>pdfbox</artifactId>
|
||||
<version>3.0.3</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.xml.bind</groupId>
|
||||
<artifactId>jaxb-api</artifactId>
|
||||
<version>2.3.1</version>
|
||||
<version>${pdfbox.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.sun.xml.bind</groupId>
|
||||
<artifactId>jaxb-impl</artifactId>
|
||||
<version>2.3.3</version>
|
||||
<version>${jaxb-impl.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>io.github.mymonstercat</groupId>
|
||||
<artifactId>rapidocr</artifactId>
|
||||
<version>0.0.7</version>
|
||||
<version>${rapidocr.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- 一般只需要引入一个,CPU端建议使用onnx,移动端建议使用ncnn -->
|
||||
|
|
@ -113,17 +144,19 @@
|
|||
<dependency>
|
||||
<groupId>io.github.mymonstercat</groupId>
|
||||
<artifactId>rapidocr-onnx-platform</artifactId>
|
||||
<version>0.0.7</version>
|
||||
<version>${rapidocr.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>io.github.mymonstercat</groupId>
|
||||
<artifactId>rapidocr-onnx-linux-x86_64</artifactId>
|
||||
<version>1.2.2</version>
|
||||
<version>${rapidocr-onnx.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.pdfbox</groupId>
|
||||
<artifactId>jbig2-imageio</artifactId>
|
||||
<version>3.0.2</version>
|
||||
<version>${jbig2-imageio.version}</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
|
|
|||
|
|
@ -22,11 +22,6 @@ public interface UserConstants {
|
|||
*/
|
||||
long DEFAULT_EXPIRE_TIME = 7 * 24 * 60 * 60 * 1000;
|
||||
|
||||
/**
|
||||
* 令牌密钥
|
||||
*/
|
||||
String SECRET_KEY = "5JKRGV0QO4WK1WCWVK55YEU0A1NPOXOP";
|
||||
|
||||
/**
|
||||
* 令牌前缀
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ public enum EffectFlagEnum {
|
|||
*/
|
||||
EFFECT(1, "有效"),
|
||||
/**
|
||||
* 无效PermisionService
|
||||
* 无效
|
||||
*/
|
||||
NOT_EFFECTIVE(0, "无效");
|
||||
|
||||
|
|
|
|||
|
|
@ -1,17 +1,10 @@
|
|||
package com.electromagnetic.industry.software.common.util;
|
||||
|
||||
|
||||
import cn.hutool.core.codec.Base64;
|
||||
import org.bouncycastle.jce.provider.BouncyCastleProvider;
|
||||
|
||||
import javax.crypto.BadPaddingException;
|
||||
import javax.crypto.Cipher;
|
||||
import javax.crypto.IllegalBlockSizeException;
|
||||
import javax.crypto.NoSuchPaddingException;
|
||||
import javax.crypto.spec.SecretKeySpec;
|
||||
import java.security.InvalidKeyException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.security.Security;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Base64;
|
||||
|
||||
/**
|
||||
* <p>Description: [AES对称加密和解密]</p>
|
||||
|
|
@ -31,13 +24,16 @@ public class AESUtils {
|
|||
*/
|
||||
public static String decrypt(String enc, String key) {
|
||||
try {
|
||||
SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes(), "AES");
|
||||
Security.addProvider(new BouncyCastleProvider());
|
||||
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS7Padding");
|
||||
cipher.init(Cipher.DECRYPT_MODE, secretKeySpec);
|
||||
return new String(cipher.doFinal(Base64.decode(enc)));
|
||||
} catch (NoSuchPaddingException | IllegalBlockSizeException | NoSuchAlgorithmException | BadPaddingException |
|
||||
InvalidKeyException e) {
|
||||
// 1. 还原密钥
|
||||
SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), "AES");
|
||||
// 2. 创建 Cipher
|
||||
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
|
||||
// 3. 初始化解密
|
||||
cipher.init(Cipher.DECRYPT_MODE, keySpec);
|
||||
// 4. 解密
|
||||
byte[] plainBytes = cipher.doFinal(Base64.getDecoder().decode(enc));
|
||||
return new String(plainBytes, StandardCharsets.UTF_8);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,9 @@ package com.electromagnetic.industry.software.common.util;
|
|||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.util.HexUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.crypto.digest.DigestUtil;
|
||||
import cn.hutool.crypto.symmetric.AES;
|
||||
import com.electromagnetic.industry.software.common.exception.BizException;
|
||||
import com.electromagnetic.industry.software.common.parse.*;
|
||||
|
|
@ -184,4 +186,9 @@ public final class EleCommonUtil {
|
|||
return startValid && endValid && orderValid;
|
||||
}
|
||||
|
||||
public static String getStrMd5(String str) {
|
||||
byte[] md5Bytes = DigestUtil.md5(str);
|
||||
return HexUtil.encodeHexStr(md5Bytes);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,15 @@
|
|||
package com.electromagnetic.industry.software.common.util;
|
||||
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
|
||||
public class EleIdCreator {
|
||||
|
||||
public static String createSnowflakeId() {
|
||||
return createSnowflakeIdNum() + "";
|
||||
}
|
||||
|
||||
public static long createSnowflakeIdNum() {
|
||||
return IdUtil.getSnowflake(1, 1).nextId();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,152 +0,0 @@
|
|||
package com.electromagnetic.industry.software.common.util;
|
||||
|
||||
import java.lang.management.ManagementFactory;
|
||||
import java.net.InetAddress;
|
||||
import java.net.NetworkInterface;
|
||||
|
||||
public class IdWorker {
|
||||
|
||||
// 时间起始标记点,作为基准,一般取系统的最近时间(一旦确定不能变动)
|
||||
private final static long twepoch = 1288834974657L;
|
||||
// 机器标识位数
|
||||
private final static long workerIdBits = 5L;
|
||||
// 数据中心标识位数
|
||||
private final static long datacenterIdBits = 5L;
|
||||
// 机器ID最大值
|
||||
private final static long maxWorkerId = -1L ^ (-1L << workerIdBits);
|
||||
// 数据中心ID最大值
|
||||
private final static long maxDatacenterId = -1L ^ (-1L << datacenterIdBits);
|
||||
// 毫秒内自增位
|
||||
private final static long sequenceBits = 12L;
|
||||
// 机器ID偏左移12位
|
||||
private final static long workerIdShift = sequenceBits;
|
||||
// 数据中心ID左移17位
|
||||
private final static long datacenterIdShift = sequenceBits + workerIdBits;
|
||||
// 时间毫秒左移22位
|
||||
private final static long timestampLeftShift = sequenceBits + workerIdBits + datacenterIdBits;
|
||||
private final static long sequenceMask = -1L ^ (-1L << sequenceBits);
|
||||
private static final IdWorker idWorker = new IdWorker();
|
||||
/* 上次生产id时间戳 */
|
||||
private static long lastTimestamp = -1L;
|
||||
private final long workerId;
|
||||
// 数据标识id部分
|
||||
private final long datacenterId;
|
||||
// 0,并发控制
|
||||
private long sequence = 0L;
|
||||
|
||||
public IdWorker() {
|
||||
this.datacenterId = getDatacenterId(maxDatacenterId);
|
||||
this.workerId = getMaxWorkerId(datacenterId, maxWorkerId);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param workerId 工作机器ID
|
||||
* @param datacenterId 序列号
|
||||
*/
|
||||
public IdWorker(long workerId, long datacenterId) {
|
||||
if (workerId > maxWorkerId || workerId < 0) {
|
||||
throw new IllegalArgumentException(String.format("worker Id can't be greater than %d or less than 0", maxWorkerId));
|
||||
}
|
||||
if (datacenterId > maxDatacenterId || datacenterId < 0) {
|
||||
throw new IllegalArgumentException(String.format("datacenter Id can't be greater than %d or less than 0", maxDatacenterId));
|
||||
}
|
||||
this.workerId = workerId;
|
||||
this.datacenterId = datacenterId;
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 获取 maxWorkerId
|
||||
* </p>
|
||||
*/
|
||||
protected static long getMaxWorkerId(long datacenterId, long maxWorkerId) {
|
||||
StringBuffer mpid = new StringBuffer();
|
||||
mpid.append(datacenterId);
|
||||
String name = ManagementFactory.getRuntimeMXBean().getName();
|
||||
if (!name.isEmpty()) {
|
||||
/*
|
||||
* GET jvmPid
|
||||
*/
|
||||
mpid.append(name.split("@")[0]);
|
||||
}
|
||||
/*
|
||||
* MAC + PID 的 hashcode 获取16个低位
|
||||
*/
|
||||
return (mpid.toString().hashCode() & 0xffff) % (maxWorkerId + 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 数据标识id部分
|
||||
* </p>
|
||||
*/
|
||||
protected static long getDatacenterId(long maxDatacenterId) {
|
||||
long id = 0L;
|
||||
try {
|
||||
InetAddress ip = InetAddress.getLocalHost();
|
||||
NetworkInterface network = NetworkInterface.getByInetAddress(ip);
|
||||
if (network == null) {
|
||||
id = 1L;
|
||||
} else {
|
||||
byte[] mac = network.getHardwareAddress();
|
||||
id = ((0x000000FF & (long) mac[mac.length - 1])
|
||||
| (0x0000FF00 & (((long) mac[mac.length - 2]) << 8))) >> 6;
|
||||
id = id % (maxDatacenterId + 1);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
System.out.println(" getDatacenterId: " + e.getMessage());
|
||||
}
|
||||
return id;
|
||||
}
|
||||
|
||||
public static long getSnowFlakeId() {
|
||||
return idWorker.nextId();
|
||||
}
|
||||
|
||||
public static String getSnowFlakeIdString() {
|
||||
return String.valueOf(getSnowFlakeId());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取下一个ID
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public synchronized long nextId() {
|
||||
long timestamp = timeGen();
|
||||
if (timestamp < lastTimestamp) {
|
||||
throw new RuntimeException(String.format("Clock moved backwards. Refusing to generate id for %d milliseconds", lastTimestamp - timestamp));
|
||||
}
|
||||
|
||||
if (lastTimestamp == timestamp) {
|
||||
// 当前毫秒内,则+1
|
||||
sequence = (sequence + 1) & sequenceMask;
|
||||
if (sequence == 0) {
|
||||
// 当前毫秒内计数满了,则等待下一秒
|
||||
timestamp = tilNextMillis(lastTimestamp);
|
||||
}
|
||||
} else {
|
||||
sequence = 0L;
|
||||
}
|
||||
lastTimestamp = timestamp;
|
||||
// ID偏移组合生成最终的ID,并返回ID
|
||||
long nextId = ((timestamp - twepoch) << timestampLeftShift)
|
||||
| (datacenterId << datacenterIdShift)
|
||||
| (workerId << workerIdShift) | sequence;
|
||||
|
||||
return nextId;
|
||||
}
|
||||
|
||||
private long tilNextMillis(final long lastTimestamp) {
|
||||
long timestamp = this.timeGen();
|
||||
while (timestamp <= lastTimestamp) {
|
||||
timestamp = this.timeGen();
|
||||
}
|
||||
return timestamp;
|
||||
}
|
||||
|
||||
private long timeGen() {
|
||||
return System.currentTimeMillis();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
package com.electromagnetic.industry.software.common.util;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.security.MessageDigest;
|
||||
|
||||
@Slf4j
|
||||
public class SignUtils {
|
||||
|
||||
/**
|
||||
* 获取MD5加密后的字符串
|
||||
*
|
||||
* @param str 加密前的字符串
|
||||
* @return
|
||||
*/
|
||||
public static String MD5(String str) {
|
||||
try {
|
||||
MessageDigest md = MessageDigest.getInstance("MD5");
|
||||
md.reset();
|
||||
md.update(str.getBytes(StandardCharsets.UTF_8));
|
||||
byte[] byteArray = md.digest();
|
||||
StringBuffer md5StrBuff = new StringBuffer();
|
||||
for (int i = 0; i < byteArray.length; i++) {
|
||||
if (Integer.toHexString(0xFF & byteArray[i]).length() == 1) {
|
||||
md5StrBuff.append("0").append(Integer.toHexString(0xFF & byteArray[i]));
|
||||
} else {
|
||||
md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));
|
||||
}
|
||||
}
|
||||
return md5StrBuff.toString();
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,8 +1,10 @@
|
|||
package com.electromagnetic.industry.software.common.util;
|
||||
|
||||
import com.electromagnetic.industry.software.common.cons.UserConstants;
|
||||
import io.jsonwebtoken.Claims;
|
||||
import io.jsonwebtoken.Jwts;
|
||||
import io.jsonwebtoken.security.Keys;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
public class TokenUtil {
|
||||
|
||||
|
|
@ -12,11 +14,12 @@ public class TokenUtil {
|
|||
* @param token
|
||||
* @return
|
||||
*/
|
||||
public static Claims getLoginInfo(String token) {
|
||||
return Jwts.parser()
|
||||
.setSigningKey(UserConstants.SECRET_KEY)
|
||||
.parseClaimsJws(token)
|
||||
.getBody();
|
||||
public static Claims getLoginInfo(String token, String loginEncode) {
|
||||
return Jwts.parser() // 返回 JwtParserBuilder
|
||||
.verifyWith(Keys.hmacShaKeyFor(loginEncode.getBytes(StandardCharsets.UTF_8)))
|
||||
.build()
|
||||
.parseSignedClaims(token) // 对应原来的 parseClaimsJws
|
||||
.getPayload(); // 对应原来的 getBody()
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue