7 files modified
3 files added
| | |
| | | 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; |
| | |
| | | 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); |
| | | } |
| | | } |
New file |
| | |
| | | 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) { |
| | | |
| | | } |
| | | } |
New file |
| | |
| | | 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(); |
| | | } |
| | | } |
New file |
| | |
| | | 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; |
| | | } |
| | | } |
| | | } |
| | |
| | | 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<>();
|
| | | }
|
| | |
| | | * @date 2022-03-17 |
| | | **/ |
| | | @Slf4j |
| | | //@EncryptEnable |
| | | @EncryptEnable |
| | | @RequiredArgsConstructor |
| | | @CrossOrigin("*") |
| | | @RestController |
| | |
| | | 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; |
| | |
| | | * @date 2022-03-17 |
| | | **/ |
| | | @Slf4j |
| | | @EncryptEnable |
| | | @RequiredArgsConstructor |
| | | @CrossOrigin("*") |
| | | @RestController |
| | |
| | | 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)); |
| | | } |
| | | |
| | | // 更改状态为已同步 |
| | |
| | | publisher-confirm-type: correlated |
| | | |
| | | system: |
| | | online-transfer: true |
| | | chain-listener: true |
| | | trade-job: true |
| | | online-transfer: false |
| | | chain-listener: false |
| | | trade-job: false |
| | |
| | | |
| | | @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); |
| | | } |
| | | |
| | | } |