Skip to content

Commit 4792545

Browse files
Merge pull request #112 from Venafi/contacts-support-fix
Fix policy matching multiple contacts in TPP
2 parents 62a2cb1 + d4d9954 commit 4792545

1 file changed

Lines changed: 14 additions & 7 deletions

File tree

vcert/connection_tpp_abstract.py

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -591,15 +591,22 @@ def get_tpp_identity(self, username):
591591
}
592592
try:
593593
status, response = self._post(URLS.POLICY_BROWSE_IDENTITY, data=data)
594-
identities = response['Identities'][0]
595-
if len(identities) == 0:
596-
raise VenafiError(f"The username [{username}] was not found.")
597-
except VenafiError as err :
594+
except VenafiError as err:
598595
log.debug(f"Error while getting contact [{username}]: {err.args[0]}")
596+
if len(response['Identities']) == 0:
597+
raise VenafiError(f"The username [{username}] was not found.")
598+
identity = None
599599
if len(response['Identities']) > 1:
600-
raise VenafiError("Extraneous information returned in the identity response. "
601-
"Expected size: 1, found more than 1 \n")
602-
identity = build_identity_entry(identities)
600+
for identy_entry in response['Identities']:
601+
identy_user = build_identity_entry(identy_entry)
602+
if identy_user.name.casefold() == username:
603+
identity = identy_user
604+
break
605+
else:
606+
identities = response['Identities'][0]
607+
identity = build_identity_entry(identities)
608+
if not identity:
609+
raise VenafiError(f"The username [{username}] was not found.")
603610
return identity
604611

605612
def request_ssh_cert(self, request):

0 commit comments

Comments
 (0)