From e7cf898cbeb1047b27ecd72566d649deb4cd6897 Mon Sep 17 00:00:00 2001 From: chenxudong Date: Fri, 17 Oct 2025 14:52:56 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E8=AE=B8=E5=8F=AF=E8=AF=81?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- electrmangnetic-backup/pom.xml | 21 +++--- electrmangnetic/pom.xml | 34 +++++---- .../software/manage/pojo/other}/TreeNode.java | 2 +- .../manage/service/EdTagLibraryService.java | 2 +- .../serviceimpl/EdTagLibraryServiceImpl.java | 2 +- .../service/serviceimpl/UserServiceImpl.java | 14 ++-- electromagnetic-common/pom.xml | 69 ++++++++++++------- .../software/common/util/AESUtils.java | 20 ++++-- .../software/common/util/TokenUtil.java | 12 ++-- 9 files changed, 106 insertions(+), 70 deletions(-) rename {electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/pojo => electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/other}/TreeNode.java (82%) diff --git a/electrmangnetic-backup/pom.xml b/electrmangnetic-backup/pom.xml index ff29ae3..f2761fd 100644 --- a/electrmangnetic-backup/pom.xml +++ b/electrmangnetic-backup/pom.xml @@ -15,39 +15,36 @@ 17 17 UTF-8 + 1.18.36 + 5.8.22 + org.springframework.boot spring-boot-starter-web + org.projectlombok lombok + ${lombok.version} + cn.hutool hutool-all - 5.8.22 + ${hutool.version} + com.electromagnetic.data electromagnetic-common 1.0 compile - - javax.xml.bind - jaxb-api - 2.3.1 - - - - com.sun.xml.bind - jaxb-impl - 2.3.3 - + diff --git a/electrmangnetic/pom.xml b/electrmangnetic/pom.xml index 170b4c4..931dd14 100644 --- a/electrmangnetic/pom.xml +++ b/electrmangnetic/pom.xml @@ -16,6 +16,11 @@ 17 UTF-8 1.4.1.Final + 3.5.7 + 3.5.1 + 5.3.1 + 1.2.6 + 1.9.7 @@ -30,44 +35,40 @@ spring-boot-starter-web - - - - - org.springframework.boot spring-boot-starter-webflux + org.springframework.ai spring-ai-starter-model-ollama + org.springframework.ai spring-ai-starter-vector-store-mariadb + com.baomidou mybatis-plus-spring-boot3-starter - 3.5.7 + ${mybatis-plus.version} - - - - - + org.mariadb.jdbc mariadb-java-client - 3.5.1 + ${mariaddb-client.version} + com.electromagnetic.data electromagnetic-common 1.0 compile + com.github.pagehelper pagehelper @@ -77,13 +78,14 @@ jsqlparser - 5.3.1 + ${pagehelper.version} + com.alibaba druid-spring-boot-starter - 1.2.6 + ${druid.version} @@ -91,15 +93,17 @@ mapstruct-processor ${mapstruct.version} + org.mapstruct mapstruct ${mapstruct.version} + org.aspectj aspectjweaver - 1.9.7 + ${aspectjweaver.version} diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/pojo/TreeNode.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/other/TreeNode.java similarity index 82% rename from electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/pojo/TreeNode.java rename to electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/other/TreeNode.java index 4907c52..d1fee82 100644 --- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/pojo/TreeNode.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/other/TreeNode.java @@ -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; diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdTagLibraryService.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdTagLibraryService.java index cd8b162..59f6e3b 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdTagLibraryService.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdTagLibraryService.java @@ -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; diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdTagLibraryServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdTagLibraryServiceImpl.java index 4e2385a..a9562c3 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdTagLibraryServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdTagLibraryServiceImpl.java @@ -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; diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserServiceImpl.java index 6773a78..cfcc2e2 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserServiceImpl.java @@ -35,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; @@ -119,11 +121,13 @@ public class UserServiceImpl extends ServiceImpl 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, elePropertyConfig.getLoginEncPasswd()) + .claims(claims) // 自定义 claims + .id(UUID.randomUUID().toString()) // JWT ID + .issuedAt(new Date()) // 签发时间,使用 java.util.Date + .signWith(key) // 签名 .compact(); } diff --git a/electromagnetic-common/pom.xml b/electromagnetic-common/pom.xml index 998c3ca..8337df9 100644 --- a/electromagnetic-common/pom.xml +++ b/electromagnetic-common/pom.xml @@ -15,109 +15,128 @@ 17 17 UTF-8 - 0.9.0 + 0.13.0 + 1.18.36 + 5.8.22 + 1.5.16 + 0.0.7 + 1.2.2 + 1.0.3 + 1.78 + 2.0.1 + 4.1.2 + 4.1.2 + 4.1.0 + 1.26.0 + 3.0.3 + 2.3.3 + 3.0.2 + org.projectlombok lombok - 1.18.36 + ${lombok.version} + io.jsonwebtoken jjwt ${jwt.version} + org.bouncycastle bcprov-jdk18on - 1.78 + ${bcprov.version} + cn.hutool hutool-all - 5.8.22 + ${hutool.version} + ch.qos.logback logback-classic - 1.5.16 + ${logback.version} + ch.qos.logback logback-core - 1.5.16 + ${logback.version} + fr.opensagres.xdocreport fr.opensagres.poi.xwpf.converter.pdf-gae - 2.0.1 + ${fr.opensagres.xdocreport.version} com.documents4j documents4j-local - 1.0.3 + ${documents4j.version} + com.documents4j documents4j-transformer-msoffice-word - 1.0.3 + ${documents4j.version} org.apache.poi poi-ooxml - 4.1.2 org.apache.commons commons-compress + ${poi-ooxml.version} org.apache.commons commons-compress - 1.26.0 + ${commons-compress.version} org.apache.poi poi-ooxml-schemas - 4.1.0 + ${poi-ooxml-schemas.version} org.apache.poi poi-scratchpad - 4.1.2 + ${poi-scratchpad.version} org.apache.pdfbox pdfbox - 3.0.3 - - - javax.xml.bind - jaxb-api - 2.3.1 + ${pdfbox.version} + com.sun.xml.bind jaxb-impl - 2.3.3 + ${jaxb-impl.version} io.github.mymonstercat rapidocr - 0.0.7 + ${rapidocr.version} @@ -125,17 +144,19 @@ io.github.mymonstercat rapidocr-onnx-platform - 0.0.7 + ${rapidocr.version} + io.github.mymonstercat rapidocr-onnx-linux-x86_64 - 1.2.2 + ${rapidocr-onnx.version} + org.apache.pdfbox jbig2-imageio - 3.0.2 + ${jbig2-imageio.version} diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/AESUtils.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/AESUtils.java index 62707d0..cedc8b4 100644 --- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/AESUtils.java +++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/AESUtils.java @@ -1,8 +1,10 @@ package com.electromagnetic.industry.software.common.util; -import cn.hutool.crypto.SecureUtil; -import cn.hutool.crypto.symmetric.AES; +import javax.crypto.Cipher; +import javax.crypto.spec.SecretKeySpec; +import java.nio.charset.StandardCharsets; +import java.util.Base64; /** *

Description: [AES对称加密和解密]

@@ -22,11 +24,15 @@ public class AESUtils { */ public static String decrypt(String enc, String key) { try { - // 使用Hutool创建AES解密器(ECB模式,PKCS7Padding) - AES aes = SecureUtil.aes(key.getBytes()); - // 执行解密(Hutool会自动处理Base64解码) - byte[] decrypted = aes.decrypt(enc); - return new String(decrypted); + // 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); } diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/TokenUtil.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/TokenUtil.java index fb54689..a99f07f 100644 --- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/TokenUtil.java +++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/TokenUtil.java @@ -2,6 +2,9 @@ package com.electromagnetic.industry.software.common.util; import io.jsonwebtoken.Claims; import io.jsonwebtoken.Jwts; +import io.jsonwebtoken.security.Keys; + +import java.nio.charset.StandardCharsets; public class TokenUtil { @@ -12,10 +15,11 @@ public class TokenUtil { * @return */ public static Claims getLoginInfo(String token, String loginEncode) { - return Jwts.parser() - .setSigningKey(loginEncode) - .parseClaimsJws(token) - .getBody(); + return Jwts.parser() // 返回 JwtParserBuilder + .verifyWith(Keys.hmacShaKeyFor(loginEncode.getBytes(StandardCharsets.UTF_8))) + .build() + .parseSignedClaims(token) // 对应原来的 parseClaimsJws + .getPayload(); // 对应原来的 getBody() } }