Newer
Older
KeeperJerry_Launcher / LaunchServer / source / command / auth / AuthCommand.java
package launchserver.command.auth;

import java.util.UUID;

import launcher.helper.LogHelper;
import launcher.helper.SecurityHelper;
import launchserver.LaunchServer;
import launchserver.command.Command;
import launchserver.command.CommandException;

public final class AuthCommand extends Command {
	public AuthCommand(LaunchServer server) {
		super(server);
	}

	@Override
	public String getArgsDescription() {
		return "<login> <password>";
	}

	@Override
	public String getUsageDescription() {
		return "Try to auth with specified login and password";
	}

	@Override
	public void invoke(String... args) throws Exception {
		verifyArgs(args, 2);
		String login = args[0];
		String password = args[1];

		// Authenticate
		String username = server.config.authProvider.auth(login, password);

		// Authenticate on server (and get UUID)
		String accessToken = SecurityHelper.randomStringToken();
		UUID uuid = server.config.authHandler.auth(username, accessToken);
		if (uuid == null) {
			throw new CommandException("Can't assing UUID (Command)");
		}

		// Print auth successful message
		LogHelper.subInfo("UUID: %s, Username: '%s', Access Token: '%s'", uuid, username, accessToken);
	}
}