Package ghidra.framework.remote

# 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 Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `BIND_NAME`
  RMI registry binding name for the supported version of the remote GhidraServerHandle object.
  `static final String`
  `BIND_NAME_PREFIX`
  RMI registry binding name prefix for all versions of the remote GhidraServerHandle object.
  `static final int`
  `DEFAULT_PORT`
  Default RMI base port for Ghidra Server
  `static final int`
  `INTERFACE_VERSION`
  The server interface version that the server will use and is the maximum version that the client can operate with.
  `static final String`
  `MIN_GHIDRA_VERSION`
  Minimum version of Ghidra which utilized the current INTERFACE_VERSION
  `static final int`
  `MINIMUM_INTERFACE_VERSION`
  The minimum server interface version that the client can operate with.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `checkCompatibility(int serverInterfaceVersion)`
  Check server interface compatibility
  `Callback[]`
  `getAuthenticationCallbacks()`
  Returns user authentication proxy object.
  `RemoteRepositoryServerHandle`
  `getRepositoryServer(Subject user, Callback[] authCallbacks)`
  Get a handle to the repository server.

- ## Field Details

  - ### INTERFACE_VERSION

    static final int INTERFACE_VERSION
    The server interface version that the server will use and is the maximum version that the client can operate with.
    See Also:
      - Constant Field Values

  - ### MINIMUM_INTERFACE_VERSION

    static final int MINIMUM_INTERFACE_VERSION
    The minimum server interface version that the client can operate with.
    See Also:
      - Constant Field Values

  - ### MIN_GHIDRA_VERSION

    static final String MIN_GHIDRA_VERSION
    Minimum version of Ghidra which utilized the current INTERFACE_VERSION
    See Also:
      - Constant Field Values

  - ### DEFAULT_PORT

    static final int DEFAULT_PORT
    Default RMI base port for Ghidra Server
    See Also:
      - Constant Field Values

  - ### BIND_NAME_PREFIX

    static final String BIND_NAME_PREFIX
    RMI registry binding name prefix for all versions of the remote GhidraServerHandle object.
    See Also:
      - Constant Field Values

  - ### BIND_NAME

    static final String BIND_NAME
    RMI registry binding name for the supported version of the remote GhidraServerHandle object.
    See Also:
      - Constant Field Values

- ## 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`

  - ### getRepositoryServer

    RemoteRepositoryServerHandle getRepositoryServer(Subject user, Callback[] authCallbacks) throws LoginException, 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:
      `LoginException` - if user authentication fails
      `RemoteException`
    See Also:
      - `getAuthenticationCallbacks()`

  - ### checkCompatibility

    void checkCompatibility(int serverInterfaceVersion) throws RemoteException
    Check server interface compatibility
    Parameters:
      `serverInterfaceVersion` - client/server interface version
    Throws:
      `RemoteException`
    See Also:
      - `INTERFACE_VERSION`