Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
B
browser-backend
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
browser-backend
Commits
7ccf1612
Commit
7ccf1612
authored
Aug 05, 2024
by
chenchao.deng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
短信
parent
9a5dce7d
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
102 additions
and
35 deletions
+102
-35
SmsUtils.java
...va/com/edgec/browserbackend/account/service/SmsUtils.java
+2
-2
CloudPlatformConfig.java
...ec/browserbackend/browser/domain/CloudPlatformConfig.java
+34
-0
CloudPlatformConfigRepository.java
...end/browser/repository/CloudPlatformConfigRepository.java
+19
-0
BrowserTask.java
...va/com/edgec/browserbackend/browser/task/BrowserTask.java
+17
-3
AliEcsClient.java
.../com/edgec/browserbackend/common/client/AliEcsClient.java
+12
-9
SmsUtils.java
...m/edgec/browserbackend/common/commons/utils/SmsUtils.java
+1
-1
RegionMappingEnum.java
.../edgec/browserbackend/common/enums/RegionMappingEnum.java
+6
-4
BrowserBackendApplicationTests.java
.../edgec/browserbackend/BrowserBackendApplicationTests.java
+11
-16
No files found.
src/main/java/com/edgec/browserbackend/account/service/SmsUtils.java
View file @
7ccf1612
...
...
@@ -26,7 +26,7 @@ public class SmsUtils {
*/
public
static
String
sendSmsOTP
(
String
phone
)
{
String
randomCode
=
createRandom
(
true
,
6
);
DefaultProfile
profile
=
DefaultProfile
.
getProfile
(
"default"
,
"LTAI5t
Q6KMaEbeFCJ1wd4Kuk"
,
"5M5ILAkQu2wU83jcpTAeYN0sBj3JTN
"
);
DefaultProfile
profile
=
DefaultProfile
.
getProfile
(
"default"
,
"LTAI5t
Edz1DY4A4oYUawUuNH"
,
"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_
17488548
9"
);
request
.
putQueryParameter
(
"TemplateCode"
,
"SMS_
47141013
9"
);
request
.
putQueryParameter
(
"TemplateParam"
,
"{\"code\":\""
+
randomCode
+
"\"}"
);
try
{
CommonResponse
response
=
client
.
getCommonResponse
(
request
);
...
...
src/main/java/com/edgec/browserbackend/browser/domain/CloudPlatformConfig.java
0 → 100644
View file @
7ccf1612
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
;
//可用区
}
src/main/java/com/edgec/browserbackend/browser/repository/CloudPlatformConfigRepository.java
0 → 100644
View file @
7ccf1612
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
);
}
src/main/java/com/edgec/browserbackend/browser/task/BrowserTask.java
View file @
7ccf1612
...
...
@@ -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
;
}
}
}
src/main/java/com/edgec/browserbackend/common/client/AliEcsClient.java
View file @
7ccf1612
...
...
@@ -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
();
...
...
src/main/java/com/edgec/browserbackend/common/commons/utils/SmsUtils.java
View file @
7ccf1612
...
...
@@ -18,7 +18,7 @@ public class SmsUtils {
private
static
final
IAcsClient
iAcsClient
;
static
{
DefaultProfile
profile
=
DefaultProfile
.
getProfile
(
"default"
,
"LTAI
ODPWRh6stFca"
,
"0SBDR59HsquSDEj9CFXNt9njTs2cCv
"
);
DefaultProfile
profile
=
DefaultProfile
.
getProfile
(
"default"
,
"LTAI
5tEdz1DY4A4oYUawUuNH"
,
"8KWmYgO0QIicZpyulhEwUhZqStrTwe
"
);
iAcsClient
=
new
DefaultAcsClient
(
profile
);
}
...
...
src/main/java/com/edgec/browserbackend/common/enums/RegionMappingEnum.java
View file @
7ccf1612
...
...
@@ -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
;
}
}
...
...
src/test/java/com/edgec/browserbackend/BrowserBackendApplicationTests.java
View file @
7ccf1612
...
...
@@ -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"
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment