@@ -404,107 +404,6 @@ public <T extends TransportResponse> void sendRequest(
404
404
assertThat (securityContext .getThreadContext ().getHeader (CROSS_CLUSTER_ACCESS_CREDENTIALS_HEADER_KEY ), nullValue ());
405
405
}
406
406
407
- public void testSendWithCrossClusterAccessHeadersThrowsOnOldConnection () throws Exception {
408
- final Authentication authentication = AuthenticationTestHelper .builder ()
409
- .user (new User (randomAlphaOfLengthBetween (3 , 10 ), randomArray (0 , 4 , String []::new , () -> randomAlphaOfLengthBetween (1 , 20 ))))
410
- .realm ()
411
- .build ();
412
- authentication .writeToContext (threadContext );
413
- final String remoteClusterAlias = randomAlphaOfLengthBetween (5 , 10 );
414
- final String encodedApiKey = randomAlphaOfLengthBetween (10 , 42 );
415
- final String remoteClusterCredential = ApiKeyService .withApiKeyPrefix (encodedApiKey );
416
-
417
- final SecurityServerTransportInterceptor interceptor = new SecurityServerTransportInterceptor (
418
- settings ,
419
- threadPool ,
420
- mock (AuthenticationService .class ),
421
- mock (AuthorizationService .class ),
422
- mockSslService (),
423
- securityContext ,
424
- destructiveOperations ,
425
- new CrossClusterAccessTransportInterceptor (
426
- settings ,
427
- threadPool ,
428
- mock (AuthenticationService .class ),
429
- mock (AuthorizationService .class ),
430
- securityContext ,
431
- mock (CrossClusterAccessAuthenticationService .class ),
432
- crossClusterApiKeySignatureManager ,
433
- mockLicenseState ,
434
- ignored -> Optional .of (
435
- new RemoteConnectionManager .RemoteClusterAliasWithCredentials (
436
- remoteClusterAlias ,
437
- new SecureString (encodedApiKey .toCharArray ())
438
- )
439
- )
440
- )
441
- );
442
-
443
- final TransportInterceptor .AsyncSender sender = interceptor .interceptSender (new TransportInterceptor .AsyncSender () {
444
- @ Override
445
- public <T extends TransportResponse > void sendRequest (
446
- Transport .Connection connection ,
447
- String action ,
448
- TransportRequest request ,
449
- TransportRequestOptions options ,
450
- TransportResponseHandler <T > handler
451
- ) {
452
- fail ("sender should not be called" );
453
- }
454
- });
455
- final Transport .Connection connection = mock (Transport .Connection .class );
456
- final TransportVersion versionBeforeCrossClusterAccessRealm = TransportVersionUtils .getPreviousVersion (
457
- RemoteClusterPortSettings .TRANSPORT_VERSION_ADVANCED_REMOTE_CLUSTER_SECURITY
458
- );
459
- final TransportVersion version = TransportVersionUtils .randomVersionBetween (
460
- random (),
461
- TransportVersions .V_8_0_0 ,
462
- versionBeforeCrossClusterAccessRealm
463
- );
464
- when (connection .getTransportVersion ()).thenReturn (version );
465
- final AtomicBoolean calledHandleException = new AtomicBoolean (false );
466
- final AtomicReference <TransportException > actualException = new AtomicReference <>();
467
- sender .sendRequest (connection , "action" , mock (TransportRequest .class ), null , new TransportResponseHandler <>() {
468
- @ Override
469
- public Executor executor () {
470
- return TransportResponseHandler .TRANSPORT_WORKER ;
471
- }
472
-
473
- @ Override
474
- public void handleResponse (TransportResponse response ) {
475
- fail ("should not receive a response" );
476
- }
477
-
478
- @ Override
479
- public void handleException (TransportException exp ) {
480
- if (calledHandleException .compareAndSet (false , true ) == false ) {
481
- fail ("handle exception called more than once" );
482
- }
483
- actualException .set (exp );
484
- }
485
-
486
- @ Override
487
- public TransportResponse read (StreamInput in ) {
488
- fail ("should not receive a response" );
489
- return null ;
490
- }
491
- });
492
- assertThat (actualException .get (), instanceOf (SendRequestTransportException .class ));
493
- assertThat (actualException .get ().getCause (), instanceOf (IllegalArgumentException .class ));
494
- assertThat (
495
- actualException .get ().getCause ().getMessage (),
496
- equalTo (
497
- "Settings for remote cluster ["
498
- + remoteClusterAlias
499
- + "] indicate cross cluster access headers should be sent but target cluster version ["
500
- + connection .getTransportVersion ().toReleaseVersion ()
501
- + "] does not support receiving them"
502
- )
503
- );
504
- assertThat (securityContext .getThreadContext ().getHeader (CROSS_CLUSTER_ACCESS_SUBJECT_INFO_HEADER_KEY ), nullValue ());
505
- assertThat (securityContext .getThreadContext ().getHeader (CROSS_CLUSTER_ACCESS_CREDENTIALS_HEADER_KEY ), nullValue ());
506
- }
507
-
508
407
public void testSendRemoteRequestFailsIfUserHasNoRemoteIndicesPrivileges () throws Exception {
509
408
final Authentication authentication = AuthenticationTestHelper .builder ()
510
409
.user (new User (randomAlphaOfLengthBetween (3 , 10 ), randomRoles ()))
0 commit comments