From 41eb3f398612a864f045d3e19c5df0ae397c8d80 Mon Sep 17 00:00:00 2001 From: Glenn Smith Date: Wed, 8 Dec 2021 18:31:44 -0500 Subject: [Enterprise] API for getting the current session token --- python/__init__.py | 7 ++++++- python/enterprise.py | 11 +++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) (limited to 'python') diff --git a/python/__init__.py b/python/__init__.py index 12cb7033..c1af70d4 100644 --- a/python/__init__.py +++ b/python/__init__.py @@ -129,7 +129,12 @@ def _init_plugins(): if not core_ui_enabled() and core.BNGetProduct() == "Binary Ninja Enterprise Client": # Enterprise client needs to checkout a license reservation or else BNInitPlugins will fail - if not enterprise.authenticate_with_method("Keychain") and (not core.BNIsLicenseValidated() or not enterprise.is_license_still_activated()): + if not enterprise.is_license_still_activated(): + try: + enterprise.authenticate_with_method("Keychain") + except RuntimeError: + pass + if not core.BNIsLicenseValidated() or not enterprise.is_license_still_activated(): raise RuntimeError( "To use Binary Ninja Enterprise from a headless python script, you must check out a license first.\n" "You can either check out a license for an extended time with the UI, or use the binaryninja.enterprise module.") diff --git a/python/enterprise.py b/python/enterprise.py index b94fd7ca..1d9743a1 100644 --- a/python/enterprise.py +++ b/python/enterprise.py @@ -99,6 +99,17 @@ def username() -> Optional[str]: return value +def token() -> Optional[str]: + """ + Get the token of the currently authenticated user to the Enterprise Server. + :return: Token, if authenticated. None, otherwise. + """ + value = core.BNGetEnterpriseServerToken() + if value == "": + return None + return value + + def server_name() -> Optional[str]: """ Get the display name of the currently connected server -- cgit v1.3.1