From b904509daeab545173765eb214097c7e414e33ff Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Tue, 14 Jun 2022 19:29:53 +0800 Subject: [PATCH] fix interface encrypt --- src/main/java/cc/mrbird/febs/dapp/service/impl/BscUsdtContractEvent.java | 5 ++ src/main/java/cc/mrbird/febs/dapp/controller/ApiCommonController.java | 2 src/main/java/cc/mrbird/febs/common/configure/i18n/LocaleResolverConfig.java | 19 +++++++++ src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java | 2 + src/main/java/cc/mrbird/febs/common/configure/i18n/MessageSourceUtils.java | 31 +++++++++++++++ src/main/java/cc/mrbird/febs/common/contants/AppContants.java | 3 + src/main/java/cc/mrbird/febs/common/advise/MyResponseBodyAdvise.java | 4 + src/main/resources/application-dev.yml | 6 +- src/main/java/cc/mrbird/febs/common/configure/i18n/CustomLocaleResolver.java | 33 ++++++++++++++++ src/test/java/cc/mrbird/febs/JunitTest.java | 12 ++--- 10 files changed, 105 insertions(+), 12 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/common/advise/MyResponseBodyAdvise.java b/src/main/java/cc/mrbird/febs/common/advise/MyResponseBodyAdvise.java index 7729da2..0ff2bbc 100644 --- a/src/main/java/cc/mrbird/febs/common/advise/MyResponseBodyAdvise.java +++ b/src/main/java/cc/mrbird/febs/common/advise/MyResponseBodyAdvise.java @@ -3,6 +3,7 @@ import cc.mrbird.febs.common.contants.AppContants; import cn.hutool.crypto.SecureUtil; import cn.hutool.crypto.asymmetric.KeyType; +import cn.hutool.crypto.asymmetric.RSA; import com.alibaba.fastjson.JSONObject; import org.springframework.core.MethodParameter; import org.springframework.http.MediaType; @@ -28,6 +29,7 @@ return o; } - return SecureUtil.rsa(AppContants.REQ_PRIVATE_KEY, AppContants.REQ_PUBLIC_KEY).encryptBase64(JSONObject.toJSONString(o), KeyType.PrivateKey); + RSA rsa = new RSA(AppContants.RESP_PRIVATE_KEY, AppContants.RESP_PUBLIC_KEY); + return rsa.encryptBase64(JSONObject.toJSONString(o), KeyType.PublicKey); } } diff --git a/src/main/java/cc/mrbird/febs/common/configure/i18n/CustomLocaleResolver.java b/src/main/java/cc/mrbird/febs/common/configure/i18n/CustomLocaleResolver.java new file mode 100644 index 0000000..e9a0be1 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/common/configure/i18n/CustomLocaleResolver.java @@ -0,0 +1,33 @@ +package cc.mrbird.febs.common.configure.i18n; + +import cn.hutool.core.util.StrUtil; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.LocaleResolver; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Locale; + +/** + * @author wzy + * @date 2020-04-30 14:56 + **/ +@Configuration +public class CustomLocaleResolver implements LocaleResolver { + + @Override + public Locale resolveLocale(HttpServletRequest httpServletRequest) { + String lang = httpServletRequest.getHeader("lang"); + if(StrUtil.isBlank(lang)) { + return new Locale("zh", "CN"); + } else { + String[] splite = lang.split("_"); + return new Locale(splite[0], splite[1]); + } + } + + @Override + public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) { + + } +} diff --git a/src/main/java/cc/mrbird/febs/common/configure/i18n/LocaleResolverConfig.java b/src/main/java/cc/mrbird/febs/common/configure/i18n/LocaleResolverConfig.java new file mode 100644 index 0000000..21a702e --- /dev/null +++ b/src/main/java/cc/mrbird/febs/common/configure/i18n/LocaleResolverConfig.java @@ -0,0 +1,19 @@ +package cc.mrbird.febs.common.configure.i18n; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.LocaleResolver; + + +/** + * @author wzy + * @date 2020-04-27 11:55 + **/ +@Configuration +public class LocaleResolverConfig { + + @Bean + public LocaleResolver localeResolver() { + return new CustomLocaleResolver(); + } +} diff --git a/src/main/java/cc/mrbird/febs/common/configure/i18n/MessageSourceUtils.java b/src/main/java/cc/mrbird/febs/common/configure/i18n/MessageSourceUtils.java new file mode 100644 index 0000000..0d1420c --- /dev/null +++ b/src/main/java/cc/mrbird/febs/common/configure/i18n/MessageSourceUtils.java @@ -0,0 +1,31 @@ +package cc.mrbird.febs.common.configure.i18n; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.context.MessageSource; +import org.springframework.context.NoSuchMessageException; +import org.springframework.context.i18n.LocaleContextHolder; +import org.springframework.stereotype.Component; + +/** + * @author wzy + * @date 2020-05-05 16:57 + **/ +@Component +@Slf4j +public class MessageSourceUtils { + + private static MessageSource messageSource; + + public MessageSourceUtils(MessageSource messageSource) { + MessageSourceUtils.messageSource = messageSource; + } + + public static String getString(String key) { + try { + return messageSource.getMessage(key, null, LocaleContextHolder.getLocale()); + } catch (NoSuchMessageException e) { + log.error("#获取国际化异常#", e); + return key; + } + } +} diff --git a/src/main/java/cc/mrbird/febs/common/contants/AppContants.java b/src/main/java/cc/mrbird/febs/common/contants/AppContants.java index 6d6789e..7540a62 100644 --- a/src/main/java/cc/mrbird/febs/common/contants/AppContants.java +++ b/src/main/java/cc/mrbird/febs/common/contants/AppContants.java @@ -166,5 +166,8 @@ public static final String REQ_PUBLIC_KEY = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1cHrcMpXoKNC8rjAa/jAbgU2bhIBmJmn6iYDfqt0Him/p2s5F0L9nfzZOLYlPq3z12zvXl9IgThhtLIBLi86RPW0ljuwpTvIZz9O36Zae9eMk5bMNsFEFsxg1IOLIM2Oc4ffNvGL58Uupp9RL5NCN1MRQyY61ISy7H2VRTznoJQIDAQAB"; public static final String REQ_PRIVATE_KEY = "MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBALVwetwylego0LyuMBr+MBuBTZuEgGYmafqJgN+q3QeKb+nazkXQv2d/Nk4tiU+rfPXbO9eX0iBOGG0sgEuLzpE9bSWO7ClO8hnP07fplp714yTlsw2wUQWzGDUg4sgzY5zh9828YvnxS6mn1Evk0I3UxFDJjrUhLLsfZVFPOeglAgMBAAECgYAPKWWS5gVB37tFsRajAs+5VK5MCyABqT8c6QWkay5KNYbRl2+6RM3h068RjFuXlUB9eQMAqpasDWqcIOZdqcKqmxm0ILF2zfPzJr4RaQNSNwDCVrKEeaDtrZQcq/0ygaNDF9y203UMHT0dfEQSGp/xkjTgXNsOuC9iLM56XScOVwJBAPOZLbrCi0h4PL7g3rWsCw8/aN6ehkJ3iTDgjYpdBwJOJSyxV0qi0xmDthGqPd99Kvc14u1jy3ghpm1SAEunrj8CQQC+rS6qajIkK7NiRmX43chDhgMPGo0UFHbmHyYBb1Eyrxu1MNWQEh221p54GsB2HqAGRhxxQ98Ds2S26Au7QpibAkA2nQAAn/8kFzjfPoEPz+uG1puHVZkaK7yJRb7V53dbz/NLqtK8O/cCAGKAYV+PzHsmg2FGAZqrazfpyHmifIx3AkBnFau/+A/JnFKr09F3XTfSwZXPyZPyAipRuQ9MAUmNtDuvloovDIxB9//OgPACLAZpvefMmFvuXUMa25LUF2n3AkBGb+vO+69NSyQM2SHKZ9fUrxx9ZPhupNt/TXNL9OMEQiLaHCYgg0tfcojGe3QjBCA6wVG+dCyZUcv5OwiW23pI"; + public static final String RESP_PUBLIC_KEY = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDcgj54n3XV+x2Df8Hscqsbd3BQiqBNf/pQiL+4vhKaPN8ZcG0Xreq018hl+yQrOaqYNVLwvi7gfkXpb/G2TxMEnC5rtAeWsMA5mPeePe+Cg+mJ/yXR4tlk/d90L5g7PTxalH50HdCoXwFBenktitKrsDfQzi1+VCHBGUhPUjsJHQIDAQAB"; + public static final String RESP_PRIVATE_KEY = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBANyCPnifddX7HYN/wexyqxt3cFCKoE1/+lCIv7i+Epo83xlwbRet6rTXyGX7JCs5qpg1UvC+LuB+Relv8bZPEwScLmu0B5awwDmY954974KD6Yn/JdHi2WT933QvmDs9PFqUfnQd0KhfAUF6eS2K0quwN9DOLX5UIcEZSE9SOwkdAgMBAAECgYAt52Mv4yo5qHQFavQoz9o09pFIAwPJ/mlSmJUo1VC0ERX0isX7FvZ0PTN3n2dxJCkSVI92lHDXxRGyvd4YsK9pdErGVL2DecbbER7069y94g/uHsYq15skzLlyUNhyu2FOUCsVFy+M/C0qk14z/xG1ze3GWNHP1oc1leAYpoWmAQJBAPXxRvYTxmZAFv3J4pcf/FXqmUXdbJI5sHWXe6Pcs+rIuil5ePqX6AQBoQ5PalYhe5/kKzr7Gy6GSzlpztuOV50CQQDlhrTNytQdDCNIOL8uw3t4D8mDGuslPcRoykmaCQhd4NvaqLZrBS8k+TuS2+v5ryng3HhcYjR0h1MHHG69En+BAkEAzt2G5mxzsIWv0QACi0LoKAwPp+g67jN/7SjhYk69Nnpnu4Lk80LacKQ+J588vf2j0jVE93NGxbdHhp8s0xfDMQJBAJFlOqVeRe28oaD/aYRLCqyse39Ujv6BWSj0c5li/WzSoxKpaxzyJMIsK2PFcn8xSbsKjigfgZELpDnN9gxJaoECQCn+tZB0g9WJMaGNCMdlStPHAO2ajS1HY6BV5Xq13hixAdp5bLzbg0GrY25MrpTCFBEqCx+7F4cYUvVazLuAK6g="; + public static final LinkedList<String> ENCRYPT_METHOD = new LinkedList<>(); } diff --git a/src/main/java/cc/mrbird/febs/dapp/controller/ApiCommonController.java b/src/main/java/cc/mrbird/febs/dapp/controller/ApiCommonController.java index e13d208..49b34a3 100644 --- a/src/main/java/cc/mrbird/febs/dapp/controller/ApiCommonController.java +++ b/src/main/java/cc/mrbird/febs/dapp/controller/ApiCommonController.java @@ -23,7 +23,7 @@ * @date 2022-03-17 **/ @Slf4j -//@EncryptEnable +@EncryptEnable @RequiredArgsConstructor @CrossOrigin("*") @RestController diff --git a/src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java b/src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java index 9fb8097..13e03e0 100644 --- a/src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java +++ b/src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java @@ -1,5 +1,6 @@ package cc.mrbird.febs.dapp.controller; +import cc.mrbird.febs.common.annotation.EncryptEnable; import cc.mrbird.febs.common.contants.AppContants; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.utils.LoginUserUtil; @@ -24,6 +25,7 @@ * @date 2022-03-17 **/ @Slf4j +@EncryptEnable @RequiredArgsConstructor @CrossOrigin("*") @RestController diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/BscUsdtContractEvent.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/BscUsdtContractEvent.java index c8be0a5..2664c27 100644 --- a/src/main/java/cc/mrbird/febs/dapp/service/impl/BscUsdtContractEvent.java +++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/BscUsdtContractEvent.java @@ -125,9 +125,14 @@ OnlineTransferUtil.addTransferRecord(e.from, e.to, amount, e.log.getTransactionHash(), DappTransferRecordEntity.TRANSFER_SOURCE_FLAG_APPLICATION, "USDT"); + // 这个方法主要是处理,tp钱包在调用transfer时,交易详情中的金额可能因为网速慢而显示晚,从而导致实际转账比记录中的少,顾做此处理 BigDecimal realCoin = amount.divide(fundFlow.getNewestPrice(), decimals, RoundingMode.HALF_UP); if (fundFlow.getAmount().subtract(new BigDecimal("0.1")).compareTo(realCoin) > 0) { fundFlow.setAmount(realCoin); + + BigDecimal subtract = fundFlow.getAmount().subtract(realCoin); + BigDecimal poolRemain = (BigDecimal) redisUtils.get(AppContants.REDIS_KEY_TRANSFER_POOL_VOL_REMAIN); + redisUtils.set(AppContants.REDIS_KEY_TRANSFER_POOL_VOL_REMAIN, poolRemain.add(subtract)); } // 更改状态为已同步 diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 06c4fd1..7638e54 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -49,6 +49,6 @@ publisher-confirm-type: correlated system: - online-transfer: true - chain-listener: true - trade-job: true \ No newline at end of file + online-transfer: false + chain-listener: false + trade-job: false \ No newline at end of file diff --git a/src/test/java/cc/mrbird/febs/JunitTest.java b/src/test/java/cc/mrbird/febs/JunitTest.java index f140a3b..2980b93 100644 --- a/src/test/java/cc/mrbird/febs/JunitTest.java +++ b/src/test/java/cc/mrbird/febs/JunitTest.java @@ -67,12 +67,10 @@ @Test public void decodeTest() { - RSA rsa = new RSA(); - - // 公钥加密,私钥解密 - byte[] encrypt = rsa.encrypt(StrUtil.bytes("我是一段测试aaaa", CharsetUtil.CHARSET_UTF_8), KeyType.PublicKey); - byte[] decrypt = rsa.decrypt(encrypt, KeyType.PrivateKey); - - System.out.println(StrUtil.str(decrypt, CharsetUtil.CHARSET_UTF_8)); + String ss = "pAEYpX4a+gm9lqy2/bQNx/EjJS0D7I/ezcCB+G/pgI5GDLWUj7+S7jhGWlV2PTGHcNj8vJQRXp5qpV7GOmaQX30HVao3srsOEL2CWU5F/5A4T9ncs3NuoYEv5LUCTolEEq8r5VdBRzU9BoZCISLFQxjFIp5inuydjz2JE9lnOBYQIP8kZSXHy2N1gkythypbj81q9cC83wNND7pvSjw140EDtXWqlCIhpoZlwB/n8+D5khBHwxWhuf0wacYLj9aKZ8tSKMyw0/WdQvpBZ6ymxuoHrLlcL36PTEN59rce9tnnRs5+AjAXppx4GIODdvbHLQJurBslw2GVHJeDbugRvA=="; + RSA rsa = new RSA(AppContants.RESP_PRIVATE_KEY, AppContants.RESP_PUBLIC_KEY); + String s = rsa.decryptStr(ss, KeyType.PrivateKey); + System.out.println(s); } + } -- Gitblit v1.9.1