Package ghidra.framework.remote
Interface GhidraServerHandle
- All Superinterfaces:
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
FieldsChangeModifier and TypeFieldDescriptionstatic final StringAlternate RMI registry binding name for the remote GhidraServerHandle object.static final StringMinimum version of a Ghidra client release which can communicate with the current Ghidra Server.static final StringPrimary RMI registry binding name for the remote GhidraServerHandle object.static final StringRMI registry binding name prefix for all versions of the remote GhidraServerHandle object.static final intDefault RMI base port for Ghidra Serverstatic final StringThe server BIND version which the Ghidra client can communicate with.static final intThe minimum server interface version that the client can operate with.static final intThe server interface version that the server implements.static final intThe minimum interface version that the server will support for older client versions. -
Method Summary
ChangeModifier and TypeMethodDescriptionvoidcheckCompatibility(int clientInterfaceVersion) Check server interface compatibility with the specified client interface version.Callback[]Returns user authentication proxy object.getRepositoryServer(Subject user, Callback[] authCallbacks) Get a handle to the repository server.
-
Field Details
-
SERVER_INTERFACE_VERSION
static final int SERVER_INTERFACE_VERSIONThe server interface version that the server implements. This corresponds to the maximum supported client interface version.- See Also:
-
MIN_CLIENT_INTERFACE_VERSION
static final int MIN_CLIENT_INTERFACE_VERSIONThe minimum server interface version that the client can operate with.- See Also:
-
SERVER_MIN_CLIENT_INTERFACE_VERSION
static final int SERVER_MIN_CLIENT_INTERFACE_VERSIONThe minimum interface version that the server will support for older client versions. When this version is less thanMIN_CLIENT_INTERFACE_VERSIONit 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.
MIN_CLIENT_INTERFACE_VERSIONthe server will bind two bothBIND_NAMEand "GhidraServer9.0".NOTE: It is important that the server authentication interface not be modified between this version and 13.
- See Also:
-
GHIDRA_BIND_VERSION
The server BIND version which the Ghidra client can communicate with. This corresponds to 13.- See Also:
-
ALT_GHIDRA_BIND_VERSION
Minimum version of a Ghidra client release which can communicate with the current Ghidra Server. This corresponds to 11 andALT_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_PORTDefault RMI base port for Ghidra Server- See Also:
-
BIND_NAME_PREFIX
RMI registry binding name prefix for all versions of the remote GhidraServerHandle object.- See Also:
-
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
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 toSERVER_MIN_CLIENT_INTERFACE_VERSION.- See Also:
-
-
Method Details
-
getAuthenticationCallbacks
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
RemoteRepositoryServerHandle getRepositoryServer(Subject user, Callback[] authCallbacks) throws FailedLoginException, RemoteException Get a handle to the repository server.- Parameters:
user- user subject containing GhidraPrincipalauthCallbacks- 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 failsRemoteException- failed to create remote handle- See Also:
-
checkCompatibility
Check server interface compatibility with the specified client interface version.- Parameters:
clientInterfaceVersion- client/server interface version- Throws:
RemoteException- if requested server interface version not available
-