Interface GhidraServerHandle

All Superinterfaces:
Remote

public interface GhidraServerHandle extends Remote
GhidraServerHandle provides access to a remote server. This remote interface facilitates user login/authentication, providing a more useful handle to the associated repository server.
  • Field Details

    • SERVER_INTERFACE_VERSION NEW

      static final int SERVER_INTERFACE_VERSION
      The server interface version that the server implements. This corresponds to the maximum supported client interface version.
      See Also:
    • MIN_CLIENT_INTERFACE_VERSION NEW

      static final int MIN_CLIENT_INTERFACE_VERSION
      The minimum server interface version that the client can operate with.
      See Also:
    • SERVER_MIN_CLIENT_INTERFACE_VERSION NEW

      static final int SERVER_MIN_CLIENT_INTERFACE_VERSION
      The minimum interface version that the server will support for older client versions. When this version is less than MIN_CLIENT_INTERFACE_VERSION it allows the following:
      • Older ghidra client versions can continue using the current server version, while
      • Current ghidra clients version cannot use an older version server.
      When this version differs from MIN_CLIENT_INTERFACE_VERSION the server will bind two both BIND_NAME and "GhidraServer9.0".

      NOTE: It is important that the server authentication interface not be modified between this version and 13.

      See Also:
    • GHIDRA_BIND_VERSION NEW

      static final String GHIDRA_BIND_VERSION
      The server BIND version which the Ghidra client can communicate with. This corresponds to 13.
      See Also:
    • ALT_GHIDRA_BIND_VERSION NEW

      static final String ALT_GHIDRA_BIND_VERSION
      Minimum version of a Ghidra client release which can communicate with the current Ghidra Server. This corresponds to 11 and ALT_BIND_NAME.

      This version is used only by the server only in publishing an alternate BIND name and identifies the oldest Ghidra client version that may connect.

      See Also:
    • DEFAULT_PORT

      static final int DEFAULT_PORT
      Default RMI base port for Ghidra Server
      See Also:
    • BIND_NAME_PREFIX

      static final String BIND_NAME_PREFIX
      RMI registry binding name prefix for all versions of the remote GhidraServerHandle object.
      See Also:
    • BIND_NAME MODIFIED

      static final String BIND_NAME
      constant: "GhidraServer9.0" → "GhidraServer12.0.5"
      -static java.lang.String BIND_NAME
      +static java.lang.String BIND_NAME
      Primary RMI registry binding name for the remote GhidraServerHandle object. This BIND name is used by both the server and client.
      See Also:
    • ALT_BIND_NAME NEW

      static final String ALT_BIND_NAME
      Alternate RMI registry binding name for the remote GhidraServerHandle object. This alternate BIND name is used only by the server in support of older Ghidra clients and corresponds to SERVER_MIN_CLIENT_INTERFACE_VERSION.
      See Also:
  • Method Details

    • getAuthenticationCallbacks

      Callback[] getAuthenticationCallbacks() throws RemoteException
      Returns user authentication proxy object.
      Returns:
      authentication callbacks which must be satisfied or null if authentication not required.
      Throws:
      RemoteException - if failure occurs while generating authentication callbacks
    • getRepositoryServer MODIFIED

      RemoteRepositoryServerHandle getRepositoryServer(Subject user, Callback[] authCallbacks) throws FailedLoginException, RemoteException
      added throws FailedLoginException; removed throws LoginException
      -ghidra.framework.remote.RemoteRepositoryServerHandle getRepositoryServer(javax.security.auth.Subject user, javax.security.auth.callback.Callback[] authCallbacks) throws LoginException, RemoteException
      +ghidra.framework.remote.RemoteRepositoryServerHandle getRepositoryServer(javax.security.auth.Subject user, javax.security.auth.callback.Callback[] authCallbacks) throws FailedLoginException, RemoteException
      Get a handle to the repository server.
      Parameters:
      user - user subject containing GhidraPrincipal
      authCallbacks - valid authentication callback objects which have been satisfied, or null if server does not require authentication.
      Returns:
      repository server handle.
      Throws:
      FailedLoginException - if user authentication fails
      RemoteException - failed to create remote handle
      LoginException (removed)
      See Also:
    • checkCompatibility MODIFIED

      void checkCompatibility(int clientInterfaceVersion) throws RemoteException
      param 1 renamed: serverInterfaceVersion → clientInterfaceVersion
      -void checkCompatibility(int serverInterfaceVersion) throws RemoteException
      +void checkCompatibility(int clientInterfaceVersion) throws RemoteException
      Check server interface compatibility with the specified client interface version.
      Parameters:
      clientInterfaceVersion (was: serverInterfaceVersion) - client/server interface version
      Throws:
      RemoteException - if requested server interface version not available