From fe3e4e9c212fda6f217310d8e6a6aec45adb15c2 Mon Sep 17 00:00:00 2001 From: Sandra Westerhoff <westerhoff@itc.rwth-aachen.de> Date: Thu, 9 Jun 2022 09:40:07 +0200 Subject: [PATCH] Update: extend parsing of pairwise id (coscine/issues#2115) --- src/STS/Controllers/ShibbolethController.cs | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/STS/Controllers/ShibbolethController.cs b/src/STS/Controllers/ShibbolethController.cs index 4431a73..4a6ce66 100644 --- a/src/STS/Controllers/ShibbolethController.cs +++ b/src/STS/Controllers/ShibbolethController.cs @@ -48,12 +48,22 @@ namespace Coscine.Api.STS.Controllers entity = info.Principal.FindFirstValue(ShibbolethAttributeMapping.PairwiseID); } - var identifier = entity[(entity.IndexOf(">") + 1)..]; - identifier = identifier.Substring(0, identifier.IndexOf("<")); - - var entityId = entity[(entity.IndexOf("NameQualifier=\"") + "NameQualifier=\"".Length)..]; - entityId = entityId.Substring(0, entityId.IndexOf("\"")); + var identifier = ""; + var entityId = ""; + if (entity.IndexOf(">") > -1) + { + identifier = entity[(entity.IndexOf(">") + 1)..]; + identifier = identifier.Substring(0, identifier.IndexOf("<")); + entityId = entity[(entity.IndexOf("NameQualifier=\"") + "NameQualifier=\"".Length)..]; + entityId = entityId.Substring(0, entityId.IndexOf("\"")); + } + else + { + identifier = entity; + entityId = info.AuthenticationProperties.Items["idp"]; + } + var mapping = externalIdModel.GetAllWhere((map) => map.ExternalId1 == identifier && map.ExternalAuthenticatorId == shibbolethAuthItem.Id -- GitLab