@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;
}
}
多域名加密成txt上传oss
猜你喜欢
转载自blog.csdn.net/programmer188/article/details/112357552
今日推荐
周排行