From 58f2fc06fb94ad78141d8b1e5e0155d1ef47475d Mon Sep 17 00:00:00 2001 From: Robsdedude Date: Fri, 1 Oct 2021 20:56:14 +0200 Subject: [PATCH] Add kerberos auth to TestKit backend (#997) * Add kerberos auth to TestKit backend * Turns out kerberos expects ticket instead of credentials * Add Feature:Auth:Kerberos Testkit feature support Co-authored-by: Dmitriy Tverdiakov --- .../org/testkit/backend/messages/requests/GetFeatures.java | 3 ++- .../org/testkit/backend/messages/requests/NewDriver.java | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/GetFeatures.java b/testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/GetFeatures.java index 7bf2c7304c..f4b379606a 100644 --- a/testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/GetFeatures.java +++ b/testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/GetFeatures.java @@ -39,7 +39,8 @@ public class GetFeatures implements TestkitRequest "AuthorizationExpiredTreatment", "ConfHint:connection.recv_timeout_seconds", "Temporary:DriverFetchSize", - "Temporary:DriverMaxTxRetryTime" + "Temporary:DriverMaxTxRetryTime", + "Feature:Auth:Kerberos" ) ); private static final Set SYNC_FEATURES = new HashSet<>( Arrays.asList( diff --git a/testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/NewDriver.java b/testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/NewDriver.java index c516e75b68..1e01005380 100644 --- a/testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/NewDriver.java +++ b/testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/NewDriver.java @@ -75,12 +75,15 @@ public TestkitResponse process( TestkitState testkitState ) data.authorizationToken.getTokens().get( "credentials" ), data.authorizationToken.getTokens().get( "realm" ) ); break; + case "kerberos": + authToken = AuthTokens.kerberos( data.authorizationToken.getTokens().get( "credentials" ) ); + break; default: return BackendError.builder() .data( BackendError .BackendErrorBody.builder() .msg( "Auth scheme " + data.authorizationToken.getTokens().get( "scheme" ) + - "not implemented" ) + " not implemented" ) .build() ) .build(); }