多域名加密成txt上传oss

@Log4j2
@Service
public class DynamicDomainServiceImpl extends AbstractServiceImpl<DynamicDomain, String> implements DynamicDomainService {

    @Autowired
    private DynamicDomainMapper dynamicDomainMapper;

    @Value("${domainTxtUploadUrl:null}")
    protected String domainTxtUploadUrl;

    @Value("${domainTxtUrl:null}")
    protected String domainTxtUrl;

    @Autowired
    RestTemplate restTemplate;

    public DynamicDomainServiceImpl(BaseDao<DynamicDomain, String> base) {
        super(base);
    }

    @Override
    public PageBO<DynamicDomain> findPage(DynamicDomain req) {
        PageBO<DynamicDomain> pageBO = new PageBO<>();
        Page page = PageHelper.startPage(req.getPage(), req.getLimit(), true);
        pageBO.setData(dynamicDomainMapper.findList(req));
        pageBO.setCount(page.getTotal());
        return pageBO;
    }

    @Override
    public void domainUpload(String token) throws Exception {
        List<DynamicDomain> DynamicDomain = dynamicDomainMapper.finddomain();
        StringBuilder domainStr = new StringBuilder();
        for (DynamicDomain dynamicDomain : DynamicDomain) {
            domainStr.append(dynamicDomain.getDomain()).append(",");
        }
        String domainStrFinal = domainStr.substring(0, domainStr.length() - 1);
        //Rsa加密
        String encryptData = RSACoder.encryptByPublicKey(domainStrFinal, AuthUtil.getSecurityKeyStr("secretkey/dynamicDomainPublicKey"));
        File file = new File("xx.txt");
        FileUtils.writeStringToFile(file, encryptData, StandardCharsets.UTF_8);

        //设置请求头
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.MULTIPART_FORM_DATA);
        headers.add("token", token);

        MultiValueMap<String, Object> form = new LinkedMultiValueMap<>();
        Resource resource = new FileSystemResource(file);
        form.add("file", resource);

        HttpEntity<MultiValueMap<String, Object>> files = new HttpEntity<>(form, headers);

        Map<String, Object> resultMap = restTemplate.postForObject(domainTxtUploadUrl, files, Map.class);
        log.warn(JsonUtil.object2Json(resultMap));
    }

    @Override
    public PageBO<DynamicDomain> domainDownload() throws Exception {
        List<DynamicDomain> dynamicDomains = new ArrayList<>();
        URL url = new URL(domainTxtUrl);
        URLConnection connection = url.openConnection();
        HttpURLConnection htCon = (HttpURLConnection) connection;
        int code = htCon.getResponseCode();
        if (code == HttpURLConnection.HTTP_OK) {
            BufferedReader in = new BufferedReader(new InputStreamReader(htCon.getInputStream()));
            String inputLine = in.readLine();
            //释放资源
            in.close();
            //Rsa解密
            String decryptData = RSACoder.decryptByPrivateKey(inputLine, AuthUtil.getSecurityKeyStr("secretkey/dynamicDomainPrivateKey"));
            String[] decryptDataList = decryptData.split(",");
            for (String decryptdata : decryptDataList) {
                DynamicDomain dynamicDomain = new DynamicDomain();
                dynamicDomain.setDomain(decryptdata);
                dynamicDomains.add(dynamicDomain);
            }
            PageBO<DynamicDomain> pageBO = new PageBO<>();
            pageBO.setData(dynamicDomains);
            return pageBO;
        }
        return null;
    }

}

猜你喜欢

转载自blog.csdn.net/programmer188/article/details/112357552