Implement Get/Set-PasswordPolicy cmdlets
This commit is contained in:
@@ -143,5 +143,78 @@ namespace VMware.vSphere.SsoAdminClient.Tests
|
||||
ssoAdminClient.DeleteLocalUser(
|
||||
newUser);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void GetPasswordPolicy() {
|
||||
// Arrange
|
||||
var ssoAdminClient = new SsoAdminClient(_vc, _user, _password, new AcceptAllX509CertificateValidator());
|
||||
|
||||
// Act
|
||||
var actual = ssoAdminClient.GetPasswordPolicy();
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(actual);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SetPasswordPolicy() {
|
||||
// Arrange
|
||||
var ssoAdminClient = new SsoAdminClient(_vc, _user, _password, new AcceptAllX509CertificateValidator());
|
||||
|
||||
var originalPasswordPolicy = ssoAdminClient.GetPasswordPolicy();
|
||||
|
||||
var expectedDescription = "TestDescription";
|
||||
var expectedProhibitedPreviousPasswordsCount = originalPasswordPolicy.ProhibitedPreviousPasswordsCount + 1;
|
||||
var expectedMinLength = originalPasswordPolicy.MinLength + 1;
|
||||
var expectedMaxLength = originalPasswordPolicy.MaxLength + 1;
|
||||
var exptectedMaxIdenticalAdjacentCharacters = originalPasswordPolicy.MaxIdenticalAdjacentCharacters + 1;
|
||||
var expectedMinNumericCount = originalPasswordPolicy.MinNumericCount + 1;
|
||||
var expectedMinSpecialCharCount = originalPasswordPolicy.MinSpecialCharCount + 1;
|
||||
var expectedMinAlphabeticCount = originalPasswordPolicy.MinAlphabeticCount + 2;
|
||||
var expectedMinUppercaseCount = 0;
|
||||
var expectedMinLowercaseCount = originalPasswordPolicy.MinLowercaseCount + 2;
|
||||
var expectedPasswordLifetimeDays = originalPasswordPolicy.PasswordLifetimeDays - 2;
|
||||
|
||||
// Act
|
||||
var actual = ssoAdminClient.SetPasswordPolicy(
|
||||
description: expectedDescription,
|
||||
prohibitedPreviousPasswordsCount: expectedProhibitedPreviousPasswordsCount,
|
||||
minLength: expectedMinLength,
|
||||
maxLength: expectedMaxLength,
|
||||
maxIdenticalAdjacentCharacters: exptectedMaxIdenticalAdjacentCharacters,
|
||||
minNumericCount: expectedMinNumericCount,
|
||||
minSpecialCharCount: expectedMinSpecialCharCount,
|
||||
minAlphabeticCount: expectedMinAlphabeticCount,
|
||||
minUppercaseCount: expectedMinUppercaseCount,
|
||||
minLowercaseCount: expectedMinLowercaseCount,
|
||||
passwordLifetimeDays: expectedPasswordLifetimeDays);
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(actual);
|
||||
Assert.AreEqual(expectedDescription, actual.Description);
|
||||
Assert.AreEqual(expectedProhibitedPreviousPasswordsCount, actual.ProhibitedPreviousPasswordsCount);
|
||||
Assert.AreEqual(expectedMinLength, actual.MinLength);
|
||||
Assert.AreEqual(expectedMaxLength, actual.MaxLength);
|
||||
Assert.AreEqual(exptectedMaxIdenticalAdjacentCharacters, actual.MaxIdenticalAdjacentCharacters);
|
||||
Assert.AreEqual(expectedMinNumericCount, actual.MinNumericCount);
|
||||
Assert.AreEqual(expectedMinAlphabeticCount, actual.MinAlphabeticCount);
|
||||
Assert.AreEqual(expectedMinUppercaseCount, actual.MinUppercaseCount);
|
||||
Assert.AreEqual(expectedMinLowercaseCount, actual.MinLowercaseCount);
|
||||
Assert.AreEqual(expectedPasswordLifetimeDays, actual.PasswordLifetimeDays);
|
||||
|
||||
// Cleanup
|
||||
ssoAdminClient.SetPasswordPolicy(
|
||||
description: originalPasswordPolicy.Description,
|
||||
prohibitedPreviousPasswordsCount: originalPasswordPolicy.ProhibitedPreviousPasswordsCount,
|
||||
minLength: originalPasswordPolicy.MinLength,
|
||||
maxLength: originalPasswordPolicy.MaxLength,
|
||||
maxIdenticalAdjacentCharacters: originalPasswordPolicy.MaxIdenticalAdjacentCharacters,
|
||||
minNumericCount: originalPasswordPolicy.MinNumericCount,
|
||||
minSpecialCharCount: originalPasswordPolicy.MinSpecialCharCount,
|
||||
minAlphabeticCount: originalPasswordPolicy.MinAlphabeticCount,
|
||||
minUppercaseCount: originalPasswordPolicy.MinUppercaseCount,
|
||||
minLowercaseCount: originalPasswordPolicy.MinLowercaseCount,
|
||||
passwordLifetimeDays: originalPasswordPolicy.PasswordLifetimeDays);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
// **************************************************************************
|
||||
// Copyright (c) VMware, Inc. All rights reserved. -- VMware Confidential.
|
||||
// **************************************************************************
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace VMware.vSphere.SsoAdminClient.DataTypes
|
||||
{
|
||||
public class PasswordPolicy
|
||||
{
|
||||
SsoAdminClient _client;
|
||||
public PasswordPolicy(SsoAdminClient client) {
|
||||
_client = client;
|
||||
}
|
||||
|
||||
public string Description { get; set; }
|
||||
public int ProhibitedPreviousPasswordsCount { get; set; }
|
||||
public int MinLength { get; set; }
|
||||
public int MaxLength { get; set; }
|
||||
public int MinNumericCount { get; set; }
|
||||
public int MinSpecialCharCount { get; set; }
|
||||
public int MaxIdenticalAdjacentCharacters { get; set; }
|
||||
public int MinAlphabeticCount { get; set; }
|
||||
public int MinUppercaseCount { get; set; }
|
||||
public int MinLowercaseCount { get; set; }
|
||||
public int PasswordLifetimeDays { get; set; }
|
||||
|
||||
public SsoAdminClient GetClient() {
|
||||
return _client;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -11,6 +11,11 @@ namespace VMware.vSphere.SsoAdminClient.DataTypes
|
||||
{
|
||||
public class PersonUser
|
||||
{
|
||||
SsoAdminClient _client;
|
||||
public PersonUser(SsoAdminClient client) {
|
||||
_client = client;
|
||||
}
|
||||
|
||||
public string Name { get; set; }
|
||||
public string Domain { get; set; }
|
||||
public string Description { get; set; }
|
||||
@@ -18,6 +23,10 @@ namespace VMware.vSphere.SsoAdminClient.DataTypes
|
||||
public string LastName { get; set; }
|
||||
public string EmailAddress { get; set; }
|
||||
|
||||
public SsoAdminClient GetClient() {
|
||||
return _client;
|
||||
}
|
||||
|
||||
public override string ToString() {
|
||||
return $"{Name}@{Domain}";
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ namespace VMware.vSphere.SsoAdminClient
|
||||
|
||||
private void RenewIfNeeded() {
|
||||
if (_validToken == null ||
|
||||
_validToken.Expires < (DateTime.Now - new TimeSpan(0, 0, 30))) {
|
||||
_validToken.Expires < (DateTime.Now + new TimeSpan(0, 0, 30))) {
|
||||
_validToken = _stsClient.IssueBearerTokenByUserCredential(
|
||||
_user,
|
||||
_password);
|
||||
|
||||
Reference in New Issue
Block a user