update to support 1.1.1-dev

This commit is contained in:
muhammadeko 2022-05-11 23:29:35 +07:00
parent 1a7305adf6
commit 2675177800
No known key found for this signature in database
GPG Key ID: 51366716C10E98B1
4 changed files with 16 additions and 8 deletions

View File

@ -10,14 +10,14 @@ sourceCompatibility = 17
targetCompatibility = 17 targetCompatibility = 17
group 'me.exzork.gcauth' group 'me.exzork.gcauth'
version '2.1.3' version '2.1.4'
repositories { repositories {
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
implementation files('lib/grasscutter-1.0.3-dev.jar') implementation files('lib/grasscutter-1.1.1-dev.jar')
implementation 'org.springframework.security:spring-security-crypto:5.6.3' implementation 'org.springframework.security:spring-security-crypto:5.6.3'
implementation 'commons-logging:commons-logging:1.2' implementation 'commons-logging:commons-logging:1.2'
implementation 'com.auth0:java-jwt:3.19.1' implementation 'com.auth0:java-jwt:3.19.1'

View File

@ -1,5 +1,8 @@
package me.exzork.gcauth; package me.exzork.gcauth;
import me.exzork.gcauth.utils.Authentication;
public final class Config { public final class Config {
public String Hash = "BCRYPT"; public String Hash = "BCRYPT";
public String jwtSecret = Authentication.generateRandomString(32);
} }

View File

@ -3,9 +3,9 @@ package me.exzork.gcauth;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.GsonBuilder; import com.google.gson.GsonBuilder;
import emu.grasscutter.Grasscutter; import emu.grasscutter.Grasscutter;
import emu.grasscutter.net.proto.QueryCurrRegionHttpRspOuterClass;
import emu.grasscutter.plugin.Plugin; import emu.grasscutter.plugin.Plugin;
import me.exzork.gcauth.handler.*; import me.exzork.gcauth.handler.*;
import me.exzork.gcauth.utils.Authentication;
import java.io.File; import java.io.File;
import java.io.FileReader; import java.io.FileReader;
@ -32,8 +32,9 @@ public class GCAuth extends Plugin {
loadConfig(); loadConfig();
if(Grasscutter.getDispatchServer().registerAuthHandler(new GCAuthAuthenticationHandler())) { if(Grasscutter.getDispatchServer().registerAuthHandler(new GCAuthAuthenticationHandler())) {
Grasscutter.getLogger().info("[GCAuth] GCAuth Enabled!"); Grasscutter.getLogger().info("[GCAuth] GCAuth Enabled!");
config.jwtSecret = Authentication.generateRandomString(32);
if(Grasscutter.getConfig().getDispatchOptions().AutomaticallyCreateAccounts) { saveConfig();
if(Grasscutter.getConfig().account.autoCreate) {
Grasscutter.getLogger().warn("[GCAuth] GCAuth does not support automatic account creation. Please disable in the server's config.json or just ignore this warning."); Grasscutter.getLogger().warn("[GCAuth] GCAuth does not support automatic account creation. Please disable in the server's config.json or just ignore this warning.");
} }
} else { } else {
@ -65,5 +66,6 @@ public class GCAuth extends Plugin {
Grasscutter.getLogger().error("[GCAuth] Unable to save config file."); Grasscutter.getLogger().error("[GCAuth] Unable to save config file.");
} }
} }
public static Config getConfig() {return config;} public static Config getConfigStatic() {return config;}
public Config getConfig() {return config;}
} }

View File

@ -13,6 +13,9 @@ import java.util.HashMap;
public final class Authentication { public final class Authentication {
public static final HashMap<String,String> tokens = new HashMap<String,String>(); public static final HashMap<String,String> tokens = new HashMap<String,String>();
private static Algorithm key = Algorithm.HMAC256(generateRandomString(32)); private static Algorithm key = Algorithm.HMAC256(generateRandomString(32));
public static Algorithm getKey() {
return key;
}
public static Account getAccountByUsernameAndPassword(String username, String password) { public static Account getAccountByUsernameAndPassword(String username, String password) {
Account account = DatabaseHelper.getAccountByName(username); Account account = DatabaseHelper.getAccountByName(username);
@ -55,7 +58,7 @@ public final class Authentication {
} }
public static String generateHash(String password) { public static String generateHash(String password) {
return switch (GCAuth.getConfig().Hash.toLowerCase()) { return switch (GCAuth.getConfigStatic().Hash.toLowerCase()) {
case "bcrypt" -> new BCryptPasswordEncoder().encode(password); case "bcrypt" -> new BCryptPasswordEncoder().encode(password);
case "scrypt" -> new SCryptPasswordEncoder().encode(password); case "scrypt" -> new SCryptPasswordEncoder().encode(password);
default -> password; default -> password;
@ -63,7 +66,7 @@ public final class Authentication {
} }
private static boolean verifyPassword(String password, String hash) { private static boolean verifyPassword(String password, String hash) {
return switch (GCAuth.getConfig().Hash.toLowerCase()) { return switch (GCAuth.getConfigStatic().Hash.toLowerCase()) {
case "bcrypt" -> new BCryptPasswordEncoder().matches(password, hash); case "bcrypt" -> new BCryptPasswordEncoder().matches(password, hash);
case "scrypt" -> new SCryptPasswordEncoder().matches(password, hash); case "scrypt" -> new SCryptPasswordEncoder().matches(password, hash);
default -> password.equals(hash); default -> password.equals(hash);