Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Merge remote-tracking branch 'wechat/develop' into develop
# Conflicts:
#	weixin-java-pay/src/main/java/com/github/binarywang/wxpay/v3/util/RsaCryptoUtil.java
  • Loading branch information
曾浩 committed Jan 13, 2021
commit daf5c8869d9fdb18dbb43787f278e008d29630d4
Original file line number Diff line number Diff line change
Expand Up @@ -30,26 +30,12 @@ public class RsaCryptoUtil {

public static void encryptFields(Object encryptObject, X509Certificate certificate) throws WxPayException {
try {
encryptObject(encryptObject, certificate);
encryptField(encryptObject, certificate);
} catch (Exception e) {
throw new WxPayException("敏感信息加密失败", e);
}
}

private static void encryptObject(Object encryptObject, X509Certificate certificate) throws IllegalAccessException, IllegalBlockSizeException {
if(encryptObject instanceof Collection) {
for (Object object : (Collection) encryptObject) {
encryptField(object, certificate);
}
} else if (encryptObject.getClass().isArray()) {
for (Object object : (Object[]) encryptObject) {
encryptField(object, certificate);
}
} else {
encryptField(encryptObject, certificate);
}
}

private static void encryptField(Object encryptObject, X509Certificate certificate) throws IllegalAccessException, IllegalBlockSizeException {
Class<?> infoClass = encryptObject.getClass();
Field[] infoFieldArray = infoClass.getDeclaredFields();
Expand All @@ -68,8 +54,18 @@ private static void encryptField(Object encryptObject, X509Certificate certifica
} else {
field.setAccessible(true);
Object obj = field.get(encryptObject);
if (obj != null) {
encryptObject(field.get(encryptObject), certificate);
if (obj == null) {
continue;
}
if (obj instanceof Collection) {
Collection collection = (Collection) obj;
for (Object o : collection) {
if (o != null) {
encryptField(o, certificate);
}
}
} else {
encryptField(obj, certificate);
}
}
}
Expand Down
You are viewing a condensed version of this merge commit. You can view the full changes here.