Skip to content
This repository was archived by the owner on Aug 23, 2025. It is now read-only.

Commit 783702f

Browse files
authored
Hardware ID implementation update, some method edits (GravitLauncher#3)
* 5.5.3 fixes? * 5.5.3 fixes? * 5.5.3 fixes?
1 parent e413706 commit 783702f

2 files changed

Lines changed: 49 additions & 33 deletions

File tree

MyHttp_module/app/build.gradle.kts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ repositories {
2222

2323
dependencies {
2424
// This dependency is used by the application.
25-
implementation("pro.gravit.launcher:launcher-core:5.5.0-SNAPSHOT")
26-
implementation("pro.gravit.launcher:launcher-ws-api:5.5.0-SNAPSHOT")
27-
implementation("pro.gravit.launcher:launchserver-api:5.5.0-SNAPSHOT")
25+
implementation("pro.gravit.launcher:launcher-core:5.5.3-SNAPSHOT")
26+
implementation("pro.gravit.launcher:launcher-ws-api:5.5.3-SNAPSHOT")
27+
implementation("pro.gravit.launcher:launchserver-api:5.5.3-SNAPSHOT")
2828
implementation("com.google.code.gson:gson:2.8.9")
2929
implementation("org.apache.logging.log4j:log4j-api:2.20.0")
3030
}

MyHttp_module/app/src/main/java/pro/gravit/launchermodules/myhttp/MyHttpAuthCoreProvider.java

Lines changed: 46 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,19 @@
11
package pro.gravit.launchermodules.myhttp;
22

33
import java.io.IOException;
4-
import java.lang.reflect.Type;
54
import java.net.URLEncoder;
65
import java.nio.charset.StandardCharsets;
76
import java.util.Collections;
87
import java.util.List;
98
import java.util.Map;
109
import java.util.UUID;
11-
import java.util.stream.Collectors;
1210

1311
import com.google.gson.reflect.TypeToken;
14-
import com.sun.source.tree.BreakTree;
1512
import org.apache.logging.log4j.LogManager;
1613
import org.apache.logging.log4j.Logger;
1714

1815
import pro.gravit.launcher.ClientPermissions;
1916
import pro.gravit.launcher.events.request.GetAvailabilityAuthRequestEvent;
20-
import pro.gravit.launcher.profiles.ClientProfile;
2117
import pro.gravit.launcher.profiles.Texture;
2218
import pro.gravit.launcher.request.auth.AuthRequest;
2319
import pro.gravit.launcher.request.auth.details.AuthPasswordDetails;
@@ -34,7 +30,7 @@
3430
import pro.gravit.launchserver.auth.core.UserSession;
3531
import pro.gravit.launchserver.auth.core.interfaces.UserHardware;
3632
import pro.gravit.launchserver.auth.core.interfaces.provider.AuthSupportHardware;
37-
import pro.gravit.launchserver.auth.core.interfaces.user.UserSupportHardware;
33+
import pro.gravit.launchserver.auth.core.interfaces.session.UserSessionSupportHardware;
3834
import pro.gravit.launchserver.auth.core.interfaces.user.UserSupportTextures;
3935
import pro.gravit.launchserver.auth.texture.JsonTextureProvider;
4036
import pro.gravit.launchserver.helper.HttpHelper;
@@ -237,14 +233,19 @@ public MyHttpUserHardware getHardwareInfoByPublicKey(byte[] publicKey) {
237233
logger.error("getHardwareInfoByPublicKey", e);
238234
}
239235

240-
if (response != null && response.isSuccessful()) {
236+
if (response != null && response.statusCode() == 200) {
241237
MyHttpUserHardware userHardware = response.result();
242238
logger.debug("Successfully got UserHardware {} by publicKey", userHardware.id);
243239
return userHardware;
244240
}
245241

242+
// HTTP 204 meaning NO CONTENT, that usually means no data found, but request processed successfully
243+
if (response != null && response.statusCode() == 204) {
244+
logger.debug("UserHardware not found by publicKey");
245+
return null;
246+
}
247+
246248
logger.debug("Something went wrong while getting UserHardware by publicKey");
247-
// possible case, will be processed outside...
248249
return null;
249250
}
250251

@@ -257,14 +258,19 @@ public MyHttpUserHardware getHardwareInfoByData(HardwareReportRequest.HardwareIn
257258
logger.error("getHardwareInfoByData", e);
258259
}
259260

260-
if (response != null && response.isSuccessful()) {
261+
if (response != null && response.statusCode() == 200) {
261262
MyHttpUserHardware userHardware = response.result();
262263
logger.debug("Successfully got UserHardware {} by info", userHardware.id);
263264
return userHardware;
264265
}
265266

267+
// HTTP 204 meaning NO CONTENT, that usually means no data found, but request processed successfully
268+
if (response != null && response.statusCode() == 204) {
269+
logger.debug("UserHardware not found by publicKey");
270+
return null;
271+
}
272+
266273
logger.debug("Something went wrong while getting UserHardware by info");
267-
// possible case, will be processed outside...
268274
return null;
269275
}
270276

@@ -277,14 +283,19 @@ public MyHttpUserHardware getHardwareInfoById(String id) {
277283
logger.error("getHardwareInfoById", e);
278284
}
279285

280-
if (response != null && response.isSuccessful()) {
286+
if (response != null && response.statusCode() == 200) {
281287
MyHttpUserHardware userHardware = response.result();
282288
logger.debug("Successfully got UserHardware by id {}", id);
283289
return userHardware;
284290
}
285291

292+
// HTTP 204 meaning NO CONTENT, that usually means no data found, but request processed successfully
293+
if (response != null && response.statusCode() == 204) {
294+
logger.debug("UserHardware not found by publicKey");
295+
return null;
296+
}
297+
286298
logger.debug("Something went wrong while getting UserHardware by id {}", id);
287-
// possible case, will be processed outside...
288299
return null;
289300
}
290301

@@ -299,7 +310,7 @@ public MyHttpUserHardware createHardwareInfo(HardwareReportRequest.HardwareInfo
299310

300311
if (response != null && response.isSuccessful()) {
301312
MyHttpUserHardware userHardware = response.result();
302-
logger.debug("Successfully created UserHardware, id {}", userHardware.getId());
313+
logger.debug("Successfully created UserHardware");
303314
return userHardware;
304315
}
305316

@@ -313,24 +324,24 @@ public MyHttpUserHardware createHardwareInfo(HardwareReportRequest.HardwareInfo
313324
public void connectUserAndHardware(UserSession userSession, UserHardware hardware) {
314325
HttpHelper.HttpOptional<MyHttpSimpleResponse, HttpRequester.SimpleError> response = null;
315326
try {
316-
response = requester.send(requester.post(connectUserAndHardwareUrl, new UserHardwareRequest(hardware, userSession), bearerToken), MyHttpSimpleResponse.class);
327+
response = requester.send(requester.post(connectUserAndHardwareUrl, new UserHardwareRequest((MyHttpUserHardware) hardware, (MyHttpUserSession) userSession), bearerToken), MyHttpSimpleResponse.class);
317328
} catch (Throwable e) {
318329
logger.error("connectUserAndHardware", e);
319330
}
320331

321332
if (response != null && response.isSuccessful()) {
322-
logger.debug("Successfully connected user {} to hardware {}", userSession.getUser().getUUID(), hardware.getId());
333+
logger.debug("Successfully connected user {} to hardware", userSession.getUser().getUUID());
323334
return;
324335
}
325336

326-
logger.debug("Something went wrong while connecting user {} to hardware {}", userSession.getUser().getUUID(), hardware.getId());
337+
logger.debug("Something went wrong while connecting user {} to hardware", userSession.getUser().getUUID());
327338
}
328339

329340
@Override
330341
public void addPublicKeyToHardwareInfo(UserHardware hardware, byte[] publicKey) {
331342
HttpHelper.HttpOptional<MyHttpSimpleResponse, HttpRequester.SimpleError> response = null;
332343
try {
333-
response = requester.send(requester.post(addPublicKeyToHardwareInfoUrl, new UserHardwareRequest(hardware, publicKey), bearerToken), MyHttpSimpleResponse.class);
344+
response = requester.send(requester.post(addPublicKeyToHardwareInfoUrl, new UserHardwareRequest((MyHttpUserHardware) hardware, publicKey), bearerToken), MyHttpSimpleResponse.class);
334345
} catch (Throwable e) {
335346
logger.error("addPublicKeyToHardwareInfo", e);
336347
}
@@ -347,7 +358,7 @@ public void addPublicKeyToHardwareInfo(UserHardware hardware, byte[] publicKey)
347358
public Iterable<User> getUsersByHardwareInfo(UserHardware hardware) {
348359
HttpHelper.HttpOptional<List<MyHttpUser>, HttpRequester.SimpleError> response = null;
349360
try {
350-
response = requester.send(requester.post(getUsersByHardwareInfoUrl, new UserHardwareRequest(hardware), bearerToken), (new TypeToken<List<MyHttpUser>>(){}).getType());
361+
response = requester.send(requester.post(getUsersByHardwareInfoUrl, new UserHardwareRequest((MyHttpUserHardware) hardware), bearerToken), (new TypeToken<List<MyHttpUser>>(){}).getType());
351362
} catch (Throwable e) {
352363
logger.error("getUsersByHardwareInfo", e);
353364
}
@@ -369,7 +380,7 @@ public Iterable<User> getUsersByHardwareInfo(UserHardware hardware) {
369380
public void banHardware(UserHardware hardware) {
370381
HttpHelper.HttpOptional<MyHttpSimpleResponse, HttpRequester.SimpleError> response = null;
371382
try {
372-
response = requester.send(requester.post(banHardwareUrl, new UserHardwareRequest(hardware), bearerToken), MyHttpSimpleResponse.class);
383+
response = requester.send(requester.post(banHardwareUrl, new UserHardwareRequest((MyHttpUserHardware) hardware), bearerToken), MyHttpSimpleResponse.class);
373384
} catch (Throwable e) {
374385
logger.error("banHardware", e);
375386
}
@@ -386,7 +397,7 @@ public void banHardware(UserHardware hardware) {
386397
public void unbanHardware(UserHardware hardware) {
387398
HttpHelper.HttpOptional<MyHttpSimpleResponse, HttpRequester.SimpleError> response = null;
388399
try {
389-
response = requester.send(requester.post(unbanHardwareUrl, new UserHardwareRequest(hardware), bearerToken), MyHttpSimpleResponse.class);
400+
response = requester.send(requester.post(unbanHardwareUrl, new UserHardwareRequest((MyHttpUserHardware) hardware), bearerToken), MyHttpSimpleResponse.class);
390401
} catch (Throwable e) {
391402
logger.error("unbanHardware", e);
392403
}
@@ -427,23 +438,23 @@ public record HardwareInfoRequest(HardwareReportRequest.HardwareInfo info, byte[
427438
}
428439
}
429440

430-
public record UserHardwareRequest(UserHardware hardware, UserSession userSession, byte[] publicKey) {
431-
UserHardwareRequest(UserHardware hardware) {
441+
public record UserHardwareRequest(MyHttpUserHardware hardware, MyHttpUserSession userSession, byte[] publicKey) {
442+
UserHardwareRequest(MyHttpUserHardware hardware) {
432443
this(hardware, null, null);
433444
}
434445

435-
UserHardwareRequest(UserHardware hardware, byte[] publicKey) {
446+
UserHardwareRequest(MyHttpUserHardware hardware, byte[] publicKey) {
436447
this(hardware, null, publicKey);
437448
}
438449

439-
UserHardwareRequest(UserHardware hardware, UserSession userSession) {
450+
UserHardwareRequest(MyHttpUserHardware hardware, MyHttpUserSession userSession) {
440451
this(hardware, userSession, null);
441452
}
442453
}
443454

444455

445456

446-
public record MyHttpUserSession(String id, String accessToken, String refreshToken, int expire, MyHttpUser user) implements UserSession {
457+
public record MyHttpUserSession(String id, String accessToken, String refreshToken, int expire, MyHttpUser user, String hardwareId, UserHardware userHardware) implements UserSession, UserSessionSupportHardware {
447458

448459
@Override
449460
public String getID() {
@@ -468,9 +479,19 @@ public long getExpireIn() {
468479
public AuthManager.AuthReport toAuthReport() {
469480
return new AuthManager.AuthReport(accessToken, accessToken, refreshToken, expire*1000L /* seconds to milliseconds */, this);
470481
}
482+
483+
@Override
484+
public String getHardwareId() {
485+
return hardwareId;
486+
}
487+
488+
@Override
489+
public UserHardware getHardware() {
490+
return userHardware;
491+
}
471492
}
472493

473-
public record MyHttpUser(String username, UUID uuid, List<String> permissions, List<String> roles, Map<String, JsonTextureProvider.JsonTexture> assets, boolean banned, UserHardware userHardware) implements User, UserSupportHardware, UserSupportTextures {
494+
public record MyHttpUser(String username, UUID uuid, List<String> permissions, List<String> roles, Map<String, JsonTextureProvider.JsonTexture> assets, boolean banned, UserHardware userHardware) implements User, UserSupportTextures {
474495

475496
@Override
476497
public String getUsername() {
@@ -514,11 +535,6 @@ public Texture getCloakTexture() {
514535
public Map<String, Texture> getUserAssets() {
515536
return JsonTextureProvider.JsonTexture.convertMap(assets);
516537
}
517-
518-
@Override
519-
public UserHardware getHardware() {
520-
return userHardware;
521-
}
522538
}
523539

524540
public record MyHttpUserHardware(HardwareReportRequest.HardwareInfo hardwareInfo, byte[] publicKey, String id, boolean banned) implements UserHardware {

0 commit comments

Comments
 (0)