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()
}
}