diff --git a/LaunchServer/source/auth/provider/DigestAuthProvider.java b/LaunchServer/source/auth/provider/DigestAuthProvider.java index 0113f12..af6e777 100644 --- a/LaunchServer/source/auth/provider/DigestAuthProvider.java +++ b/LaunchServer/source/auth/provider/DigestAuthProvider.java @@ -7,30 +7,23 @@ import launchserver.auth.AuthException; public abstract class DigestAuthProvider extends AuthProvider { - private final String digest; + private final SecurityHelper.DigestAlgorithm digest; @LauncherAPI protected DigestAuthProvider(BlockConfigEntry block) { super(block); - digest = block.getEntryValue("digest", StringConfigEntry.class); - getDigest(); // Verify that this digest exists - } - - @LauncherAPI - public final SecurityHelper.DigestAlgorithm getDigest() { - return SecurityHelper.DigestAlgorithm.byName(digest); + digest = SecurityHelper.DigestAlgorithm.byName(block.getEntryValue("digest", StringConfigEntry.class)); } @LauncherAPI protected final void verifyDigest(String validDigest, String password) throws AuthException { boolean valid; - SecurityHelper.DigestAlgorithm algorithm = getDigest(); - if (algorithm == SecurityHelper.DigestAlgorithm.PLAIN) { + if (digest == SecurityHelper.DigestAlgorithm.PLAIN) { valid = password.equals(validDigest); } else if (validDigest == null) { valid = false; } else { - byte[] actualDigest = SecurityHelper.digest(getDigest(), password); + byte[] actualDigest = SecurityHelper.digest(digest, password); valid = SecurityHelper.toHex(actualDigest).equals(validDigest); } diff --git a/LaunchServer/source/auth/provider/FileAuthProvider.java b/LaunchServer/source/auth/provider/FileAuthProvider.java index 421fa11..5970259 100644 --- a/LaunchServer/source/auth/provider/FileAuthProvider.java +++ b/LaunchServer/source/auth/provider/FileAuthProvider.java @@ -46,13 +46,8 @@ entry = entries.get(CommonHelper.low(login)); } - // Verify is account exist - if (entry == null) { - return authError("Incorrect username or password"); - } - // Verify digest and return true username - verifyDigest(entry.password, password); + verifyDigest(entry == null ? null : entry.password, password); return entry.username; } diff --git a/Launcher/source/hasher/DirWatcher.java b/Launcher/source/hasher/DirWatcher.java index d165135..69ae552 100644 --- a/Launcher/source/hasher/DirWatcher.java +++ b/Launcher/source/hasher/DirWatcher.java @@ -15,7 +15,6 @@ import java.util.LinkedList; import java.util.Objects; -import com.sun.nio.file.ExtendedWatchEventModifier; import com.sun.nio.file.SensitivityWatchEventModifier; import launcher.LauncherAPI; import launcher.helper.IOHelper; @@ -23,13 +22,7 @@ import launcher.helper.LogHelper; public final class DirWatcher implements Runnable, AutoCloseable { - private static final boolean FILE_TREE_SUPPORTED = JVMHelper.OS_TYPE == JVMHelper.OS.MUSTDIE; - - // Constants private static final WatchEvent.Modifier[] MODIFIERS = { SensitivityWatchEventModifier.HIGH }; - private static final WatchEvent.Modifier[] FILE_TREE_MODIFIERS = { - ExtendedWatchEventModifier.FILE_TREE, SensitivityWatchEventModifier.HIGH - }; private static final WatchEvent.Kind[] KINDS = { StandardWatchEventKinds.ENTRY_CREATE, StandardWatchEventKinds.ENTRY_MODIFY, StandardWatchEventKinds.ENTRY_DELETE }; @@ -45,15 +38,9 @@ this.dir = Objects.requireNonNull(dir, "dir"); this.hdir = Objects.requireNonNull(hdir, "hdir"); this.matcher = matcher; - service = dir.getFileSystem().newWatchService(); - - // Use FILE_TREE if supported - if (FILE_TREE_SUPPORTED) { - dir.register(service, KINDS, FILE_TREE_MODIFIERS); - return; - } // Register dirs recursively + service = dir.getFileSystem().newWatchService(); IOHelper.walk(dir, new RegisterFileVisitor(), true); }