mirror of
https://github.com/GravitLauncher/Launcher
synced 2025-04-11 18:57:30 +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;
|
||||
|
||||
import ru.gravit.utils.helper.CommonHelper;
|
||||
import ru.gravit.utils.helper.IOHelper;
|
||||
import ru.gravit.utils.helper.LogHelper;
|
||||
|
||||
|
@ -8,100 +9,78 @@
|
|||
import java.util.UUID;
|
||||
|
||||
public final class RequestAuthHandler extends CachedAuthHandler {
|
||||
private String url;
|
||||
private String secretKey;
|
||||
private String usernameFetch;
|
||||
private String uuidFetch;
|
||||
|
||||
private String typeLine;
|
||||
private String uuidLine;
|
||||
private String usernameLine;
|
||||
private String accessTokenLine;
|
||||
private String serverIDLine;
|
||||
private String secretKeyLine;
|
||||
private String updateAuth;
|
||||
private String updateServerID;
|
||||
|
||||
private String TypeFetchByUUID;
|
||||
private String TypeFetchByUsername;
|
||||
private String TypeSetAccessTokenAndUUID;
|
||||
private String TypeSetServerID;
|
||||
private String splitSymbol;
|
||||
private String splitSymbol = ":";
|
||||
private String goodResponse = "OK";
|
||||
|
||||
@Override
|
||||
public void init() {
|
||||
if (url == null)
|
||||
LogHelper.error("[Verify][AuthHandler] url cannot be null");
|
||||
if (secretKey == null)
|
||||
LogHelper.error("[Verify][AuthHandler] secretKey cannot be null");
|
||||
// Default
|
||||
if (typeLine == null)
|
||||
typeLine = "type";
|
||||
if (uuidLine == 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 = ":";
|
||||
if (usernameFetch == null)
|
||||
LogHelper.error("[Verify][AuthHandler] usernameFetch cannot be null");
|
||||
if (uuidFetch == null)
|
||||
LogHelper.error("[Verify][AuthHandler] uuidFetch cannot be null");
|
||||
if (updateAuth == null)
|
||||
LogHelper.error("[Verify][AuthHandler] updateAuth cannot be null");
|
||||
if (updateServerID == null)
|
||||
LogHelper.error("[Verify][AuthHandler] updateServerID cannot be null");
|
||||
}
|
||||
|
||||
@Override
|
||||
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 username = parts[0];
|
||||
String accessToken = parts[1];
|
||||
String serverID = parts[2];
|
||||
LogHelper.debug("[AuthHandler] Getted username: " + username);
|
||||
LogHelper.debug("[AuthHandler] Getted accessToken: " + accessToken);
|
||||
LogHelper.debug("[AuthHandler] Getted serverID: " + serverID);
|
||||
LogHelper.debug("[AuthHandler] Getted UUID: " + uuid);
|
||||
return query(uuid, username, accessToken, serverID);
|
||||
if (LogHelper.isDebugEnabled()) {
|
||||
LogHelper.debug("[AuthHandler] Getted username: " + username);
|
||||
LogHelper.debug("[AuthHandler] Getted accessToken: " + accessToken);
|
||||
LogHelper.debug("[AuthHandler] Getted serverID: " + serverID);
|
||||
LogHelper.debug("[AuthHandler] Getted UUID: " + uuid);
|
||||
}
|
||||
return new Entry(uuid, username, accessToken, serverID);
|
||||
}
|
||||
|
||||
@Override
|
||||
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);
|
||||
UUID uuid = UUID.fromString(parts[0]);
|
||||
String accessToken = parts[1];
|
||||
String serverID = parts[2];
|
||||
LogHelper.debug("[AuthHandler] Getted username: " + username);
|
||||
LogHelper.debug("[AuthHandler] Getted accessToken: " + accessToken);
|
||||
LogHelper.debug("[AuthHandler] Getted serverID: " + serverID);
|
||||
LogHelper.debug("[AuthHandler] Getted UUID: " + uuid);
|
||||
return query(uuid, username, accessToken, serverID);
|
||||
}
|
||||
|
||||
private Entry query(UUID uuid, String username, String accessToken, String serverID) {
|
||||
if (LogHelper.isDebugEnabled()) {
|
||||
LogHelper.debug("[AuthHandler] Getted username: " + username);
|
||||
LogHelper.debug("[AuthHandler] Getted accessToken: " + accessToken);
|
||||
LogHelper.debug("[AuthHandler] Getted serverID: " + serverID);
|
||||
LogHelper.debug("[AuthHandler] Getted UUID: " + uuid);
|
||||
}
|
||||
return new Entry(uuid, username, accessToken, serverID);
|
||||
}
|
||||
|
||||
@Override
|
||||
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)));
|
||||
LogHelper.debug("[AuthHandler] Set accessToken: " + accessToken);
|
||||
LogHelper.debug("[AuthHandler] Set UUID: " + uuid);
|
||||
LogHelper.debug("[AuthHandler] For this username: " + username);
|
||||
return response.equals("OK");
|
||||
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 UUID: " + uuid);
|
||||
LogHelper.debug("[AuthHandler] For this username: " + username);
|
||||
}
|
||||
return goodResponse.equals(response);
|
||||
}
|
||||
|
||||
@Override
|
||||
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)));
|
||||
LogHelper.debug("[AuthHandler] Set serverID: " + serverID);
|
||||
LogHelper.debug("[AuthHandler] For this UUID: " + uuid);
|
||||
return response.equals("OK");
|
||||
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] For this UUID: " + uuid);
|
||||
}
|
||||
return goodResponse.equals(response);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in a new issue