@InterfaceAudience.Private abstract class ServerRpcConnection extends Object implements Closeable
Modifier and Type | Class and Description |
---|---|
private static class |
ServerRpcConnection.ByteBuffByteInput |
Modifier and Type | Field and Description |
---|---|
protected InetAddress |
addr |
protected boolean |
authenticatedWithFallback |
protected RpcServer.CallCleanup |
callCleanup |
protected Codec |
codec
Codec the client asked use.
|
protected org.apache.hadoop.io.compress.CompressionCodec |
compressionCodec
Compression codec the client asked us use.
|
protected Map<String,byte[]> |
connectionAttributes |
protected org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.ConnectionHeader |
connectionHeader |
protected boolean |
connectionHeaderRead |
private static io.opentelemetry.context.propagation.TextMapGetter<org.apache.hadoop.hbase.shaded.protobuf.generated.TracingProtos.RPCTInfo> |
getter |
protected String |
hostAddress |
protected SaslServerAuthenticationProvider |
provider |
protected int |
remotePort |
protected boolean |
retryImmediatelySupported |
protected RpcServer |
rpcServer |
protected SaslServerAuthenticationProviders |
saslProviders |
protected HBaseSaslRpcServer |
saslServer |
protected org.apache.hbase.thirdparty.com.google.protobuf.BlockingService |
service |
protected boolean |
skipInitialSaslHandshake |
protected org.apache.hadoop.security.UserGroupInformation |
ugi |
protected User |
user |
protected boolean |
useSasl |
Constructor and Description |
---|
ServerRpcConnection(RpcServer rpcServer) |
Modifier and Type | Method and Description |
---|---|
private boolean |
authorizeConnection() |
protected void |
callCleanupIfNeeded() |
abstract ServerCall<?> |
createCall(int id,
org.apache.hbase.thirdparty.com.google.protobuf.BlockingService service,
org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor md,
org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.RequestHeader header,
org.apache.hbase.thirdparty.com.google.protobuf.Message param,
CellScanner cellScanner,
long size,
InetAddress remoteAddress,
int timeout,
RpcServer.CallCleanup reqCleanup) |
private org.apache.hbase.thirdparty.com.google.protobuf.CodedInputStream |
createCis(ByteBuff buf) |
private org.apache.hadoop.security.UserGroupInformation |
createUser(org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.ConnectionHeader head) |
protected void |
disposeSasl() |
private void |
doBadPreambleHandling(String msg) |
private void |
doBadPreambleHandling(String msg,
Exception e) |
protected void |
doRawSaslReply(SaslStatus status,
org.apache.hadoop.io.Writable rv,
String errorClass,
String error)
No protobuf encoding of raw sasl messages
|
protected abstract void |
doRespond(RpcResponse resp) |
(package private) void |
finishSaslNegotiation() |
private org.apache.hbase.thirdparty.com.google.protobuf.ByteString |
getByteString(byte[] bytes) |
protected RpcResponse |
getErrorResponse(String msg,
Exception e) |
private String |
getFatalConnectionString(int version,
byte authByte) |
String |
getHostAddress() |
InetAddress |
getHostInetAddress() |
(package private) HBaseSaslRpcServer |
getOrCreateSaslServer() |
int |
getRemotePort() |
org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.VersionInfo |
getVersionInfo() |
abstract boolean |
isConnectionOpen() |
(package private) boolean |
isSimpleAuthentication() |
private void |
processConnectionHeader(ByteBuff buf) |
void |
processOneRpc(ByteBuff buf) |
protected boolean |
processPreamble(ByteBuffer preambleBuffer) |
protected void |
processRequest(ByteBuff buf)
Has the request header and the request param and optionally encoded data buffer all in this one
array.
|
private void |
sendConnectionHeaderResponseIfNeeded()
Send the response for connection header
|
private void |
sendErrorResponseForCall(int id,
long totalRequestSize,
io.opentelemetry.api.trace.Span span,
String msg,
Throwable responseThrowable) |
private void |
setupCellBlockCodecs()
Set up cell block codecs
|
private Pair<org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.ConnectionHeaderResponse,CryptoAES> |
setupCryptoCipher()
Set up cipher for rpc encryption with Apache Commons Crypto.
|
String |
toString() |
private static final io.opentelemetry.context.propagation.TextMapGetter<org.apache.hadoop.hbase.shaded.protobuf.generated.TracingProtos.RPCTInfo> getter
protected boolean connectionHeaderRead
protected RpcServer.CallCleanup callCleanup
protected String hostAddress
protected int remotePort
protected InetAddress addr
protected org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.ConnectionHeader connectionHeader
protected Map<String,byte[]> connectionAttributes
protected org.apache.hadoop.io.compress.CompressionCodec compressionCodec
protected org.apache.hbase.thirdparty.com.google.protobuf.BlockingService service
protected SaslServerAuthenticationProvider provider
protected boolean skipInitialSaslHandshake
protected boolean useSasl
protected HBaseSaslRpcServer saslServer
protected boolean authenticatedWithFallback
protected boolean retryImmediatelySupported
protected org.apache.hadoop.security.UserGroupInformation ugi
protected SaslServerAuthenticationProviders saslProviders
public ServerRpcConnection(RpcServer rpcServer)
public String getHostAddress()
public InetAddress getHostInetAddress()
public int getRemotePort()
public org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.VersionInfo getVersionInfo()
private String getFatalConnectionString(int version, byte authByte)
private void setupCellBlockCodecs() throws FatalConnectionException
FatalConnectionException
private Pair<org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.ConnectionHeaderResponse,CryptoAES> setupCryptoCipher() throws FatalConnectionException
FatalConnectionException
private org.apache.hbase.thirdparty.com.google.protobuf.ByteString getByteString(byte[] bytes)
private org.apache.hadoop.security.UserGroupInformation createUser(org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.ConnectionHeader head)
protected final void disposeSasl()
protected final void doRawSaslReply(SaslStatus status, org.apache.hadoop.io.Writable rv, String errorClass, String error) throws IOException
IOException
HBaseSaslRpcServer getOrCreateSaslServer() throws IOException
IOException
void finishSaslNegotiation() throws IOException
IOException
public void processOneRpc(ByteBuff buf) throws IOException, InterruptedException
IOException
InterruptedException
private boolean authorizeConnection() throws IOException
IOException
private org.apache.hbase.thirdparty.com.google.protobuf.CodedInputStream createCis(ByteBuff buf)
private void processConnectionHeader(ByteBuff buf) throws IOException
IOException
private void sendConnectionHeaderResponseIfNeeded() throws FatalConnectionException
FatalConnectionException
protected abstract void doRespond(RpcResponse resp) throws IOException
IOException
protected void processRequest(ByteBuff buf) throws IOException, InterruptedException
IOException
InterruptedException
private void sendErrorResponseForCall(int id, long totalRequestSize, io.opentelemetry.api.trace.Span span, String msg, Throwable responseThrowable) throws IOException
IOException
protected final RpcResponse getErrorResponse(String msg, Exception e) throws IOException
IOException
private void doBadPreambleHandling(String msg) throws IOException
IOException
private void doBadPreambleHandling(String msg, Exception e) throws IOException
IOException
protected final void callCleanupIfNeeded()
protected final boolean processPreamble(ByteBuffer preambleBuffer) throws IOException
IOException
boolean isSimpleAuthentication()
public abstract boolean isConnectionOpen()
public abstract ServerCall<?> createCall(int id, org.apache.hbase.thirdparty.com.google.protobuf.BlockingService service, org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor md, org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.RequestHeader header, org.apache.hbase.thirdparty.com.google.protobuf.Message param, CellScanner cellScanner, long size, InetAddress remoteAddress, int timeout, RpcServer.CallCleanup reqCleanup)
Copyright © 2007–2020 The Apache Software Foundation. All rights reserved.