diff --git a/Emby.Server.Implementations/Library/DefaultAuthenticationProvider.cs b/Emby.Server.Implementations/Library/DefaultAuthenticationProvider.cs index b07244fda..2282b8efb 100644 --- a/Emby.Server.Implementations/Library/DefaultAuthenticationProvider.cs +++ b/Emby.Server.Implementations/Library/DefaultAuthenticationProvider.cs @@ -37,7 +37,7 @@ namespace Emby.Server.Implementations.Library throw new ArgumentNullException(nameof(resolvedUser)); } - // As long as jellyfin supports passwordless users, we need this little block here to accomodate + // As long as jellyfin supports passwordless users, we need this little block here to accommodate if (!HasPassword(resolvedUser) && string.IsNullOrEmpty(password)) { return Task.FromResult(new ProviderAuthenticationResult @@ -105,6 +105,7 @@ namespace Emby.Server.Implementations.Library public Task ChangePassword(User user, string newPassword) { ConvertPasswordFormat(user); + // This is needed to support changing a no password user to a password user if (string.IsNullOrEmpty(user.Password)) { diff --git a/MediaBrowser.Api/UserService.cs b/MediaBrowser.Api/UserService.cs index f08d070ca..0192805b8 100644 --- a/MediaBrowser.Api/UserService.cs +++ b/MediaBrowser.Api/UserService.cs @@ -418,7 +418,7 @@ namespace MediaBrowser.Api return ToOptimizedResult(result); } - catch(SecurityException e) + catch (SecurityException e) { // rethrow adding IP address to message throw new SecurityException($"[{Request.RemoteIp}] {e.Message}"); diff --git a/MediaBrowser.Model/Cryptography/PasswordHash.cs b/MediaBrowser.Model/Cryptography/PasswordHash.cs index 4bcf0c117..6e66f2088 100644 --- a/MediaBrowser.Model/Cryptography/PasswordHash.cs +++ b/MediaBrowser.Model/Cryptography/PasswordHash.cs @@ -69,6 +69,13 @@ namespace MediaBrowser.Model.Cryptography } } + public PasswordHash(ICryptoProvider cryptoProvider) + { + _id = cryptoProvider.DefaultHashMethod; + _salt = cryptoProvider.GenerateSalt(); + _hash = Array.Empty(); + } + public string Id { get => _id; set => _id = value; } public Dictionary Parameters { get => _parameters; set => _parameters = value; } @@ -77,13 +84,6 @@ namespace MediaBrowser.Model.Cryptography public byte[] Hash { get => _hash; set => _hash = value; } - public PasswordHash(ICryptoProvider cryptoProvider) - { - _id = cryptoProvider.DefaultHashMethod; - _salt = cryptoProvider.GenerateSalt(); - _hash = Array.Empty(); - } - // TODO: move this class and use the HexHelper class public static byte[] ConvertFromByteString(string byteString) { @@ -127,7 +127,7 @@ namespace MediaBrowser.Model.Cryptography str.Append(_id); SerializeParameters(str); - if (_salt.Length == 0) + if (_salt.Length != 0) { str.Append('$'); str.Append(ConvertToByteString(_salt));