def get_username_from_cert(cert_string): try: gid = GID(string=cert_string) # extract the URN in the subjectAltName urn_str = gid.get_urn() logger.debug("URN: %s" % urn_str) except: logger.warn("Failed to get certificate from string.") logger.warn(traceback.format_exc()) return cert_string try: urn = URN(urn=str(urn_str)) except ValueError: return cert_string # check if this user is one of ours home_urn = get_user_urn(urn.getName()) if home_urn == urn.urn_string(): username = urn.getName() else: username = urn_to_username(urn.urn_string()) logger.debug("Returning username %s" % username) return username