Skip to content

Commit 3741b80

Browse files
authored
Add Feature:Auth:Custom Testkit feature support (#1025) (#1051)
1 parent e5baa2b commit 3741b80

File tree

4 files changed

+29
-17
lines changed

4 files changed

+29
-17
lines changed

testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/AuthorizationToken.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,5 +31,16 @@
3131
public class AuthorizationToken
3232
{
3333
@JsonProperty( "data" )
34-
private Map<String,String> tokens;
34+
private Tokens tokens;
35+
36+
@Getter
37+
@Setter
38+
public static class Tokens
39+
{
40+
private String scheme;
41+
private String principal;
42+
private String credentials;
43+
private String realm;
44+
private Map<String,Object> parameters;
45+
}
3546
}

testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/GetFeatures.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@ public class GetFeatures implements TestkitRequest
4040
"ConfHint:connection.recv_timeout_seconds",
4141
"Temporary:DriverFetchSize",
4242
"Temporary:DriverMaxTxRetryTime",
43-
"Feature:Auth:Kerberos"
43+
"Feature:Auth:Kerberos",
44+
"Feature:Auth:Custom"
4445
) );
4546

4647
private static final Set<String> SYNC_FEATURES = new HashSet<>( Arrays.asList(

testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/NewDriver.java

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import lombok.Setter;
2424
import neo4j.org.testkit.backend.TestkitState;
2525
import neo4j.org.testkit.backend.holder.DriverHolder;
26-
import neo4j.org.testkit.backend.messages.responses.BackendError;
2726
import neo4j.org.testkit.backend.messages.responses.DomainNameResolutionRequired;
2827
import neo4j.org.testkit.backend.messages.responses.Driver;
2928
import neo4j.org.testkit.backend.messages.responses.DriverError;
@@ -68,24 +67,25 @@ public TestkitResponse process( TestkitState testkitState )
6867
String id = testkitState.newId();
6968

7069
AuthToken authToken;
71-
switch ( data.getAuthorizationToken().getTokens().get( "scheme" ) )
70+
switch ( data.getAuthorizationToken().getTokens().getScheme() )
7271
{
7372
case "basic":
74-
authToken = AuthTokens.basic( data.authorizationToken.getTokens().get( "principal" ),
75-
data.authorizationToken.getTokens().get( "credentials" ),
76-
data.authorizationToken.getTokens().get( "realm" ) );
73+
authToken = AuthTokens.basic( data.authorizationToken.getTokens().getPrincipal(),
74+
data.authorizationToken.getTokens().getCredentials(),
75+
data.authorizationToken.getTokens().getRealm() );
7776
break;
7877
case "kerberos":
79-
authToken = AuthTokens.kerberos( data.authorizationToken.getTokens().get( "credentials" ) );
78+
authToken = AuthTokens.kerberos( data.authorizationToken.getTokens().getCredentials() );
8079
break;
8180
default:
82-
return BackendError.builder()
83-
.data( BackendError
84-
.BackendErrorBody.builder()
85-
.msg( "Auth scheme " + data.authorizationToken.getTokens().get( "scheme" ) +
86-
" not implemented" )
87-
.build() )
88-
.build();
81+
authToken = AuthTokens.custom(
82+
data.authorizationToken.getTokens().getPrincipal(),
83+
data.authorizationToken.getTokens().getCredentials(),
84+
data.authorizationToken.getTokens().getRealm(),
85+
data.authorizationToken.getTokens().getScheme(),
86+
data.authorizationToken.getTokens().getParameters()
87+
);
88+
break;
8989
}
9090

9191
Config.ConfigBuilder configBuilder = Config.builder();

testkit-backend/src/test/java/neo4j/org/testkit/backend/MessageDeserializerTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ void testDeserializeNewDriver() throws JsonProcessingException
4848

4949
NewDriver newDriver = (NewDriver) message;
5050
assertThat( newDriver.getData().getUri(), equalTo( "bolt://localhost:7687" ) );
51-
assertThat( newDriver.getData().getAuthorizationToken().getTokens().get( "scheme" ), equalTo( "basic" ) );
52-
assertThat( newDriver.getData().getAuthorizationToken().getTokens().get( "principal" ), equalTo( "neo4j" ) );
51+
assertThat( newDriver.getData().getAuthorizationToken().getTokens().getScheme(), equalTo( "basic" ) );
52+
assertThat( newDriver.getData().getAuthorizationToken().getTokens().getPrincipal(), equalTo( "neo4j" ) );
5353
}
5454

5555
@Test

0 commit comments

Comments
 (0)