2929import org .elasticsearch .xpack .core .security .authz .RoleDescriptorsIntersection ;
3030import org .elasticsearch .xpack .core .security .user .InternalUsers ;
3131import org .elasticsearch .xpack .core .security .user .User ;
32+ import org .elasticsearch .xpack .security .audit .AuditTrail ;
3233import org .elasticsearch .xpack .security .transport .CrossClusterApiKeySignatureManager ;
3334import org .elasticsearch .xpack .security .transport .X509CertificateSignature ;
3435import org .junit .Before ;
@@ -242,7 +243,8 @@ public void testAuthenticationExceptionOnBadCrossClusterApiKeySignature() throws
242243 when (signer .sign (anyString (), anyString ())).thenReturn (new X509CertificateSignature (certs , "" , mock (BytesReference .class )));
243244 crossClusterAccessHeaders .writeToContext (threadContext , signer );
244245
245- final AuthenticationService .AuditableRequest auditableRequest = mock (AuthenticationService .AuditableRequest .class );
246+ var auditableRequest = mock (AuthenticationService .AuditableRequest .class );
247+ doAnswer (invocationOnMock -> invocationOnMock .getArguments ()[0 ]).when (auditableRequest ).exceptionProcessingRequest (any (), any ());
246248
247249 var authContext = new Authenticator .Context (
248250 threadContext ,
@@ -255,28 +257,20 @@ public void testAuthenticationExceptionOnBadCrossClusterApiKeySignature() throws
255257 when (authenticationService .newContext (anyString (), any (TransportRequest .class ), any (ApiKeyService .ApiKeyCredentials .class )))
256258 .thenReturn (authContext );
257259
258- @ SuppressWarnings ("unchecked" )
259- final ArgumentCaptor <ActionListener <Authentication >> listenerCaptor = ArgumentCaptor .forClass (ActionListener .class );
260- doAnswer (i -> null ).when (authenticationService ).authenticate (any (Authenticator .Context .class ), listenerCaptor .capture ());
261-
262260 final PlainActionFuture <Authentication > future = new PlainActionFuture <>();
263261 crossClusterAccessAuthenticationService .authenticate (action , request , future );
264262
265- final Authentication apiKeyAuthentication = AuthenticationTestHelper .builder ().apiKey ().build (false );
266- listenerCaptor .getValue ().onResponse (apiKeyAuthentication );
267-
268263 final ExecutionException actual = expectThrows (ExecutionException .class , future ::get );
269264
270265 assertThat (actual .getCause (), instanceOf (ElasticsearchSecurityException .class ));
271266 assertThat (
272- actual .getCause (). getMessage (),
267+ actual .getMessage (),
273268 containsString (
274269 (badCert
275270 ? "Failed to verify cross cluster api key signature certificate from ["
276271 : "Invalid cross cluster api key signature from [" ) + X509CertificateSignature .certificateToString (certs [0 ]) + "]"
277272 )
278273 );
279- verifyNoMoreInteractions (auditableRequest );
280274 }
281275
282276 public void testNoInteractionWithAuditableRequestOnInitialAuthenticationFailure () throws IOException {
0 commit comments