Commit 49ced3a0 authored by jim's avatar jim

file

parent cee124c1
package com.edgec.browserbackend.browser.task; package com.edgec.browserbackend.browser.task;
import com.edgec.browserbackend.account.repository.AccountRepository; import com.edgec.browserbackend.account.repository.AccountRepository;
import com.edgec.browserbackend.account.repository.CompanyAuthorizeRepository;
import com.edgec.browserbackend.auth.domain.mongo.MongoOAuth2AccessToken;
import com.edgec.browserbackend.auth.repository.mongo.MongoOAuth2AccessTokenRepository; import com.edgec.browserbackend.auth.repository.mongo.MongoOAuth2AccessTokenRepository;
import com.edgec.browserbackend.browser.domain.IpResource; import com.edgec.browserbackend.browser.domain.IpResource;
import com.edgec.browserbackend.browser.domain.IpType;
import com.edgec.browserbackend.browser.domain.ProxyConfig; import com.edgec.browserbackend.browser.domain.ProxyConfig;
import com.edgec.browserbackend.browser.domain.SpecialLine;
import com.edgec.browserbackend.browser.repository.IpResourceRepository; import com.edgec.browserbackend.browser.repository.IpResourceRepository;
import com.edgec.browserbackend.browser.repository.ProxyConfigRepository; import com.edgec.browserbackend.browser.repository.ProxyConfigRepository;
import com.edgec.browserbackend.browser.repository.SpecialLineRepository; import com.edgec.browserbackend.browser.repository.SpecialLineRepository;
import net.javacrumbs.shedlock.core.SchedulerLock; import net.javacrumbs.shedlock.core.SchedulerLock;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -19,10 +16,11 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -19,10 +16,11 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.io.*; import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.time.Instant; import java.time.Instant;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
@Component @Component
public class Set3proxyTask { public class Set3proxyTask {
...@@ -45,7 +43,7 @@ public class Set3proxyTask { ...@@ -45,7 +43,7 @@ public class Set3proxyTask {
private ProxyConfigRepository proxyConfigRepository; private ProxyConfigRepository proxyConfigRepository;
@Scheduled(cron = "0 0/10 * * * ?") @Scheduled(cron = "0 0/10 * * * ?")
@SchedulerLock(name = "proxyTask", lockAtLeastFor = 60*1000*5, lockAtMostFor = 60*1000*9) @SchedulerLock(name = "proxyTask", lockAtLeastFor = 60 * 1000 * 5, lockAtMostFor = 60 * 1000 * 9)
public void set3proxy() { public void set3proxy() {
long nowtime = Instant.now().toEpochMilli(); long nowtime = Instant.now().toEpochMilli();
// List<String> tokenUsernames = mongoOAuth2AccessTokenRepository.findByCreatedAtGreaterThan(validTime).stream().map(MongoOAuth2AccessToken::getUsername).collect(Collectors.toList()); // List<String> tokenUsernames = mongoOAuth2AccessTokenRepository.findByCreatedAtGreaterThan(validTime).stream().map(MongoOAuth2AccessToken::getUsername).collect(Collectors.toList());
...@@ -61,7 +59,7 @@ public class Set3proxyTask { ...@@ -61,7 +59,7 @@ public class Set3proxyTask {
log.error(t1.getMessage(), t1); log.error(t1.getMessage(), t1);
} }
FileWriter fileWriter =new FileWriter(file, true); FileWriter fileWriter = new FileWriter(file, true);
BufferedWriter bw = new BufferedWriter(fileWriter); BufferedWriter bw = new BufferedWriter(fileWriter);
bw.write("daemon\nlog /var/log/3proxy.log D\nrotate 30\n"); bw.write("daemon\nlog /var/log/3proxy.log D\nrotate 30\n");
bw.write("maxconn 10000\n"); bw.write("maxconn 10000\n");
...@@ -75,14 +73,21 @@ public class Set3proxyTask { ...@@ -75,14 +73,21 @@ public class Set3proxyTask {
} }
bw.write("\nauth strong\n"); bw.write("\nauth strong\n");
a: for (IpResource ipResource : ipResources) { a:
for (IpResource ipResource : ipResources) {
if (StringUtils.isNotBlank(ipResource.getAddr())) { if (StringUtils.isNotBlank(ipResource.getAddr())) {
if (ipResource.getPort() == null || ipResource.getPort().size() == 0) if (ipResource.getPort() == null || ipResource.getPort().size() == 0)
continue a; continue a;
bw.write("allow " + ipResource.getProxyUsername() + "\n"); bw.write("allow " + ipResource.getProxyUsername() + "\n");
bw.write("parent 1000 http " + ipResource.getAddr() + " " + if (ipResource.getIpType() != IpType.OWN) {
(ipResource.getPort().size() > 1?ipResource.getPort().get(1):ipResource.getPort().get(0)) + " fangguanlianbrowser " + ipResource.getPassword() + "\n"); bw.write("parent 1000 http " + ipResource.getAddr() + " " +
(ipResource.getPort().size() > 1 ? ipResource.getPort().get(1) : ipResource.getPort().get(0)) + " fangguanlianbrowser " + ipResource.getPassword() + "\n");
} else {
bw.write("parent 1000 http " + ipResource.getAddr() + " " +
(ipResource.getPort().size() > 1 ? ipResource.getPort().get(1) : ipResource.getPort().get(0)) + " " + ipResource.getUsername() + " " + ipResource.getPassword() + "\n");
}
} }
} }
bw.write("\nallow none\nproxy -p20004\nsocks -p20005\n"); bw.write("\nallow none\nproxy -p20004\nsocks -p20005\n");
......
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