mirror of
https://github.com/noviceli/jetbra
synced 2024-11-22 13:16:24 +03:00
ban掉restful-fast-request--api-buddy的验证服务器ip
This commit is contained in:
parent
a8b6a9129e
commit
0714d4a122
3 changed files with 29 additions and 7 deletions
|
@ -21,11 +21,19 @@ public class AgentMain {
|
||||||
.visit(Advice.to(HttpClientAdvice.class)
|
.visit(Advice.to(HttpClientAdvice.class)
|
||||||
.on(ElementMatchers.named("openServer"))))
|
.on(ElementMatchers.named("openServer"))))
|
||||||
.asTerminalTransformation()
|
.asTerminalTransformation()
|
||||||
|
|
||||||
.type(ElementMatchers.named("java.lang.System"))
|
.type(ElementMatchers.named("java.lang.System"))
|
||||||
.transform((builder, typeDescription, classLoader, module, protectionDomain) -> builder
|
.transform((builder, typeDescription, classLoader, module, protectionDomain) -> builder
|
||||||
.visit(Advice.to(SystemAdvice.class)
|
.visit(Advice.to(SystemAdvice.class)
|
||||||
.on(ElementMatchers.named("getProperty"))))
|
.on(ElementMatchers.named("getProperty"))))
|
||||||
.asTerminalTransformation()
|
.asTerminalTransformation()
|
||||||
|
|
||||||
|
.type(ElementMatchers.named("java.net.Socket"))
|
||||||
|
.transform((builder, typeDescription, classLoader, module, protectionDomain) -> builder
|
||||||
|
.visit(Advice.to(SocketAdvice.class)
|
||||||
|
.on(ElementMatchers.named("connect"))))
|
||||||
|
.asTerminalTransformation()
|
||||||
|
|
||||||
.installOn(inst);
|
.installOn(inst);
|
||||||
|
|
||||||
agentBuilder.installOn(inst);
|
agentBuilder.installOn(inst);
|
||||||
|
|
20
jetbra-agent/src/main/java/win/novice/li/SocketAdvice.java
Normal file
20
jetbra-agent/src/main/java/win/novice/li/SocketAdvice.java
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
package win.novice.li;
|
||||||
|
|
||||||
|
import net.bytebuddy.asm.Advice;
|
||||||
|
|
||||||
|
import java.net.ConnectException;
|
||||||
|
import java.net.InetAddress;
|
||||||
|
import java.net.InetSocketAddress;
|
||||||
|
import java.net.SocketAddress;
|
||||||
|
|
||||||
|
public class SocketAdvice {
|
||||||
|
@Advice.OnMethodExit
|
||||||
|
public static void intercept(@Advice.Argument(value = 0,readOnly = false) SocketAddress socketAddress) throws Exception {
|
||||||
|
if (socketAddress instanceof InetSocketAddress){
|
||||||
|
InetAddress address = ((InetSocketAddress) socketAddress).getAddress();
|
||||||
|
if (address.getHostAddress().equals("116.62.33.138")){
|
||||||
|
throw new ConnectException("拒绝连接");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -13,14 +13,12 @@ import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
import win.novice.li.model.License;
|
import win.novice.li.model.License;
|
||||||
|
|
||||||
import java.io.FileInputStream;
|
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.security.*;
|
import java.security.*;
|
||||||
import java.security.cert.CertificateFactory;
|
import java.security.cert.CertificateFactory;
|
||||||
import java.security.cert.X509Certificate;
|
import java.security.cert.X509Certificate;
|
||||||
import java.util.Base64;
|
import java.util.Base64;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
|
@ -33,8 +31,6 @@ public class LicenseController {
|
||||||
@PostMapping("/generateLicense")
|
@PostMapping("/generateLicense")
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
public Map<String, Object> generateLicense(@RequestBody @Validated License license) {
|
public Map<String, Object> generateLicense(@RequestBody @Validated License license) {
|
||||||
Map<String, Object> ans = new HashMap<>();
|
|
||||||
|
|
||||||
String licenseId = generateLicenseId();
|
String licenseId = generateLicenseId();
|
||||||
license.setLicenseId(licenseId);
|
license.setLicenseId(licenseId);
|
||||||
|
|
||||||
|
@ -42,7 +38,6 @@ public class LicenseController {
|
||||||
byte[] licensePartBytes = licensePart.getBytes(StandardCharsets.UTF_8);
|
byte[] licensePartBytes = licensePart.getBytes(StandardCharsets.UTF_8);
|
||||||
String licensePartBase64 = Base64.getEncoder().encodeToString(licensePartBytes);
|
String licensePartBase64 = Base64.getEncoder().encodeToString(licensePartBytes);
|
||||||
|
|
||||||
|
|
||||||
Signature signature = Signature.getInstance("SHA1withRSA");
|
Signature signature = Signature.getInstance("SHA1withRSA");
|
||||||
signature.initSign(PRIVATE_KEY);
|
signature.initSign(PRIVATE_KEY);
|
||||||
signature.update(licensePartBytes);
|
signature.update(licensePartBytes);
|
||||||
|
@ -51,8 +46,7 @@ public class LicenseController {
|
||||||
|
|
||||||
String result = licenseId + "-" + licensePartBase64 + "-" + sigResultsBase64 + "-" + Base64.getEncoder().encodeToString(CRT.getEncoded());
|
String result = licenseId + "-" + licensePartBase64 + "-" + sigResultsBase64 + "-" + Base64.getEncoder().encodeToString(CRT.getEncoded());
|
||||||
|
|
||||||
ans.put("license",result);
|
return Map.of("license", result);
|
||||||
return ans;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue