Skip to content

Commit 8047bcd

Browse files
[~] Update Novell.Directory.Ldap.NETStandard to 4.0.0 and all necessary changes for it CactuseSecurity#2970
1 parent 3649a31 commit 8047bcd

13 files changed

+240
-223
lines changed

roles/middleware/files/FWO.Middleware.Server/AppDataImport.cs

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using FWO.Api.Client;
1+
using FWO.Api.Client;
22
using FWO.Api.Client.Queries;
33
using FWO.Basics;
44
using FWO.Config.Api;
@@ -80,14 +80,14 @@ private async Task InitLdap()
8080
requesterRoleDn = $"cn=requester,{internalLdap.RoleSearchPath}";
8181
implementerRoleDn = $"cn=implementer,{internalLdap.RoleSearchPath}";
8282
reviewerRoleDn = $"cn=reviewer,{internalLdap.RoleSearchPath}";
83-
allInternalGroups = internalLdap.GetAllInternalGroups();
83+
allInternalGroups = await internalLdap.GetAllInternalGroups();
8484
if (globalConfig.OwnerLdapId == GlobalConst.kLdapInternalId)
8585
{
8686
allGroups = allInternalGroups; // TODO: check if ref is ok here
8787
}
8888
else
8989
{
90-
allGroups = ownerGroupLdap.GetAllGroupObjects(globalConfig.OwnerLdapGroupNames.Replace(GlobalConst.kAppIdPlaceholder, "*"));
90+
allGroups = await ownerGroupLdap.GetAllGroupObjects(globalConfig.OwnerLdapGroupNames.Replace(GlobalConst.kAppIdPlaceholder, "*"));
9191
}
9292
}
9393

@@ -189,7 +189,7 @@ private async Task<bool> SaveApp(ModellingImportAppData incomingApp)
189189
private async Task<string> NewApp(ModellingImportAppData incomingApp)
190190
{
191191
string userGroupDn;
192-
userGroupDn = globalConfig.ManageOwnerLdapGroups ? CreateUserGroup(incomingApp) : GetGroupDn(incomingApp.ExtAppId);
192+
userGroupDn = globalConfig.ManageOwnerLdapGroups ? await CreateUserGroup(incomingApp) : GetGroupDn(incomingApp.ExtAppId);
193193

194194
var variables = new
195195
{
@@ -224,7 +224,7 @@ private async Task<string> UpdateApp(ModellingImportAppData incomingApp, FwoOwne
224224
{
225225
if (string.IsNullOrEmpty(existingApp.GroupDn) && allGroups.FirstOrDefault(x => x.GroupDn == userGroupDn) == null)
226226
{
227-
string newDn = CreateUserGroup(incomingApp);
227+
string newDn = await CreateUserGroup(incomingApp);
228228
if(newDn != userGroupDn) // may this happen?
229229
{
230230
Log.WriteInfo("Import App Data", $"New UserGroup DN {newDn} differs from settings value {userGroupDn}.");
@@ -290,7 +290,7 @@ private async Task AddAllGroupMembersToUiUser(string userGroupDn)
290290
{
291291
foreach (Ldap ldap in connectedLdaps)
292292
{
293-
foreach (string memberDn in ldap.GetGroupMembers(userGroupDn))
293+
foreach (string memberDn in await ldap.GetGroupMembers(userGroupDn))
294294
{
295295
UiUser? uiUser = await ConvertLdapToUiUser(apiConnection, memberDn);
296296
if(uiUser != null)
@@ -309,7 +309,7 @@ private async Task AddAllGroupMembersToUiUser(string userGroupDn)
309309
{
310310
if (!string.IsNullOrEmpty(ldap.UserSearchPath) && userDn.ToLower().Contains(ldap.UserSearchPath!.ToLower()))
311311
{
312-
LdapEntry? ldapUser = ldap.GetUserDetailsFromLdap(userDn);
312+
LdapEntry? ldapUser = await ldap.GetUserDetailsFromLdap(userDn);
313313

314314
if (ldapUser != null)
315315
{
@@ -366,38 +366,38 @@ private async Task<Tenant> DeriveTenantFromLdap(Ldap ldap, LdapEntry ldapUser)
366366
return tenant;
367367
}
368368

369-
private string CreateUserGroup(ModellingImportAppData incomingApp)
369+
private async Task<string> CreateUserGroup(ModellingImportAppData incomingApp)
370370
{
371371
string groupDn = "";
372372
if (incomingApp.Modellers != null && incomingApp.Modellers.Count > 0
373373
|| incomingApp.ModellerGroups != null && incomingApp.ModellerGroups.Count > 0)
374374
{
375375
string groupName = GetGroupName(incomingApp.ExtAppId);
376-
groupDn = internalLdap.AddGroup(groupName, true);
376+
groupDn = await internalLdap.AddGroup(groupName, true);
377377
if (incomingApp.Modellers != null)
378378
{
379379
foreach (var modeller in incomingApp.Modellers)
380380
{
381381
// add user to internal group:
382-
internalLdap.AddUserToEntry(modeller, groupDn);
382+
await internalLdap.AddUserToEntry(modeller, groupDn);
383383
}
384384
}
385385
if (incomingApp.ModellerGroups != null)
386386
{
387387
foreach (var modellerGrp in incomingApp.ModellerGroups)
388388
{
389-
internalLdap.AddUserToEntry(modellerGrp, groupDn);
389+
await internalLdap.AddUserToEntry(modellerGrp, groupDn);
390390
}
391391
}
392-
internalLdap.AddUserToEntry(groupDn, modellerRoleDn);
393-
internalLdap.AddUserToEntry(groupDn, requesterRoleDn);
394-
internalLdap.AddUserToEntry(groupDn, implementerRoleDn);
395-
internalLdap.AddUserToEntry(groupDn, reviewerRoleDn);
392+
await internalLdap.AddUserToEntry(groupDn, modellerRoleDn);
393+
await internalLdap.AddUserToEntry(groupDn, requesterRoleDn);
394+
await internalLdap.AddUserToEntry(groupDn, implementerRoleDn);
395+
await internalLdap.AddUserToEntry(groupDn, reviewerRoleDn);
396396
}
397397
return groupDn;
398398
}
399399

400-
private string UpdateUserGroup(ModellingImportAppData incomingApp, string groupDn)
400+
private async Task<string> UpdateUserGroup(ModellingImportAppData incomingApp, string groupDn)
401401
{
402402
List<string> existingMembers = (allGroups.FirstOrDefault(x => x.GroupDn == groupDn) ?? throw new Exception("Group could not be found.")).Members;
403403
if (incomingApp.Modellers != null)
@@ -406,7 +406,7 @@ private string UpdateUserGroup(ModellingImportAppData incomingApp, string groupD
406406
{
407407
if (existingMembers.FirstOrDefault(x => x.Equals(modeller, StringComparison.CurrentCultureIgnoreCase)) == null)
408408
{
409-
internalLdap.AddUserToEntry(modeller, groupDn);
409+
await internalLdap.AddUserToEntry(modeller, groupDn);
410410
}
411411
}
412412
}
@@ -416,7 +416,7 @@ private string UpdateUserGroup(ModellingImportAppData incomingApp, string groupD
416416
{
417417
if (existingMembers.FirstOrDefault(x => x.Equals(modellerGrp, StringComparison.CurrentCultureIgnoreCase)) == null)
418418
{
419-
internalLdap.AddUserToEntry(modellerGrp, groupDn);
419+
await internalLdap.AddUserToEntry(modellerGrp, groupDn);
420420
}
421421
}
422422
}
@@ -425,31 +425,31 @@ private string UpdateUserGroup(ModellingImportAppData incomingApp, string groupD
425425
if ((incomingApp.Modellers == null || incomingApp.Modellers.FirstOrDefault(x => x.Equals(member, StringComparison.CurrentCultureIgnoreCase)) == null)
426426
&& (incomingApp.ModellerGroups == null || incomingApp.ModellerGroups.FirstOrDefault(x => x.Equals(member, StringComparison.CurrentCultureIgnoreCase)) == null))
427427
{
428-
internalLdap.RemoveUserFromEntry(member, groupDn);
428+
await internalLdap.RemoveUserFromEntry(member, groupDn);
429429
}
430430
}
431-
UpdateRoles(groupDn);
431+
await UpdateRoles(groupDn);
432432
return groupDn;
433433
}
434434

435-
private void UpdateRoles(string dn)
435+
private async Task UpdateRoles(string dn)
436436
{
437-
List<string> roles = internalLdap.GetRoles([dn]);
437+
List<string> roles = await internalLdap.GetRoles([dn]);
438438
if(!roles.Contains(Roles.Modeller))
439439
{
440-
internalLdap.AddUserToEntry(dn, modellerRoleDn);
440+
await internalLdap.AddUserToEntry(dn, modellerRoleDn);
441441
}
442442
if(!roles.Contains(Roles.Requester))
443443
{
444-
internalLdap.AddUserToEntry(dn, requesterRoleDn);
444+
await internalLdap.AddUserToEntry(dn, requesterRoleDn);
445445
}
446446
if(!roles.Contains(Roles.Implementer))
447447
{
448-
internalLdap.AddUserToEntry(dn, implementerRoleDn);
448+
await internalLdap.AddUserToEntry(dn, implementerRoleDn);
449449
}
450450
if(!roles.Contains(Roles.Reviewer))
451451
{
452-
internalLdap.AddUserToEntry(dn, reviewerRoleDn);
452+
await internalLdap.AddUserToEntry(dn, reviewerRoleDn);
453453
}
454454
}
455455

roles/middleware/files/FWO.Middleware.Server/Controllers/AuthenticationTokenController.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using FWO.Api.Client;
1+
using FWO.Api.Client;
22
using FWO.Api.Client.Queries;
33
using FWO.Basics;
44
using FWO.Data;
@@ -194,10 +194,10 @@ public async Task<List<string>> GetGroups(LdapEntry ldapUser, Ldap ldap)
194194
{
195195
if (currentLdap.IsInternal())
196196
{
197-
ldapRoleRequests.Add(Task.Run(() =>
197+
ldapRoleRequests.Add(Task.Run(async() =>
198198
{
199199
// Get groups from current Ldap
200-
List<string> currentGroups = currentLdap.GetGroups([ldapUser.Dn]);
200+
List<string> currentGroups = await currentLdap.GetGroups([ldapUser.Dn]);
201201
lock (groupsLock)
202202
{
203203
currentGroups = Array.ConvertAll(currentGroups.ToArray(), x => "cn=" + x + "," + currentLdap.GroupSearchPath).ToList();
@@ -230,13 +230,13 @@ public async Task<List<string>> GetGroups(LdapEntry ldapUser, Ldap ldap)
230230

231231
foreach (Ldap currentLdap in ldaps.Where(x => x.Active))
232232
{
233-
ldapValidationRequests.Add(Task.Run(() =>
233+
ldapValidationRequests.Add(Task.Run(async() =>
234234
{
235235
Log.WriteDebug("User Authentication", $"Trying to authenticate {user.Name + " " + user.Dn} against LDAP {currentLdap.Address}:{currentLdap.Port} ...");
236236

237237
try
238238
{
239-
LdapEntry? currentLdapEntry = currentLdap.GetLdapEntry(user, validatePassword);
239+
LdapEntry? currentLdapEntry = await currentLdap.GetLdapEntry(user, validatePassword);
240240

241241
if (currentLdapEntry != null)
242242
{
@@ -304,10 +304,10 @@ public async Task<List<string>> GetRoles(UiUser user)
304304
// if current Ldap has roles stored
305305
if (currentLdap.HasRoleHandling())
306306
{
307-
ldapRoleRequests.Add(Task.Run(() =>
307+
ldapRoleRequests.Add(Task.Run(async() =>
308308
{
309309
// Get roles from current Ldap
310-
List<string> currentRoles = currentLdap.GetRoles(dnList);
310+
List<string> currentRoles = await currentLdap.GetRoles(dnList);
311311

312312
lock (rolesLock)
313313
{

roles/middleware/files/FWO.Middleware.Server/Controllers/GroupController.cs

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using FWO.Basics;
1+
using FWO.Basics;
22
using FWO.Data;
33
using FWO.Data.Middleware;
44
using FWO.Logging;
@@ -43,10 +43,10 @@ public async Task<ActionResult<List<GroupGetReturnParameters>>> Get()
4343
{
4444
if (currentLdap.IsInternal() && currentLdap.HasGroupHandling())
4545
{
46-
ldapGroupRequests.Add(Task.Run(() =>
46+
ldapGroupRequests.Add(Task.Run(async() =>
4747
{
4848
// Get all groups from internal Ldap
49-
List<GroupGetReturnParameters> currentGroups = currentLdap.GetAllInternalGroups();
49+
List<GroupGetReturnParameters> currentGroups = await currentLdap.GetAllInternalGroups();
5050
foreach (GroupGetReturnParameters currentGroup in currentGroups)
5151
allGroups.Add(currentGroup);
5252
}));
@@ -85,9 +85,9 @@ public async Task<string> Create([FromBody] GroupAddDeleteParameters parameters)
8585
// Try to add group to current Ldap
8686
if (currentLdap.IsInternal() && currentLdap.IsWritable() && currentLdap.HasGroupHandling())
8787
{
88-
workers.Add(Task.Run(() =>
88+
workers.Add(Task.Run(async() =>
8989
{
90-
string actDn = currentLdap.AddGroup(parameters.GroupName, parameters.OwnerGroup);
90+
string actDn = await currentLdap.AddGroup(parameters.GroupName, parameters.OwnerGroup);
9191
if(actDn != "")
9292
{
9393
groupDn = actDn;
@@ -124,9 +124,9 @@ public async Task<bool> Delete([FromBody] GroupAddDeleteParameters parameters)
124124
// Try to delete group in current Ldap
125125
if (currentLdap.IsInternal() && currentLdap.IsWritable() && currentLdap.HasGroupHandling())
126126
{
127-
workers.Add(Task.Run(() =>
127+
workers.Add(Task.Run(async() =>
128128
{
129-
if(currentLdap.DeleteGroup(parameters.GroupName))
129+
if(await currentLdap.DeleteGroup(parameters.GroupName))
130130
{
131131
groupDeleted = true;
132132
Log.WriteAudit("DeleteGroup", $"Group {parameters.GroupName} deleted from {currentLdap.Host()}");
@@ -162,9 +162,9 @@ public async Task<string> Edit([FromBody] GroupEditParameters parameters)
162162
// Try to update group in current Ldap
163163
if (currentLdap.IsInternal() && currentLdap.IsWritable() && currentLdap.HasGroupHandling())
164164
{
165-
workers.Add(Task.Run(() =>
165+
workers.Add(Task.Run(async() =>
166166
{
167-
string newDn = currentLdap.UpdateGroup(parameters.OldGroupName, parameters.NewGroupName);
167+
string newDn = await currentLdap.UpdateGroup(parameters.OldGroupName, parameters.NewGroupName);
168168
if (newDn != "")
169169
{
170170
groupUpdatedDn = newDn;
@@ -198,10 +198,10 @@ public async Task<List<string>> Get([FromBody] GroupGetParameters parameters)
198198
{
199199
if ((currentLdap.Id == parameters.LdapId || parameters.LdapId == 0) && currentLdap.HasGroupHandling())
200200
{
201-
await Task.Run(() =>
201+
await Task.Run(async() =>
202202
{
203203
// Get all groups from current Ldap
204-
allGroups = currentLdap.GetAllGroups(parameters.SearchPattern);
204+
allGroups = await currentLdap.GetAllGroups(parameters.SearchPattern);
205205
});
206206
}
207207
}
@@ -232,9 +232,9 @@ public async Task<bool> AddUser([FromBody] GroupAddDeleteUserParameters paramete
232232
// Try to add user to group in current Ldap
233233
if (currentLdap.IsInternal() && currentLdap.IsWritable() && currentLdap.HasGroupHandling())
234234
{
235-
workers.Add(Task.Run(() =>
235+
workers.Add(Task.Run(async() =>
236236
{
237-
if(currentLdap.AddUserToEntry(parameters.UserDn, parameters.GroupDn))
237+
if(await currentLdap.AddUserToEntry(parameters.UserDn, parameters.GroupDn))
238238
{
239239
userAdded = true;
240240
Log.WriteAudit("AddUserToGroup", $"user {parameters.UserDn} successfully added to group {parameters.GroupDn} in {currentLdap.Host()}");
@@ -270,9 +270,9 @@ public async Task<bool> RemoveUser([FromBody] GroupAddDeleteUserParameters param
270270
// Try to remove user from group in current Ldap
271271
if (currentLdap.IsInternal() && currentLdap.IsWritable() && currentLdap.HasGroupHandling())
272272
{
273-
workers.Add(Task.Run(() =>
273+
workers.Add(Task.Run(async() =>
274274
{
275-
if(currentLdap.RemoveUserFromEntry(parameters.UserDn, parameters.GroupDn))
275+
if(await currentLdap.RemoveUserFromEntry(parameters.UserDn, parameters.GroupDn))
276276
{
277277
userRemoved = true;
278278
Log.WriteAudit("RemoveUserFromGroup", $"Removed user {parameters.UserDn} from {parameters.GroupDn} in {currentLdap.Host()}");

roles/middleware/files/FWO.Middleware.Server/Controllers/RoleController.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@ public async Task<List<RoleGetReturnParameters>> Get()
4343
{
4444
if (currentLdap.HasRoleHandling())
4545
{
46-
ldapRoleRequests.Add(Task.Run(() =>
46+
ldapRoleRequests.Add(Task.Run(async() =>
4747
{
4848
// if current Ldap has roles stored: Get all roles from current Ldap
49-
List<RoleGetReturnParameters> currentRoles = currentLdap.GetAllRoles();
49+
List<RoleGetReturnParameters> currentRoles = await currentLdap.GetAllRoles();
5050
foreach (RoleGetReturnParameters role in currentRoles)
5151
allRoles.Add(role);
5252
}));
@@ -80,9 +80,9 @@ public async Task<bool> AddUser([FromBody] RoleAddDeleteUserParameters parameter
8080
// Try to add user to role in current Ldap
8181
if (currentLdap.IsWritable() && currentLdap.HasRoleHandling())
8282
{
83-
ldapRoleRequests.Add(Task.Run(() =>
83+
ldapRoleRequests.Add(Task.Run(async() =>
8484
{
85-
if (currentLdap.AddUserToEntry(parameters.UserDn, parameters.Role))
85+
if (await currentLdap.AddUserToEntry(parameters.UserDn, parameters.Role))
8686
{
8787
userAdded = true;
8888
Log.WriteAudit("AddUserToRole", $"user {parameters.UserDn} successfully added to role {parameters.Role} in {currentLdap.Host()}");
@@ -118,9 +118,9 @@ public async Task<bool> RemoveUser([FromBody] RoleAddDeleteUserParameters parame
118118
// Try to remove user from role in current Ldap
119119
if (currentLdap.IsWritable() && currentLdap.HasRoleHandling())
120120
{
121-
ldapRoleRequests.Add(Task.Run(() =>
121+
ldapRoleRequests.Add(Task.Run(async() =>
122122
{
123-
if (currentLdap.RemoveUserFromEntry(parameters.UserDn, parameters.Role))
123+
if (await currentLdap.RemoveUserFromEntry(parameters.UserDn, parameters.Role))
124124
{
125125
userRemoved = true;
126126
Log.WriteAudit("RemoveUserFromRole", $"Removed user {parameters.UserDn} from {parameters.Role} in {currentLdap.Host()}");

roles/middleware/files/FWO.Middleware.Server/Controllers/TenantController.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using FWO.Api.Client;
1+
using FWO.Api.Client;
22
using FWO.Api.Client.Queries;
33
using FWO.Basics;
44
using FWO.Data;
@@ -73,9 +73,9 @@ public async Task<int> Post([FromBody] TenantAddParameters tenant)
7373
// Try to add tenant in current Ldap
7474
if (currentLdap.IsInternal() && currentLdap.IsWritable())
7575
{
76-
await Task.Run(() =>
76+
await Task.Run(async() =>
7777
{
78-
if (currentLdap.AddTenant(tenantName))
78+
if (await currentLdap.AddTenant(tenantName))
7979
{
8080
tenantAdded = true;
8181
Log.WriteAudit("AddTenant", $"Tenant {tenantName} successfully added to {currentLdap.Host()}");
@@ -178,9 +178,9 @@ public async Task<bool> Delete([FromBody] TenantDeleteParameters tenant)
178178
// Try to delete tenant in current Ldap
179179
if (currentLdap.IsInternal() && currentLdap.IsWritable())
180180
{
181-
await Task.Run(() =>
181+
await Task.Run(async() =>
182182
{
183-
if(currentLdap.DeleteTenant(tenant.Name))
183+
if(await currentLdap.DeleteTenant(tenant.Name))
184184
{
185185
Log.WriteAudit("DeleteTenant", $"Tenant {tenant.Name} deleted from {currentLdap.Host()}");
186186
}

0 commit comments

Comments
 (0)