mirror of
https://github.com/GravitLauncher/Launcher
synced 2025-04-19 14:33:04 +03:00
[FIX] Жуткий RequestAuthHandler.
This commit is contained in:
parent
2180bd989e
commit
174ef2d0a2
1 changed files with 43 additions and 64 deletions
|
@ -1,5 +1,6 @@
|
||||||
package ru.gravit.launchserver.auth.handler;
|
package ru.gravit.launchserver.auth.handler;
|
||||||
|
|
||||||
|
import ru.gravit.utils.helper.CommonHelper;
|
||||||
import ru.gravit.utils.helper.IOHelper;
|
import ru.gravit.utils.helper.IOHelper;
|
||||||
import ru.gravit.utils.helper.LogHelper;
|
import ru.gravit.utils.helper.LogHelper;
|
||||||
|
|
||||||
|
@ -8,100 +9,78 @@
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public final class RequestAuthHandler extends CachedAuthHandler {
|
public final class RequestAuthHandler extends CachedAuthHandler {
|
||||||
private String url;
|
private String usernameFetch;
|
||||||
private String secretKey;
|
private String uuidFetch;
|
||||||
|
|
||||||
private String typeLine;
|
private String updateAuth;
|
||||||
private String uuidLine;
|
private String updateServerID;
|
||||||
private String usernameLine;
|
|
||||||
private String accessTokenLine;
|
|
||||||
private String serverIDLine;
|
|
||||||
private String secretKeyLine;
|
|
||||||
|
|
||||||
private String TypeFetchByUUID;
|
private String splitSymbol = ":";
|
||||||
private String TypeFetchByUsername;
|
private String goodResponse = "OK";
|
||||||
private String TypeSetAccessTokenAndUUID;
|
|
||||||
private String TypeSetServerID;
|
|
||||||
private String splitSymbol;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init() {
|
public void init() {
|
||||||
if (url == null)
|
if (usernameFetch == null)
|
||||||
LogHelper.error("[Verify][AuthHandler] url cannot be null");
|
LogHelper.error("[Verify][AuthHandler] usernameFetch cannot be null");
|
||||||
if (secretKey == null)
|
if (uuidFetch == null)
|
||||||
LogHelper.error("[Verify][AuthHandler] secretKey cannot be null");
|
LogHelper.error("[Verify][AuthHandler] uuidFetch cannot be null");
|
||||||
// Default
|
if (updateAuth == null)
|
||||||
if (typeLine == null)
|
LogHelper.error("[Verify][AuthHandler] updateAuth cannot be null");
|
||||||
typeLine = "type";
|
if (updateServerID == null)
|
||||||
if (uuidLine == null)
|
LogHelper.error("[Verify][AuthHandler] updateServerID cannot be null");
|
||||||
uuidLine = "uuid";
|
|
||||||
if (usernameLine == null)
|
|
||||||
usernameLine = "username";
|
|
||||||
if (accessTokenLine == null)
|
|
||||||
accessTokenLine = "accessToken";
|
|
||||||
if (serverIDLine == null)
|
|
||||||
serverIDLine = "serverID";
|
|
||||||
if (secretKeyLine == null)
|
|
||||||
secretKeyLine = "secretKey";
|
|
||||||
if (TypeFetchByUUID == null)
|
|
||||||
TypeFetchByUUID = "FetchByUUID";
|
|
||||||
if (TypeFetchByUsername == null)
|
|
||||||
TypeFetchByUsername = "FetchByUsername";
|
|
||||||
if (TypeSetAccessTokenAndUUID == null)
|
|
||||||
TypeSetAccessTokenAndUUID = "SetAccessTokenAndUUID";
|
|
||||||
if (TypeSetServerID == null)
|
|
||||||
TypeSetServerID = "SetServerID";
|
|
||||||
if (splitSymbol == null)
|
|
||||||
splitSymbol = ":";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Entry fetchEntry(UUID uuid) throws IOException {
|
protected Entry fetchEntry(UUID uuid) throws IOException {
|
||||||
String response = IOHelper.request(new URL(url + "?" + IOHelper.urlEncode(typeLine) + "=" + TypeFetchByUUID + "&" + secretKeyLine + "=" + IOHelper.urlEncode(secretKey) + "&" + IOHelper.urlEncode(uuidLine) + "=" + IOHelper.urlEncode(uuid.toString())));
|
String response = IOHelper.request(new URL(CommonHelper.replace(uuidFetch, "uuid", IOHelper.urlEncode(uuid.toString()))));
|
||||||
String[] parts = response.split(splitSymbol);
|
String[] parts = response.split(splitSymbol);
|
||||||
String username = parts[0];
|
String username = parts[0];
|
||||||
String accessToken = parts[1];
|
String accessToken = parts[1];
|
||||||
String serverID = parts[2];
|
String serverID = parts[2];
|
||||||
|
if (LogHelper.isDebugEnabled()) {
|
||||||
LogHelper.debug("[AuthHandler] Getted username: " + username);
|
LogHelper.debug("[AuthHandler] Getted username: " + username);
|
||||||
LogHelper.debug("[AuthHandler] Getted accessToken: " + accessToken);
|
LogHelper.debug("[AuthHandler] Getted accessToken: " + accessToken);
|
||||||
LogHelper.debug("[AuthHandler] Getted serverID: " + serverID);
|
LogHelper.debug("[AuthHandler] Getted serverID: " + serverID);
|
||||||
LogHelper.debug("[AuthHandler] Getted UUID: " + uuid);
|
LogHelper.debug("[AuthHandler] Getted UUID: " + uuid);
|
||||||
return query(uuid, username, accessToken, serverID);
|
}
|
||||||
|
return new Entry(uuid, username, accessToken, serverID);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Entry fetchEntry(String username) throws IOException {
|
protected Entry fetchEntry(String username) throws IOException {
|
||||||
String response = IOHelper.request(new URL(url + "?" + IOHelper.urlEncode(typeLine) + "=" + TypeFetchByUsername + "&" + secretKeyLine + "=" + IOHelper.urlEncode(secretKey) + "&" + IOHelper.urlEncode(usernameLine) + "=" + IOHelper.urlEncode(username)));
|
String response = IOHelper.request(new URL(CommonHelper.replace(usernameFetch, "user", IOHelper.urlEncode(username))));
|
||||||
String[] parts = response.split(splitSymbol);
|
String[] parts = response.split(splitSymbol);
|
||||||
UUID uuid = UUID.fromString(parts[0]);
|
UUID uuid = UUID.fromString(parts[0]);
|
||||||
String accessToken = parts[1];
|
String accessToken = parts[1];
|
||||||
String serverID = parts[2];
|
String serverID = parts[2];
|
||||||
|
if (LogHelper.isDebugEnabled()) {
|
||||||
LogHelper.debug("[AuthHandler] Getted username: " + username);
|
LogHelper.debug("[AuthHandler] Getted username: " + username);
|
||||||
LogHelper.debug("[AuthHandler] Getted accessToken: " + accessToken);
|
LogHelper.debug("[AuthHandler] Getted accessToken: " + accessToken);
|
||||||
LogHelper.debug("[AuthHandler] Getted serverID: " + serverID);
|
LogHelper.debug("[AuthHandler] Getted serverID: " + serverID);
|
||||||
LogHelper.debug("[AuthHandler] Getted UUID: " + uuid);
|
LogHelper.debug("[AuthHandler] Getted UUID: " + uuid);
|
||||||
return query(uuid, username, accessToken, serverID);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private Entry query(UUID uuid, String username, String accessToken, String serverID) {
|
|
||||||
return new Entry(uuid, username, accessToken, serverID);
|
return new Entry(uuid, username, accessToken, serverID);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean updateAuth(UUID uuid, String username, String accessToken) throws IOException {
|
protected boolean updateAuth(UUID uuid, String username, String accessToken) throws IOException {
|
||||||
String response = IOHelper.request(new URL(url + "?" + IOHelper.urlEncode(typeLine) + "=" + TypeSetAccessTokenAndUUID + "&" + secretKeyLine + "=" + IOHelper.urlEncode(secretKey) + "&" + IOHelper.urlEncode(uuidLine) + "=" + IOHelper.urlEncode(uuid.toString()) + "&" + IOHelper.urlEncode(accessTokenLine) + "=" + IOHelper.urlEncode(accessToken) + "&" + IOHelper.urlEncode(usernameLine) + "=" + IOHelper.urlEncode(username)));
|
String response = IOHelper.request(new URL(CommonHelper.replace(updateAuth, "user", IOHelper.urlEncode(username), "uuid", IOHelper.urlEncode(uuid.toString()), "token", IOHelper.urlEncode(accessToken))));
|
||||||
|
if (LogHelper.isDebugEnabled()) {
|
||||||
LogHelper.debug("[AuthHandler] Set accessToken: " + accessToken);
|
LogHelper.debug("[AuthHandler] Set accessToken: " + accessToken);
|
||||||
LogHelper.debug("[AuthHandler] Set UUID: " + uuid);
|
LogHelper.debug("[AuthHandler] Set UUID: " + uuid);
|
||||||
LogHelper.debug("[AuthHandler] For this username: " + username);
|
LogHelper.debug("[AuthHandler] For this username: " + username);
|
||||||
return response.equals("OK");
|
}
|
||||||
|
return goodResponse.equals(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean updateServerID(UUID uuid, String serverID) throws IOException {
|
protected boolean updateServerID(UUID uuid, String serverID) throws IOException {
|
||||||
String response = IOHelper.request(new URL(url + "?" + IOHelper.urlEncode(typeLine) + "=" + TypeSetServerID + "&" + secretKeyLine + "=" + IOHelper.urlEncode(secretKey) + "&" + IOHelper.urlEncode(uuidLine) + "=" + IOHelper.urlEncode(uuid.toString()) + "&" + IOHelper.urlEncode(serverIDLine) + "=" + IOHelper.urlEncode(serverID)));
|
String response = IOHelper.request(new URL(CommonHelper.replace(updateAuth, "serverid", IOHelper.urlEncode(serverID), "uuid", IOHelper.urlEncode(uuid.toString()))));
|
||||||
|
if (LogHelper.isDebugEnabled()) {
|
||||||
LogHelper.debug("[AuthHandler] Set serverID: " + serverID);
|
LogHelper.debug("[AuthHandler] Set serverID: " + serverID);
|
||||||
LogHelper.debug("[AuthHandler] For this UUID: " + uuid);
|
LogHelper.debug("[AuthHandler] For this UUID: " + uuid);
|
||||||
return response.equals("OK");
|
}
|
||||||
|
return goodResponse.equals(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in a new issue