mirror of
https://github.com/sirjonasxx/G-Earth.git
synced 2024-11-26 10:20:51 +01:00
Bypass user-agent based cloudflare challenge
This commit is contained in:
parent
8de3d5cdd4
commit
de39613091
@ -6,6 +6,8 @@ import gearth.protocol.connection.proxy.nitro.NitroConstants;
|
|||||||
import gearth.protocol.packethandler.PacketHandler;
|
import gearth.protocol.packethandler.PacketHandler;
|
||||||
import gearth.protocol.packethandler.nitro.NitroPacketHandler;
|
import gearth.protocol.packethandler.nitro.NitroPacketHandler;
|
||||||
import org.eclipse.jetty.client.HttpClient;
|
import org.eclipse.jetty.client.HttpClient;
|
||||||
|
import org.eclipse.jetty.http.HttpField;
|
||||||
|
import org.eclipse.jetty.http.HttpHeader;
|
||||||
import org.eclipse.jetty.util.ssl.SslContextFactory;
|
import org.eclipse.jetty.util.ssl.SslContextFactory;
|
||||||
import org.eclipse.jetty.websocket.api.Session;
|
import org.eclipse.jetty.websocket.api.Session;
|
||||||
import org.eclipse.jetty.websocket.api.WebSocketListener;
|
import org.eclipse.jetty.websocket.api.WebSocketListener;
|
||||||
@ -36,7 +38,11 @@ public class NitroWebsocketServer implements WebSocketListener, NitroSession {
|
|||||||
"Sec-WebSocket-Version",
|
"Sec-WebSocket-Version",
|
||||||
"Host",
|
"Host",
|
||||||
"Connection",
|
"Connection",
|
||||||
"Upgrade"
|
"Upgrade",
|
||||||
|
"User-Agent", // Added by default
|
||||||
|
"Accept-Encoding", // Added by default
|
||||||
|
"Cache-Control", // Added by default
|
||||||
|
"Pragma" // Added by default
|
||||||
));
|
));
|
||||||
|
|
||||||
private final PacketHandler packetHandler;
|
private final PacketHandler packetHandler;
|
||||||
@ -56,6 +62,8 @@ public class NitroWebsocketServer implements WebSocketListener, NitroSession {
|
|||||||
|
|
||||||
final ClientUpgradeRequest request = new ClientUpgradeRequest();
|
final ClientUpgradeRequest request = new ClientUpgradeRequest();
|
||||||
|
|
||||||
|
request.addExtensions("permessage-deflate");
|
||||||
|
|
||||||
clientHeaders.forEach((key, value) -> {
|
clientHeaders.forEach((key, value) -> {
|
||||||
if (SKIP_HEADERS.contains(key)) {
|
if (SKIP_HEADERS.contains(key)) {
|
||||||
return;
|
return;
|
||||||
@ -64,6 +72,13 @@ public class NitroWebsocketServer implements WebSocketListener, NitroSession {
|
|||||||
request.setHeader(key, value);
|
request.setHeader(key, value);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (clientHeaders.containsKey("User-Agent")) {
|
||||||
|
final String realUserAgent = clientHeaders.get(HttpHeader.USER_AGENT.toString()).get(0);
|
||||||
|
final HttpField clientUserAgent = new HttpField(HttpHeader.USER_AGENT, realUserAgent);
|
||||||
|
|
||||||
|
client.getHttpClient().setUserAgentField(clientUserAgent);
|
||||||
|
}
|
||||||
|
|
||||||
logger.info("Connecting to origin websocket at {}", websocketUrl);
|
logger.info("Connecting to origin websocket at {}", websocketUrl);
|
||||||
|
|
||||||
client.start();
|
client.start();
|
||||||
|
Loading…
Reference in New Issue
Block a user