Commit 7ccf1612 authored by chenchao.deng's avatar chenchao.deng

短信

parent 9a5dce7d
......@@ -26,7 +26,7 @@ public class SmsUtils {
*/
public static String sendSmsOTP(String phone) {
String randomCode = createRandom(true, 6);
DefaultProfile profile = DefaultProfile.getProfile("default", "LTAI5tQ6KMaEbeFCJ1wd4Kuk", "5M5ILAkQu2wU83jcpTAeYN0sBj3JTN");
DefaultProfile profile = DefaultProfile.getProfile("default", "LTAI5tEdz1DY4A4oYUawUuNH", "8KWmYgO0QIicZpyulhEwUhZqStrTwe");
IAcsClient client = new DefaultAcsClient(profile);
CommonRequest request = new CommonRequest();
......@@ -37,7 +37,7 @@ public class SmsUtils {
request.setAction("SendSms");
request.putQueryParameter("SignName", "防关联浏览器");
request.putQueryParameter("PhoneNumbers", phone);
request.putQueryParameter("TemplateCode", "SMS_174885489");
request.putQueryParameter("TemplateCode", "SMS_471410139");
request.putQueryParameter("TemplateParam", "{\"code\":\"" + randomCode + "\"}");
try {
CommonResponse response = client.getCommonResponse(request);
......
package com.edgec.browserbackend.browser.domain;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
/**
* 云平台配置表
*
* @Author: Chen
* @Date: 2024年8月1日
*/
@Getter
@Setter
@NoArgsConstructor
@Document(collection = "cloudPlatformConfig")
@JsonIgnoreProperties(ignoreUnknown = true)
public class CloudPlatformConfig {
@Id
private String id;
private String platform;//云平台 ali、tencent
private String regionId;//地域id
private String templateId;//云平台模板id
private String usableArea;//可用区
}
package com.edgec.browserbackend.browser.repository;
import com.edgec.browserbackend.browser.domain.CloudPlatformConfig;
import com.edgec.browserbackend.browser.domain.CloudPlatformOrder;
import java.util.List;
import org.springframework.data.mongodb.repository.MongoRepository;
/**
* @Description //云平台模板 respository
* @Date 2024年8月1日
* @Author Chen
**/
public interface CloudPlatformConfigRepository extends MongoRepository<CloudPlatformConfig, String> {
CloudPlatformConfig findByPlatformAndRegionId(String platform, String regionId);
}
......@@ -12,6 +12,7 @@ import com.edgec.browserbackend.account.domain.QueryIpUrlList;
import com.edgec.browserbackend.account.repository.AccountRepository;
import com.edgec.browserbackend.account.repository.QueryIpUrlListRepository;
import com.edgec.browserbackend.account.service.AccountService;
import com.edgec.browserbackend.browser.domain.CloudPlatformConfig;
import com.edgec.browserbackend.browser.domain.CloudPlatformOrder;
import com.edgec.browserbackend.browser.domain.IpCountRecord;
import com.edgec.browserbackend.browser.domain.IpResource;
......@@ -20,6 +21,7 @@ import com.edgec.browserbackend.browser.dto.DeleteIpResultDto;
import com.edgec.browserbackend.browser.dto.IpBuyResultDto;
import com.edgec.browserbackend.browser.dto.IpInfoResultDto;
import com.edgec.browserbackend.browser.dto.ShopRequestDto;
import com.edgec.browserbackend.browser.repository.CloudPlatformConfigRepository;
import com.edgec.browserbackend.browser.repository.CloudPlatformOrderRepository;
import com.edgec.browserbackend.browser.repository.IpCountRecordRepository;
import com.edgec.browserbackend.browser.repository.IpResourceRepository;
......@@ -29,6 +31,7 @@ import com.edgec.browserbackend.common.commons.utils.NotifyUtils;
import com.edgec.browserbackend.common.enums.RegionMappingEnum;
import com.edgec.browserbackend.common.utils.ThreadPoolUtils;
import com.edgec.browserbackend.common.utils.Trans;
import javax.annotation.Resource;
import okhttp3.*;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
......@@ -79,9 +82,12 @@ public class BrowserTask {
@Value("${spring.profiles.active}")
private String profiles;
@Autowired
@Resource
private CloudPlatformOrderRepository cloudPlatformOrderRepository;
@Resource
private CloudPlatformConfigRepository cloudPlatformConfigRepository;
public Map<String, String> buildGetHeader() {
Map<String, String> headers = new HashMap<>();
headers.put("Content-Type", "application/json");
......@@ -116,7 +122,7 @@ public class BrowserTask {
/**
* 购买ip的定时任务,每分钟一次(新逻辑
*/
//@Scheduled(cron = "0 0/1 * * * ?")
@Scheduled(cron = "0 0/1 * * * ?")
public void buyIpNewTasks() {
String logs = "【BrowserTask -- buyIpNewTasks】 ";
log.info("{}, ****************ip resource purchase start****************", logs);
......@@ -151,8 +157,15 @@ public class BrowserTask {
log.error("buyIpNewTasks-购买ip error:查询不到阿里云映射api-region:{}",ipResource.getRegion());
return;
}
CloudPlatformConfig config = cloudPlatformConfigRepository.findByPlatformAndRegionId("ali",
aliRegion);
if(Objects.isNull(config)){
log.error("buyIpNewTasks-购买ip error:查询不到阿里云模板配置-region:{}", aliRegion);
return;
}
RunInstancesResponse response = AliEcsClient.runInstances(
ipResource.getOwner(), ipResource.getUsername(),ipResource.getPassword(), aliRegion);
ipResource.getOwner(), ipResource.getUsername(),ipResource.getPassword(), config);
if (null ==response || !response.getStatusCode().equals(200)) {
log.error("{}, fail to buy ip : {}", logs, JSON.toJSON(response));
}else if(Objects.nonNull(response.getBody())){
......@@ -692,5 +705,6 @@ public class BrowserTask {
response.close();
return rs;
}
}
}
......@@ -12,9 +12,13 @@ import com.aliyun.sdk.service.ecs20140526.models.RenewInstanceRequest;
import com.aliyun.sdk.service.ecs20140526.models.RenewInstanceResponse;
import com.aliyun.sdk.service.ecs20140526.models.RunInstancesRequest;
import com.aliyun.sdk.service.ecs20140526.models.RunInstancesResponse;
import com.edgec.browserbackend.browser.domain.CloudPlatformConfig;
import com.edgec.browserbackend.browser.repository.CloudPlatformConfigRepository;
import com.edgec.browserbackend.common.utils.Aes;
import darabonba.core.client.ClientOverrideConfiguration;
import java.util.Objects;
import java.util.concurrent.CompletableFuture;
import javax.annotation.Resource;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
......@@ -31,6 +35,9 @@ import org.springframework.stereotype.Service;
public class AliEcsClient {
private final CloudPlatformConfigRepository cloudPlatformConfigRepository;
//access_key_id
private static String getAccessKeyId() {
return "LTAI5tEdz1DY4A4oYUawUuNH";
......@@ -42,9 +49,6 @@ public class AliEcsClient {
}
//launch_template_id
private static String getLaunchTemplateId() {
return "lt-wz9g4apcsdali7t0lec8";
}
//脚本userData
private static String getUserData() {
......@@ -81,19 +85,18 @@ public class AliEcsClient {
/**
* 创建并运行实例
*/
public static RunInstancesResponse runInstances(String owner,String username, String password, String regionId) {
AsyncClient client = createClient(regionId);
public static RunInstancesResponse runInstances(String owner,String username, String password, CloudPlatformConfig config) {
AsyncClient client = createClient(config.getRegionId());
RunInstancesResponse runInstancesResponse = null;
String userData = String.format(getUserData(), username, password, username);
try {
RunInstancesRequest runInstancesRequest = RunInstancesRequest.builder()
.regionId(regionId)
.launchTemplateId("lt-wz9g4apcsdali7t0lec8")
.regionId(config.getRegionId())
.launchTemplateId(config.getTemplateId())
.userData(Aes.base64Encode(userData.getBytes()))
//.keyPairName("proxy-ip")
.build();
log.info("调用aliEcs创建并运行实例,入参:owner:{},regionId:{}", owner, regionId);
log.info("调用aliEcs创建并运行实例,入参:owner:{},regionId:{}", owner, config.getRegionId());
CompletableFuture<RunInstancesResponse> response = client.runInstances(
runInstancesRequest);
runInstancesResponse = response.get();
......
......@@ -18,7 +18,7 @@ public class SmsUtils {
private static final IAcsClient iAcsClient;
static {
DefaultProfile profile = DefaultProfile.getProfile("default", "LTAIODPWRh6stFca", "0SBDR59HsquSDEj9CFXNt9njTs2cCv");
DefaultProfile profile = DefaultProfile.getProfile("default", "LTAI5tEdz1DY4A4oYUawUuNH", "8KWmYgO0QIicZpyulhEwUhZqStrTwe");
iAcsClient = new DefaultAcsClient(profile);
}
......
......@@ -62,17 +62,19 @@ public enum RegionMappingEnum {
if(randomNumber == 0){
return RegionMappingEnum.US_CALIFORNIA;
}else {
return US_VIRGINIA.US_VIRGINIA;
return RegionMappingEnum.US_VIRGINIA;
}
}
public static RegionMappingEnum getCnRandom(){
Random random = new Random();
int randomNumber = random.nextInt(2);
int randomNumber = random.nextInt(3);
if(randomNumber == 0){
return RegionMappingEnum.US_CALIFORNIA;
return RegionMappingEnum.CN_BJ;
}else if(randomNumber == 1){
return RegionMappingEnum.CN_HZ;
}else {
return US_VIRGINIA.US_VIRGINIA;
return RegionMappingEnum.CN_SZ;
}
}
......
......@@ -3,6 +3,9 @@ package com.edgec.browserbackend;
import com.aliyun.sdk.service.ecs20140526.models.DeleteInstanceResponse;
import com.edgec.browserbackend.account.domain.UserBalance;
import com.edgec.browserbackend.account.repository.UserBalanceRepository;
import com.edgec.browserbackend.account.service.SmsUtils;
import com.edgec.browserbackend.browser.domain.CloudPlatformConfig;
import com.edgec.browserbackend.browser.repository.CloudPlatformConfigRepository;
import com.edgec.browserbackend.browser.task.BrowserTask;
import com.edgec.browserbackend.common.client.AliEcsClient;
import com.edgec.browserbackend.common.utils.Aes;
......@@ -19,6 +22,8 @@ class BrowserBackendApplicationTests {
@Resource
private BrowserTask browserTask;
@Resource
private CloudPlatformConfigRepository cloudPlatformConfigRepository;
@Test
void contextLoads() {
UserBalance userBalance = new UserBalance();
......@@ -30,27 +35,17 @@ class BrowserBackendApplicationTests {
@Test
void buyEcsTest() throws Exception {
browserTask.queryIpNewTasks();
//AliEcsClient.runInstances("11","cn-shenzhen","2222");
CloudPlatformConfig config = cloudPlatformConfigRepository.findByPlatformAndRegionId("ali",
"cn-hongkong");
//browserTask.queryIpNewTasks();
//AliEcsClient.runInstances("111","ceshi11","2222",config);
//AliEcsClient.getDescribeInstances("测试","i-wz9hf0i13xj6h904k14p","cn-shenzhen");
//DeleteInstanceResponse response = AliEcsClient.deleteInstance("测试", "i-wz91k777e49z85nt5xl3","cn-shenzhen");
DeleteInstanceResponse response = AliEcsClient.deleteInstance("测试", "i-j6ciop90gd68yg5n0sqo","cn-hongkong");
}
@Test
void test3() throws Exception {
String userData = "#!/bin/sh\n"
+ "echo \"users 3ASka71a:CL:7asMpA16\n"
+ "allow 3ASka71a *\n"
+ "auth strong\n"
+ "proxy -p8080\n"
+ "proxy -p8443 -a\n"
+ "socks -p1080\n"
+ "flush\" | tee /etc/3proxy.cfg\n"
+ "3proxy -C 3proxy.cfg";
System.out.println(Aes.base64Encode(userData.getBytes()));
String userData1 = String.format(userData, "ces11", "123123", "ces11");
System.out.println(userData1);
SmsUtils.sendSmsOTP("18711016574");
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment