Blank passwords no longer result in "heightheightheightheight"
Try/Catch around login function
This commit is contained in:
parent
e6d612ea4b
commit
080ba6ca2b
2 changed files with 28 additions and 17 deletions
|
|
@ -303,24 +303,31 @@ namespace TShockAPI
|
||||||
args.Player.SendMessage("If you forgot your password, there is no way to recover it.");
|
args.Player.SendMessage("If you forgot your password, there is no way to recover it.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
try
|
||||||
|
{
|
||||||
|
string encrPass = Tools.HashPassword(args.Parameters[1]);
|
||||||
|
string[] exr = TShock.Users.FetchHashedPasswordAndGroup(args.Parameters[0]);
|
||||||
|
if (exr[0].ToUpper() == encrPass.ToUpper())
|
||||||
|
{
|
||||||
|
args.Player.Group = Tools.GetGroup(exr[1]);
|
||||||
|
args.Player.UserName = args.Parameters[0];
|
||||||
|
args.Player.IsLoggedIn = true;
|
||||||
|
args.Player.SendMessage("Authenticated as " + args.Parameters[0] + " successfully.", Color.LimeGreen);
|
||||||
|
Log.ConsoleInfo(args.Player.Name + " authenticated successfully as user: " + args.Parameters[0]);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Log.Warn(args.Player.IP + " failed to authenticate as user: " + args.Parameters[0]);
|
||||||
|
args.Player.LoginAttempts++;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
} catch (Exception e)
|
||||||
|
{
|
||||||
|
args.Player.SendMessage("There was an error processing your request. Maybe your account doesn't exist?", Color.Red);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
string encrPass = Tools.HashPassword(args.Parameters[1]);
|
|
||||||
string[] exr = TShock.Users.FetchHashedPasswordAndGroup(args.Parameters[0]);
|
|
||||||
if (exr[0].ToUpper() == encrPass.ToUpper())
|
|
||||||
{
|
|
||||||
args.Player.Group = Tools.GetGroup(exr[1]);
|
|
||||||
args.Player.UserName = args.Parameters[0];
|
|
||||||
args.Player.IsLoggedIn = true;
|
|
||||||
args.Player.SendMessage("Authenticated as " + args.Parameters[0] + " successfully.", Color.LimeGreen);
|
|
||||||
Log.ConsoleInfo(args.Player.Name + " authenticated successfully as user: " + args.Parameters[0]);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Log.Warn(args.Player.IP + " failed to authenticate as user: " + args.Parameters[0]);
|
|
||||||
args.Player.LoginAttempts++;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//Todo: Add separate help text for '/user add' and '/user del'. Also add '/user addip' and '/user delip'
|
//Todo: Add separate help text for '/user add' and '/user del'. Also add '/user addip' and '/user delip'
|
||||||
|
|
|
||||||
|
|
@ -500,6 +500,10 @@ namespace TShockAPI
|
||||||
{
|
{
|
||||||
using (var sha = new SHA512CryptoServiceProvider())
|
using (var sha = new SHA512CryptoServiceProvider())
|
||||||
{
|
{
|
||||||
|
if (password == "")
|
||||||
|
{
|
||||||
|
return "nonexistent-password";
|
||||||
|
}
|
||||||
var bytes = sha.ComputeHash(Encoding.ASCII.GetBytes(password));
|
var bytes = sha.ComputeHash(Encoding.ASCII.GetBytes(password));
|
||||||
return bytes.Aggregate("", (s, b) => s + b.ToString("height"));
|
return bytes.Aggregate("", (s, b) => s + b.ToString("height"));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue