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 Details

    • interceptSender

      Allows to intercept all transport requests on the sender side.
    • isRemoteClusterConnection

      boolean isRemoteClusterConnection(Transport.Connection connection)
      This method returns true if the outbound connection is targeting a remote cluster.
    • getProfileTransportFilters

      Map<String,ServerTransportFilter> getProfileTransportFilters(Map<String,SslProfile> profileConfigurations, DestructiveOperations destructiveOperations)
      Allows interceptors to provide a custom ServerTransportFilter implementations per transport profile. The transport filter is called on the receiver side to filter incoming requests and execute authentication and authorization for all requests.
      Returns:
      map of ServerTransportFilters per transport profile name
    • hasRemoteClusterAccessHeadersInContext

      boolean hasRemoteClusterAccessHeadersInContext(SecurityContext securityContext)
      Returns true if 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.