Example #1
0
        public void EncodeDecodePassword()
        {
            const string test_pass = "******";

            var passwordBytes = LdapHelper.GetPasswordBytes(test_pass);

            Assert.IsNotNull(passwordBytes);

            var strPass = LdapHelper.GetPassword(passwordBytes);

            Assert.AreEqual(strPass, test_pass);
        }
Example #2
0
        private void PrepareSettings(LdapSettings settings)
        {
            if (settings == null)
            {
                Logger.Error("Wrong LDAP settings were received from client.");
                Error = Resource.LdapSettingsErrorCantGetLdapSettings;
                return;
            }

            if (!settings.EnableLdapAuthentication)
            {
                settings.Password = string.Empty;
                return;
            }

            if (!string.IsNullOrWhiteSpace(settings.Server))
            {
                settings.Server = settings.Server.Trim();
            }
            else
            {
                Logger.Error("settings.Server is null or empty.");
                Error = Resource.LdapSettingsErrorCantGetLdapSettings;
                return;
            }

            if (!settings.Server.StartsWith("LDAP://"))
            {
                settings.Server = "LDAP://" + settings.Server.Trim();
            }

            if (!string.IsNullOrWhiteSpace(settings.UserDN))
            {
                settings.UserDN = settings.UserDN.Trim();
            }
            else
            {
                Logger.Error("settings.UserDN is null or empty.");
                Error = Resource.LdapSettingsErrorCantGetLdapSettings;
                return;
            }

            if (!string.IsNullOrWhiteSpace(settings.LoginAttribute))
            {
                settings.LoginAttribute = settings.LoginAttribute.Trim();
            }
            else
            {
                Logger.Error("settings.LoginAttribute is null or empty.");
                Error = Resource.LdapSettingsErrorCantGetLdapSettings;
                return;
            }

            if (!string.IsNullOrWhiteSpace(settings.UserFilter))
            {
                settings.UserFilter = settings.UserFilter.Trim();
            }

            if (!string.IsNullOrWhiteSpace(settings.FirstNameAttribute))
            {
                settings.FirstNameAttribute = settings.FirstNameAttribute.Trim();
            }

            if (!string.IsNullOrWhiteSpace(settings.SecondNameAttribute))
            {
                settings.SecondNameAttribute = settings.SecondNameAttribute.Trim();
            }

            if (!string.IsNullOrWhiteSpace(settings.MailAttribute))
            {
                settings.MailAttribute = settings.MailAttribute.Trim();
            }

            if (!string.IsNullOrWhiteSpace(settings.TitleAttribute))
            {
                settings.TitleAttribute = settings.TitleAttribute.Trim();
            }

            if (!string.IsNullOrWhiteSpace(settings.MobilePhoneAttribute))
            {
                settings.MobilePhoneAttribute = settings.MobilePhoneAttribute.Trim();
            }

            if (settings.GroupMembership)
            {
                if (!string.IsNullOrWhiteSpace(settings.GroupDN))
                {
                    settings.GroupDN = settings.GroupDN.Trim();
                }
                else
                {
                    Logger.Error("settings.GroupDN is null or empty.");
                    Error = Resource.LdapSettingsErrorCantGetLdapSettings;
                    return;
                }

                if (!string.IsNullOrWhiteSpace(settings.GroupFilter))
                {
                    settings.GroupFilter = settings.GroupFilter.Trim();
                }

                if (!string.IsNullOrWhiteSpace(settings.GroupAttribute))
                {
                    settings.GroupAttribute = settings.GroupAttribute.Trim();
                }
                else
                {
                    Logger.Error("settings.GroupAttribute is null or empty.");
                    Error = Resource.LdapSettingsErrorCantGetLdapSettings;
                    return;
                }

                if (!string.IsNullOrWhiteSpace(settings.UserAttribute))
                {
                    settings.UserAttribute = settings.UserAttribute.Trim();
                }
                else
                {
                    Logger.Error("settings.UserAttribute is null or empty.");
                    Error = Resource.LdapSettingsErrorCantGetLdapSettings;
                    return;
                }
            }

            if (!settings.Authentication)
            {
                settings.Password = string.Empty;
                return;
            }

            if (!string.IsNullOrWhiteSpace(settings.Login))
            {
                settings.Login = settings.Login.Trim();
            }
            else
            {
                Logger.Error("settings.Login is null or empty.");
                Error = Resource.LdapSettingsErrorCantGetLdapSettings;
                return;
            }

            if (settings.PasswordBytes == null || !settings.PasswordBytes.Any())
            {
                if (!string.IsNullOrEmpty(settings.Password))
                {
                    settings.PasswordBytes = LdapHelper.GetPasswordBytes(settings.Password);

                    if (settings.PasswordBytes == null)
                    {
                        Logger.Error("settings.PasswordBytes is null.");
                        Error = Resource.LdapSettingsErrorCantGetLdapSettings;
                        return;
                    }
                }
                else
                {
                    Logger.Error("settings.Password is null or empty.");
                    Error = Resource.LdapSettingsErrorCantGetLdapSettings;
                    return;
                }
            }

            settings.Password = string.Empty;
        }