Module org.elasticsearch.security
Interface RemoteClusterTransportInterceptor
- All Known Implementing Classes:
CrossClusterAccessTransportInterceptor
public interface RemoteClusterTransportInterceptor
Allows to provide remote cluster interception that's capable of intercepting remote connections
both on the receiver and the sender side.
-
Method Summary
Modifier and TypeMethodDescriptiongetRemoteProfileTransportFilter(SslProfile sslProfile, DestructiveOperations destructiveOperations) Allows interceptors to provide a customServerTransportFilterimplementation for intercepting requests forRemoteClusterPortSettings.REMOTE_CLUSTER_PROFILEtransport profile.booleanhasRemoteClusterAccessHeadersInContext(SecurityContext securityContext) Returnstrueif any of the remote cluster access headers are in the security context.Allows to intercept all transport requests on the sender side.booleanisRemoteClusterConnection(Transport.Connection connection) This method returnstrueif the outboundconnectionis targeting a remote cluster.
-
Method Details
-
interceptSender
Allows to intercept all transport requests on the sender side. -
isRemoteClusterConnection
This method returnstrueif the outboundconnectionis targeting a remote cluster. -
getRemoteProfileTransportFilter
Optional<ServerTransportFilter> getRemoteProfileTransportFilter(SslProfile sslProfile, DestructiveOperations destructiveOperations) Allows interceptors to provide a customServerTransportFilterimplementation for intercepting requests forRemoteClusterPortSettings.REMOTE_CLUSTER_PROFILEtransport profile.The transport filter is called on the receiver side to filter incoming remote cluster requests and to execute authentication and authorization for all incoming requests.
This method is only called when setting
RemoteClusterPortSettings.REMOTE_CLUSTER_SERVER_ENABLEDis set totrue.- Returns:
- a custom
ServerTransportFilters for the given transport profile, or an empty optional to fall back to the default transport filter
-
hasRemoteClusterAccessHeadersInContext
Returnstrueif any of the remote cluster access headers are in the security context. This method is used to assert we don't have access headers already in the security context, before we even run remote cluster intercepts. Serves as an integrity check that we properly clear the security context between requests.
-