Теперь все берется/сетается одним запросом

This commit is contained in:
sasha0552 2019-04-12 04:07:25 +06:00
parent 7ab55ce9d8
commit 1d0e510109
2 changed files with 51 additions and 87 deletions

View file

@ -11,19 +11,18 @@ public final class RequestAuthHandler extends CachedAuthHandler {
private String url; private String url;
private String secretKey; private String secretKey;
private String typeColumn; private String typeLine;
private String uuidColumn; private String uuidLine;
private String usernameColumn; private String usernameLine;
private String accessTokenColumn; private String accessTokenLine;
private String serverIDColumn; private String serverIDLine;
private String secretKeyColumn; private String secretKeyLine;
private String TypeGetUsername; private String TypeFetchByUUID;
private String TypeGetUUID; private String TypeFetchByUsername;
private String TypeGetAccessToken;
private String TypeGetServerID;
private String TypeSetAccessTokenAndUUID; private String TypeSetAccessTokenAndUUID;
private String TypeSetServerID; private String TypeSetServerID;
private String splitSymbol;
@Override @Override
public void init() { public void init() {
@ -31,37 +30,38 @@ public void init() {
LogHelper.error("[Verify][AuthHandler] url cannot be null"); LogHelper.error("[Verify][AuthHandler] url cannot be null");
if (secretKey == null) if (secretKey == null)
LogHelper.error("[Verify][AuthHandler] secretKey cannot be null"); LogHelper.error("[Verify][AuthHandler] secretKey cannot be null");
if (typeColumn == null) // Default
typeColumn = "type"; if (typeLine == null)
if (uuidColumn == null) typeLine = "type";
uuidColumn = "uuid"; if (uuidLine == null)
if (usernameColumn == null) uuidLine = "uuid";
usernameColumn = "username"; if (usernameLine == null)
if (accessTokenColumn == null) usernameLine = "username";
accessTokenColumn = "accessToken"; if (accessTokenLine == null)
if (serverIDColumn == null) accessTokenLine = "accessToken";
serverIDColumn = "serverID"; if (serverIDLine == null)
if (secretKeyColumn == null) serverIDLine = "serverID";
secretKeyColumn = "secretKey"; if (secretKeyLine == null)
if (TypeGetUsername == null) secretKeyLine = "secretKey";
TypeGetUsername = "GetUsername"; if (TypeFetchByUUID == null)
if (TypeGetUUID == null) TypeFetchByUUID = "FetchByUUID";
TypeGetUUID = "GetUUID"; if (TypeFetchByUsername == null)
if (TypeGetAccessToken == null) TypeFetchByUsername = "FetchByUsername";
TypeGetAccessToken = "GetAccessToken";
if (TypeGetServerID == null)
TypeGetServerID = "GetServerID";
if (TypeSetAccessTokenAndUUID == null) if (TypeSetAccessTokenAndUUID == null)
TypeSetAccessTokenAndUUID = "SetAccessTokenAndUUID"; TypeSetAccessTokenAndUUID = "SetAccessTokenAndUUID";
if (TypeSetServerID == null) if (TypeSetServerID == null)
TypeSetServerID = "SetServerID"; TypeSetServerID = "SetServerID";
if (splitSymbol == null)
splitSymbol = ":";
} }
@Override @Override
protected Entry fetchEntry(UUID uuid) throws IOException { protected Entry fetchEntry(UUID uuid) throws IOException {
String username = IOHelper.request(new URL(url + "?" + IOHelper.urlEncode(typeColumn) + "=" + TypeGetUsername + "&" + secretKeyColumn + "=" + IOHelper.urlEncode(secretKey) + "&" + IOHelper.urlEncode(uuidColumn) + "=" + IOHelper.urlEncode(uuid.toString()))); String response = IOHelper.request(new URL(url + "?" + IOHelper.urlEncode(typeLine) + "=" + TypeFetchByUUID + "&" + secretKeyLine + "=" + IOHelper.urlEncode(secretKey) + "&" + IOHelper.urlEncode(uuidLine) + "=" + IOHelper.urlEncode(uuid.toString())));
String accessToken = IOHelper.request(new URL(url + "?" + IOHelper.urlEncode(typeColumn) + "=" + TypeGetAccessToken + "&" + secretKeyColumn + "=" + IOHelper.urlEncode(secretKey) + "&" + IOHelper.urlEncode(uuidColumn) + "=" + IOHelper.urlEncode(uuid.toString()))); String[] parts = response.split(splitSymbol);
String serverID = IOHelper.request(new URL(url + "?" + IOHelper.urlEncode(typeColumn) + "=" + TypeGetServerID + "&" + secretKeyColumn + "=" + IOHelper.urlEncode(secretKey) + "&" + IOHelper.urlEncode(uuidColumn) + "=" + IOHelper.urlEncode(uuid.toString()))); String username = parts[0];
String accessToken = parts[1];
String serverID = parts[2];
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);
@ -71,10 +71,11 @@ protected Entry fetchEntry(UUID uuid) throws IOException {
@Override @Override
protected Entry fetchEntry(String username) throws IOException { protected Entry fetchEntry(String username) throws IOException {
String GettedUUID = IOHelper.request(new URL(url + "?" + IOHelper.urlEncode(typeColumn) + "=" + TypeGetUUID + "&" + secretKeyColumn + "=" + IOHelper.urlEncode(secretKey) + "&" + IOHelper.urlEncode(usernameColumn) + "=" + IOHelper.urlEncode(username))); String response = IOHelper.request(new URL(url + "?" + IOHelper.urlEncode(typeLine) + "=" + TypeFetchByUsername + "&" + secretKeyLine + "=" + IOHelper.urlEncode(secretKey) + "&" + IOHelper.urlEncode(usernameLine) + "=" + IOHelper.urlEncode(username)));
UUID uuid = UUID.fromString(GettedUUID); String[] parts = response.split(splitSymbol);
String accessToken = IOHelper.request(new URL(url + "?" + IOHelper.urlEncode(typeColumn) + "=" + TypeGetAccessToken + "&" + secretKeyColumn + "=" + IOHelper.urlEncode(secretKey) + "&" + IOHelper.urlEncode(usernameColumn) + "=" + IOHelper.urlEncode(username))); UUID uuid = UUID.fromString(parts[0]);
String serverID = IOHelper.request(new URL(url + "?" + IOHelper.urlEncode(typeColumn) + "=" + TypeGetServerID + "&" + secretKeyColumn + "=" + IOHelper.urlEncode(secretKey) + "&" + IOHelper.urlEncode(usernameColumn) + "=" + IOHelper.urlEncode(username))); String accessToken = parts[1];
String serverID = parts[2];
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);
@ -88,7 +89,7 @@ private Entry query(UUID uuid, String username, String accessToken, String serve
@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(typeColumn) + "=" + TypeSetAccessTokenAndUUID + "&" + secretKeyColumn + "=" + IOHelper.urlEncode(secretKey) + "&" + IOHelper.urlEncode(uuidColumn) + "=" + IOHelper.urlEncode(uuid.toString()) + "&" + IOHelper.urlEncode(accessTokenColumn) + "=" + IOHelper.urlEncode(accessToken) + "&" + IOHelper.urlEncode(usernameColumn) + "=" + IOHelper.urlEncode(username))); 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 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);
@ -97,7 +98,7 @@ protected boolean updateAuth(UUID uuid, String username, String accessToken) thr
@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(typeColumn) + "=" + TypeSetServerID + "&" + secretKeyColumn + "=" + IOHelper.urlEncode(secretKey) + "&" + IOHelper.urlEncode(uuidColumn) + "=" + IOHelper.urlEncode(uuid.toString()) + "&" + IOHelper.urlEncode(serverIDColumn) + "=" + IOHelper.urlEncode(serverID))); 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] Set serverID: " + serverID);
LogHelper.debug("[AuthHandler] For this UUID: " + uuid); LogHelper.debug("[AuthHandler] For this UUID: " + uuid);
return response.equals("OK"); return response.equals("OK");

View file

@ -43,62 +43,25 @@ if(!$link) {
} }
if(isset($AuthHandler['type'])) { if(isset($AuthHandler['type'])) {
if($AuthHandler['type'] == "GetUsername") { if($AuthHandler['type'] == "FetchByUUID") {
if(isset($AuthHandler['uuid'])) { if(isset($AuthHandler['uuid'])) {
$result = mysqli_query($link, 'SELECT '.$settings['usernameColumn'].' FROM '.$settings['table'].' WHERE '.$settings['uuidColumn'].'="'.$AuthHandler['uuid'].'" LIMIT 1') or die($link->error); $result = mysqli_query($link, 'SELECT '.$settings['usernameColumn'].','.$settings['accessTokenColumn'].','.$settings['serverID'].' FROM '.$settings['table'].' WHERE '.$settings['uuidColumn'].'="'.$AuthHandler['uuid'].'" LIMIT 1') or die($link->error);
$row = $result->fetch_assoc(); $row = $result->fetch_assoc();
mysqli_free_result($result); mysqli_free_result($result);
mysqli_close($link); mysqli_close($link);
die($row[$settings['usernameColumn']]); die($row[$settings['usernameColumn']] + ':' + $row[$settings['accessTokenColumn']] + ':' + $row[$settings['serverID']]);
} else {
die('UUID not set!');
}
} }
if($AuthHandler['type'] == "GetAccessToken") { if($AuthHandler['type'] == "FetchByUsername") {
if(isset($AuthHandler['uuid'])) { if(isset($AuthHandler['uuid'])) {
$result = mysqli_query($link, 'SELECT '.$settings['accessTokenColumn'].' FROM '.$settings['table'].' WHERE '.$settings['uuidColumn'].'="'.$AuthHandler['uuid'].'" LIMIT 1') or die($link->error); $result = mysqli_query($link, 'SELECT '.$settings['uuidColumn'].','.$settings['accessTokenColumn'].','.$settings['serverID'].' FROM '.$settings['table'].' WHERE '.$settings['usernameColumn'].'="'.$AuthHandler['username'].'" LIMIT 1') or die($link->error);
$row = $result->fetch_assoc(); $row = $result->fetch_assoc();
mysqli_free_result($result); mysqli_free_result($result);
mysqli_close($link); mysqli_close($link);
die($row[$settings['accessTokenColumn']]); die($row[$settings['uuidColumn']] + ':' + $row[$settings['accessTokenColumn']] + ':' + $row[$settings['serverID']]);
}
if(isset($AuthHandler['username'])) {
$result = mysqli_query($link, 'SELECT '.$settings['accessTokenColumn'].' FROM '.$settings['table'].' WHERE '.$settings['usernameColumn'].'="'.$AuthHandler['username'].'" LIMIT 1') or die($link->error);
$row = $result->fetch_assoc();
mysqli_free_result($result);
mysqli_close($link);
die($row[$settings['accessTokenColumn']]);
}
die('No avaiable var to get accessToken!');
}
if($AuthHandler['type'] == "GetServerID") {
if(isset($AuthHandler['uuid'])) {
$result = mysqli_query($link, 'SELECT '.$settings['ServerIDColumn'].' FROM '.$settings['table'].' WHERE '.$settings['uuidColumn'].'="'.$AuthHandler['uuid'].'" LIMIT 1') or die($link->error);
$row = $result->fetch_assoc();
mysqli_free_result($result);
mysqli_close($link);
die($row[$settings['ServerIDColumn']]);
}
if(isset($AuthHandler['username'])) {
$result = mysqli_query($link, 'SELECT '.$settings['ServerIDColumn'].' FROM '.$settings['table'].' WHERE '.$settings['usernameColumn'].'="'.$AuthHandler['username'].'" LIMIT 1') or die($link->error);
$row = $result->fetch_assoc();
mysqli_free_result($result);
mysqli_close($link);
die($row[$settings['ServerIDColumn']]);
}
die('No avaiable var to get serverID!');
}
if($AuthHandler['type'] == "GetUUID") {
if(isset($AuthHandler['username'])) {
$result = mysqli_query($link, 'SELECT '.$settings['uuidColumn'].' FROM '.$settings['table'].' WHERE '.$settings['usernameColumn'].'="'.$AuthHandler['username'].'" LIMIT 1') or die($link->error);
$row = $result->fetch_assoc();
mysqli_free_result($result);
mysqli_close($link);
die($row[$settings['uuidColumn']]);
} else {
die('Username not set!');
}
} }
// Обновление строк
if($AuthHandler['type'] == "SetAccessTokenAndUUID") { if($AuthHandler['type'] == "SetAccessTokenAndUUID") {
$result = mysqli_query($link, 'UPDATE '.$settings['table'].' SET '.$settings['accessTokenColumn'].'="'.$AuthHandler['accessToken'].'" WHERE '.$settings['usernameColumn'].'="'.$AuthHandler['username'].'"') or die($link->error); $result = mysqli_query($link, 'UPDATE '.$settings['table'].' SET '.$settings['accessTokenColumn'].'="'.$AuthHandler['accessToken'].'" WHERE '.$settings['usernameColumn'].'="'.$AuthHandler['username'].'"') or die($link->error);
$result1 = mysqli_query($link, 'UPDATE '.$settings['table'].' SET '.$settings['uuidColumn'].'="'.$AuthHandler['uuid'].'" WHERE '.$settings['usernameColumn'].'="'.$AuthHandler['username'].'"') or die($link->error); $result1 = mysqli_query($link, 'UPDATE '.$settings['table'].' SET '.$settings['uuidColumn'].'="'.$AuthHandler['uuid'].'" WHERE '.$settings['usernameColumn'].'="'.$AuthHandler['username'].'"') or die($link->error);
@ -110,7 +73,7 @@ if(isset($AuthHandler['type'])) {
mysqli_close($link); mysqli_close($link);
die('OK'); die('OK');
} }
die('Type is not correct!'); die('FAIL!');
} else { } else {
die('Type not set!'); die('Type not set!');
} }