diff --git a/LaunchServer/src/main/java/ru/gravit/launchserver/LaunchServer.java b/LaunchServer/src/main/java/ru/gravit/launchserver/LaunchServer.java index bc13b9d1..6a7e2438 100644 --- a/LaunchServer/src/main/java/ru/gravit/launchserver/LaunchServer.java +++ b/LaunchServer/src/main/java/ru/gravit/launchserver/LaunchServer.java @@ -82,6 +82,10 @@ public static final class Config { public String binaryName; + public int OAuthAppID; + + public String OAuthAppSecret; + public boolean copyBinaries = true; public LauncherConfig.LauncherEnvironment env; @@ -149,6 +153,8 @@ public String getLegacyBindAddress() { return legacyBindAddress; } + public String getOAuthBackURL() { return netty.OAuthBackURL; } + public void setProjectName(String projectName) { this.projectName = projectName; } @@ -281,6 +287,7 @@ public class NettyConfig { public String launcherURL; public String downloadURL; public String launcherEXEURL; + public String OAuthBackURL; public String address; public Map bindings = new HashMap<>(); public NettyPerformanceConfig performance; @@ -586,7 +593,10 @@ public LaunchServer(Path dir, boolean testEnv, String[] args) throws IOException Arrays.stream(config.mirrors).forEach(mirrorManager::addMirror); - // init modules + if(config.OAuthAppSecret == null){ + LogHelper.warning("OAuthAppSecret is not defied"); + } + // init modules modulesManager.initModules(); if (config.components != null) { LogHelper.debug("Init components"); @@ -720,6 +730,8 @@ private void generateConfigIfNotExists(boolean testEnv) throws IOException { newConfig.legacyBindAddress = "0.0.0.0"; newConfig.binaryName = "Launcher"; newConfig.whitelistRejectString = "Вас нет в белом списке"; + newConfig.OAuthAppID = 0; + newConfig.OAuthAppSecret = null; newConfig.netty = new NettyConfig(); newConfig.netty.fileServerEnabled = true; @@ -773,6 +785,7 @@ private void generateConfigIfNotExists(boolean testEnv) throws IOException { newConfig.netty.downloadURL = "http://" + address + ":9274/%dirname%/"; newConfig.netty.launcherURL = "http://" + address + ":9274/Launcher.jar"; newConfig.netty.launcherEXEURL = "http://" + address + ":9274/Launcher.exe"; + newConfig.netty.OAuthBackURL = "https://" + address + "/OAuth.html"; newConfig.netty.sendExceptionEnabled = true; // Write LaunchServer config diff --git a/LauncherAPI/src/main/java/ru/gravit/launcher/events/request/OAuthRequestEvent.java b/LauncherAPI/src/main/java/ru/gravit/launcher/events/request/OAuthRequestEvent.java new file mode 100644 index 00000000..3364f81b --- /dev/null +++ b/LauncherAPI/src/main/java/ru/gravit/launcher/events/request/OAuthRequestEvent.java @@ -0,0 +1,30 @@ +package ru.gravit.launcher.events.request; + +import ru.gravit.launcher.LauncherNetworkAPI; +import ru.gravit.launcher.events.RequestEvent; +import ru.gravit.utils.event.EventInterface; + +import java.net.URL; +import java.util.UUID; + +public class OAuthRequestEvent extends RequestEvent implements EventInterface { + + private static final UUID uuid = UUID.fromString("77e1bfd7-adf9-4f5d-87d6-a7dd068deb74"); + + @LauncherNetworkAPI + public java.net.URL URL; + + @Override + public UUID getUUID() { + return uuid; + } + + @Override + public String getType() { + return "oauth"; + } + + public OAuthRequestEvent(){ + } + +} diff --git a/LauncherAPI/src/main/java/ru/gravit/launcher/request/auth/OAuthRequest.java b/LauncherAPI/src/main/java/ru/gravit/launcher/request/auth/OAuthRequest.java new file mode 100644 index 00000000..8b52c676 --- /dev/null +++ b/LauncherAPI/src/main/java/ru/gravit/launcher/request/auth/OAuthRequest.java @@ -0,0 +1,22 @@ +package ru.gravit.launcher.request.auth; + +import ru.gravit.launcher.HWID; +import ru.gravit.launcher.LauncherAPI; +import ru.gravit.launcher.events.request.AuthRequestEvent; +import ru.gravit.launcher.request.Request; +import ru.gravit.launcher.request.websockets.RequestInterface; + +public final class OAuthRequest extends Request implements RequestInterface { + + private HWID hwid; + + @LauncherAPI + public OAuthRequest(HWID hwid) + { + this.hwid = hwid; + } + @Override + public String getType() { + return "oauth"; + } +} diff --git a/LauncherAPI/src/main/java/ru/gravit/launcher/request/websockets/ClientWebSocketService.java b/LauncherAPI/src/main/java/ru/gravit/launcher/request/websockets/ClientWebSocketService.java index 1749b9d0..08c781f3 100644 --- a/LauncherAPI/src/main/java/ru/gravit/launcher/request/websockets/ClientWebSocketService.java +++ b/LauncherAPI/src/main/java/ru/gravit/launcher/request/websockets/ClientWebSocketService.java @@ -101,6 +101,7 @@ public void registerResult(String key, Class clazz) { public void registerResults() { registerResult("auth", AuthRequestEvent.class); + registerResult("oauth", OAuthRequestEvent.class); registerResult("checkServer", CheckServerRequestEvent.class); registerResult("joinServer", JoinServerRequestEvent.class); registerResult("launcher", LauncherRequestEvent.class);