Skip to content

Commit 4cd7d92

Browse files
knutwalkerMats-SX
andcommitted
Another attempt at 5.23 compat for the signature change in login context
Co-Authored-By: Mats Rydberg <[email protected]>
1 parent fc4bf48 commit 4cd7d92

File tree

10 files changed

+228
-0
lines changed

10 files changed

+228
-0
lines changed

compatibility/5.17/neo4j-kernel-adapter/src/main/java/org/neo4j/gds/compat/_517/Neo4jProxyImpl.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
import org.neo4j.configuration.Config;
2323
import org.neo4j.exceptions.KernelException;
24+
import org.neo4j.gds.compat.CompatLoginContext;
2425
import org.neo4j.gds.compat.GlobalProcedureRegistry;
2526
import org.neo4j.gds.compat.Neo4jProxyApi;
2627
import org.neo4j.gds.compat.Write;
@@ -39,6 +40,9 @@
3940
import org.neo4j.internal.kernel.api.procs.ProcedureSignature;
4041
import org.neo4j.internal.kernel.api.procs.QualifiedName;
4142
import org.neo4j.internal.kernel.api.procs.UserFunctionSignature;
43+
import org.neo4j.internal.kernel.api.security.AbstractSecurityLog;
44+
import org.neo4j.internal.kernel.api.security.LoginContext;
45+
import org.neo4j.internal.kernel.api.security.SecurityContext;
4246
import org.neo4j.io.fs.FileSystemAbstraction;
4347
import org.neo4j.io.layout.DatabaseLayout;
4448
import org.neo4j.kernel.api.KernelTransaction;
@@ -280,4 +284,26 @@ public void relationshipProperties(
280284
) {
281285
read.relationshipProperties(relationshipReference, reference, selection, cursor);
282286
}
287+
288+
@Override
289+
public LoginContext loginContext(CompatLoginContext compatLoginContext) {
290+
final class LoginContextImpl extends LoginContext {
291+
private final SecurityContext securityContext;
292+
293+
private LoginContextImpl(CompatLoginContext compatLoginContext) {
294+
super(
295+
compatLoginContext.subject(),
296+
compatLoginContext.connectionInfo()
297+
);
298+
this.securityContext = compatLoginContext.securityContext();
299+
}
300+
301+
@Override
302+
public SecurityContext authorize(IdLookup idLookup, String s, AbstractSecurityLog abstractSecurityLog) {
303+
return this.securityContext;
304+
}
305+
}
306+
307+
return new LoginContextImpl(compatLoginContext);
308+
}
283309
}

compatibility/5.18/neo4j-kernel-adapter/src/main/java/org/neo4j/gds/compat/_518/Neo4jProxyImpl.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
import org.neo4j.configuration.Config;
2323
import org.neo4j.exceptions.KernelException;
24+
import org.neo4j.gds.compat.CompatLoginContext;
2425
import org.neo4j.gds.compat.GlobalProcedureRegistry;
2526
import org.neo4j.gds.compat.Neo4jProxyApi;
2627
import org.neo4j.gds.compat.Write;
@@ -39,6 +40,9 @@
3940
import org.neo4j.internal.kernel.api.procs.ProcedureSignature;
4041
import org.neo4j.internal.kernel.api.procs.QualifiedName;
4142
import org.neo4j.internal.kernel.api.procs.UserFunctionSignature;
43+
import org.neo4j.internal.kernel.api.security.AbstractSecurityLog;
44+
import org.neo4j.internal.kernel.api.security.LoginContext;
45+
import org.neo4j.internal.kernel.api.security.SecurityContext;
4246
import org.neo4j.io.fs.FileSystemAbstraction;
4347
import org.neo4j.io.layout.DatabaseLayout;
4448
import org.neo4j.kernel.api.KernelTransaction;
@@ -288,4 +292,26 @@ public void relationshipProperties(
288292
) {
289293
read.relationshipProperties(relationshipReference, reference, selection, cursor);
290294
}
295+
296+
@Override
297+
public LoginContext loginContext(CompatLoginContext compatLoginContext) {
298+
final class LoginContextImpl extends LoginContext {
299+
private final SecurityContext securityContext;
300+
301+
private LoginContextImpl(CompatLoginContext compatLoginContext) {
302+
super(
303+
compatLoginContext.subject(),
304+
compatLoginContext.connectionInfo()
305+
);
306+
this.securityContext = compatLoginContext.securityContext();
307+
}
308+
309+
@Override
310+
public SecurityContext authorize(IdLookup idLookup, String s, AbstractSecurityLog abstractSecurityLog) {
311+
return this.securityContext;
312+
}
313+
}
314+
315+
return new LoginContextImpl(compatLoginContext);
316+
}
291317
}

compatibility/5.19/neo4j-kernel-adapter/src/main/java/org/neo4j/gds/compat/_519/Neo4jProxyImpl.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
import org.neo4j.configuration.Config;
2323
import org.neo4j.exceptions.KernelException;
24+
import org.neo4j.gds.compat.CompatLoginContext;
2425
import org.neo4j.gds.compat.GlobalProcedureRegistry;
2526
import org.neo4j.gds.compat.Neo4jProxyApi;
2627
import org.neo4j.gds.compat.Write;
@@ -39,6 +40,9 @@
3940
import org.neo4j.internal.kernel.api.procs.ProcedureSignature;
4041
import org.neo4j.internal.kernel.api.procs.QualifiedName;
4142
import org.neo4j.internal.kernel.api.procs.UserFunctionSignature;
43+
import org.neo4j.internal.kernel.api.security.AbstractSecurityLog;
44+
import org.neo4j.internal.kernel.api.security.LoginContext;
45+
import org.neo4j.internal.kernel.api.security.SecurityContext;
4246
import org.neo4j.io.fs.FileSystemAbstraction;
4347
import org.neo4j.io.layout.DatabaseLayout;
4448
import org.neo4j.kernel.api.KernelTransaction;
@@ -288,4 +292,26 @@ public void relationshipProperties(
288292
) {
289293
read.relationshipProperties(relationshipReference, reference, selection, cursor);
290294
}
295+
296+
@Override
297+
public LoginContext loginContext(CompatLoginContext compatLoginContext) {
298+
final class LoginContextImpl extends LoginContext {
299+
private final SecurityContext securityContext;
300+
301+
private LoginContextImpl(CompatLoginContext compatLoginContext) {
302+
super(
303+
compatLoginContext.subject(),
304+
compatLoginContext.connectionInfo()
305+
);
306+
this.securityContext = compatLoginContext.securityContext();
307+
}
308+
309+
@Override
310+
public SecurityContext authorize(IdLookup idLookup, String s, AbstractSecurityLog abstractSecurityLog) {
311+
return this.securityContext;
312+
}
313+
}
314+
315+
return new LoginContextImpl(compatLoginContext);
316+
}
291317
}

compatibility/5.20/neo4j-kernel-adapter/src/main/java/org/neo4j/gds/compat/_520/Neo4jProxyImpl.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
import org.neo4j.configuration.Config;
2323
import org.neo4j.exceptions.KernelException;
24+
import org.neo4j.gds.compat.CompatLoginContext;
2425
import org.neo4j.gds.compat.GlobalProcedureRegistry;
2526
import org.neo4j.gds.compat.Neo4jProxyApi;
2627
import org.neo4j.gds.compat.Write;
@@ -39,6 +40,9 @@
3940
import org.neo4j.internal.kernel.api.procs.ProcedureSignature;
4041
import org.neo4j.internal.kernel.api.procs.QualifiedName;
4142
import org.neo4j.internal.kernel.api.procs.UserFunctionSignature;
43+
import org.neo4j.internal.kernel.api.security.AbstractSecurityLog;
44+
import org.neo4j.internal.kernel.api.security.LoginContext;
45+
import org.neo4j.internal.kernel.api.security.SecurityContext;
4246
import org.neo4j.io.fs.FileSystemAbstraction;
4347
import org.neo4j.io.layout.DatabaseLayout;
4448
import org.neo4j.kernel.api.KernelTransaction;
@@ -290,4 +294,26 @@ public void relationshipProperties(
290294
) {
291295
read.relationshipProperties(relationshipReference, reference, selection, cursor);
292296
}
297+
298+
@Override
299+
public LoginContext loginContext(CompatLoginContext compatLoginContext) {
300+
final class LoginContextImpl extends LoginContext {
301+
private final SecurityContext securityContext;
302+
303+
private LoginContextImpl(CompatLoginContext compatLoginContext) {
304+
super(
305+
compatLoginContext.subject(),
306+
compatLoginContext.connectionInfo()
307+
);
308+
this.securityContext = compatLoginContext.securityContext();
309+
}
310+
311+
@Override
312+
public SecurityContext authorize(IdLookup idLookup, String s, AbstractSecurityLog abstractSecurityLog) {
313+
return this.securityContext;
314+
}
315+
}
316+
317+
return new LoginContextImpl(compatLoginContext);
318+
}
293319
}

compatibility/5.21/neo4j-kernel-adapter/src/main/java/org/neo4j/gds/compat/_521/Neo4jProxyImpl.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
import org.neo4j.configuration.Config;
2323
import org.neo4j.exceptions.KernelException;
24+
import org.neo4j.gds.compat.CompatLoginContext;
2425
import org.neo4j.gds.compat.GlobalProcedureRegistry;
2526
import org.neo4j.gds.compat.Neo4jProxyApi;
2627
import org.neo4j.gds.compat.Write;
@@ -39,6 +40,9 @@
3940
import org.neo4j.internal.kernel.api.procs.ProcedureSignature;
4041
import org.neo4j.internal.kernel.api.procs.QualifiedName;
4142
import org.neo4j.internal.kernel.api.procs.UserFunctionSignature;
43+
import org.neo4j.internal.kernel.api.security.AbstractSecurityLog;
44+
import org.neo4j.internal.kernel.api.security.LoginContext;
45+
import org.neo4j.internal.kernel.api.security.SecurityContext;
4246
import org.neo4j.io.fs.FileSystemAbstraction;
4347
import org.neo4j.io.layout.DatabaseLayout;
4448
import org.neo4j.kernel.api.CypherScope;
@@ -293,4 +297,26 @@ public void relationshipProperties(
293297
) {
294298
read.relationshipProperties(relationshipReference, reference, selection, cursor);
295299
}
300+
301+
@Override
302+
public LoginContext loginContext(CompatLoginContext compatLoginContext) {
303+
final class LoginContextImpl extends LoginContext {
304+
private final SecurityContext securityContext;
305+
306+
private LoginContextImpl(CompatLoginContext compatLoginContext) {
307+
super(
308+
compatLoginContext.subject(),
309+
compatLoginContext.connectionInfo()
310+
);
311+
this.securityContext = compatLoginContext.securityContext();
312+
}
313+
314+
@Override
315+
public SecurityContext authorize(IdLookup idLookup, String s, AbstractSecurityLog abstractSecurityLog) {
316+
return this.securityContext;
317+
}
318+
}
319+
320+
return new LoginContextImpl(compatLoginContext);
321+
}
296322
}

compatibility/5.22/neo4j-kernel-adapter/src/main/java/org/neo4j/gds/compat/_522/Neo4jProxyImpl.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
import org.neo4j.configuration.Config;
2323
import org.neo4j.exceptions.KernelException;
24+
import org.neo4j.gds.compat.CompatLoginContext;
2425
import org.neo4j.gds.compat.GlobalProcedureRegistry;
2526
import org.neo4j.gds.compat.Neo4jProxyApi;
2627
import org.neo4j.gds.compat.Write;
@@ -39,6 +40,9 @@
3940
import org.neo4j.internal.kernel.api.procs.ProcedureSignature;
4041
import org.neo4j.internal.kernel.api.procs.QualifiedName;
4142
import org.neo4j.internal.kernel.api.procs.UserFunctionSignature;
43+
import org.neo4j.internal.kernel.api.security.AbstractSecurityLog;
44+
import org.neo4j.internal.kernel.api.security.LoginContext;
45+
import org.neo4j.internal.kernel.api.security.SecurityContext;
4246
import org.neo4j.io.fs.FileSystemAbstraction;
4347
import org.neo4j.io.layout.DatabaseLayout;
4448
import org.neo4j.kernel.api.CypherScope;
@@ -293,4 +297,26 @@ public void relationshipProperties(
293297
) {
294298
read.relationshipProperties(relationshipReference, startNodeReference, reference, selection, cursor);
295299
}
300+
301+
@Override
302+
public LoginContext loginContext(CompatLoginContext compatLoginContext) {
303+
final class LoginContextImpl extends LoginContext {
304+
private final SecurityContext securityContext;
305+
306+
private LoginContextImpl(CompatLoginContext compatLoginContext) {
307+
super(
308+
compatLoginContext.subject(),
309+
compatLoginContext.connectionInfo()
310+
);
311+
this.securityContext = compatLoginContext.securityContext();
312+
}
313+
314+
@Override
315+
public SecurityContext authorize(IdLookup idLookup, String s, AbstractSecurityLog abstractSecurityLog) {
316+
return this.securityContext;
317+
}
318+
}
319+
320+
return new LoginContextImpl(compatLoginContext);
321+
}
296322
}

compatibility/5.23/neo4j-kernel-adapter/src/main/java/org/neo4j/gds/compat/_523/Neo4jProxyImpl.java

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
import org.neo4j.configuration.Config;
2323
import org.neo4j.exceptions.KernelException;
24+
import org.neo4j.gds.compat.CompatLoginContext;
2425
import org.neo4j.gds.compat.GlobalProcedureRegistry;
2526
import org.neo4j.gds.compat.Neo4jProxyApi;
2627
import org.neo4j.gds.compat.Write;
@@ -39,11 +40,15 @@
3940
import org.neo4j.internal.kernel.api.procs.ProcedureSignature;
4041
import org.neo4j.internal.kernel.api.procs.QualifiedName;
4142
import org.neo4j.internal.kernel.api.procs.UserFunctionSignature;
43+
import org.neo4j.internal.kernel.api.security.AbstractSecurityLog;
44+
import org.neo4j.internal.kernel.api.security.LoginContext;
45+
import org.neo4j.internal.kernel.api.security.SecurityContext;
4246
import org.neo4j.io.fs.FileSystemAbstraction;
4347
import org.neo4j.io.layout.DatabaseLayout;
4448
import org.neo4j.kernel.api.CypherScope;
4549
import org.neo4j.kernel.api.KernelTransaction;
4650
import org.neo4j.kernel.api.procedure.GlobalProcedures;
51+
import org.neo4j.kernel.database.PrivilegeDatabaseReference;
4752
import org.neo4j.logging.internal.LogService;
4853
import org.neo4j.procedure.Mode;
4954
import org.neo4j.scheduler.JobScheduler;
@@ -293,4 +298,30 @@ public void relationshipProperties(
293298
) {
294299
read.relationshipProperties(relationshipReference, startNodeReference, reference, selection, cursor);
295300
}
301+
302+
@Override
303+
public LoginContext loginContext(CompatLoginContext compatLoginContext) {
304+
final class LoginContextImpl extends LoginContext {
305+
private final SecurityContext securityContext;
306+
307+
private LoginContextImpl(CompatLoginContext compatLoginContext) {
308+
super(
309+
compatLoginContext.subject(),
310+
compatLoginContext.connectionInfo()
311+
);
312+
this.securityContext = compatLoginContext.securityContext();
313+
}
314+
315+
@Override
316+
public SecurityContext authorize(
317+
IdLookup idLookup,
318+
PrivilegeDatabaseReference privilegeDatabaseReference,
319+
AbstractSecurityLog abstractSecurityLog
320+
) {
321+
return this.securityContext;
322+
}
323+
}
324+
325+
return new LoginContextImpl(compatLoginContext);
326+
}
296327
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/*
2+
* Copyright (c) "Neo4j"
3+
* Neo4j Sweden AB [http://neo4j.com]
4+
*
5+
* This file is part of Neo4j.
6+
*
7+
* Neo4j is free software: you can redistribute it and/or modify
8+
* it under the terms of the GNU General Public License as published by
9+
* the Free Software Foundation, either version 3 of the License, or
10+
* (at your option) any later version.
11+
*
12+
* This program is distributed in the hope that it will be useful,
13+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15+
* GNU General Public License for more details.
16+
*
17+
* You should have received a copy of the GNU General Public License
18+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
19+
*/
20+
package org.neo4j.gds.compat;
21+
22+
import org.neo4j.internal.kernel.api.connectioninfo.ClientConnectionInfo;
23+
import org.neo4j.internal.kernel.api.security.AuthSubject;
24+
import org.neo4j.internal.kernel.api.security.SecurityContext;
25+
26+
public interface CompatLoginContext {
27+
AuthSubject subject();
28+
29+
ClientConnectionInfo connectionInfo();
30+
31+
SecurityContext securityContext();
32+
}

compatibility/api/neo4j-kernel-adapter/src/main/java/org/neo4j/gds/compat/Neo4jProxyApi.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import org.neo4j.internal.kernel.api.procs.ProcedureSignature;
3737
import org.neo4j.internal.kernel.api.procs.QualifiedName;
3838
import org.neo4j.internal.kernel.api.procs.UserFunctionSignature;
39+
import org.neo4j.internal.kernel.api.security.LoginContext;
3940
import org.neo4j.io.fs.FileSystemAbstraction;
4041
import org.neo4j.io.layout.DatabaseLayout;
4142
import org.neo4j.kernel.api.KernelTransaction;
@@ -156,4 +157,7 @@ Estimates knownEstimates(
156157
long sizeOfRelationshipProperties,
157158
long numberOfNodeLabels
158159
);
160+
161+
@CompatSince(minor = 23)
162+
LoginContext loginContext(CompatLoginContext compatLoginContext);
159163
}

compatibility/common/neo4j-kernel-adapter/src/main/java/org/neo4j/gds/compat/Neo4jProxy.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
import org.neo4j.internal.kernel.api.security.AccessMode;
5858
import org.neo4j.internal.kernel.api.security.AuthSubject;
5959
import org.neo4j.internal.kernel.api.security.AuthenticationResult;
60+
import org.neo4j.internal.kernel.api.security.LoginContext;
6061
import org.neo4j.internal.kernel.api.security.SecurityContext;
6162
import org.neo4j.internal.recordstorage.RecordIdType;
6263
import org.neo4j.io.fs.FileSystemAbstraction;
@@ -485,6 +486,10 @@ public static String versionLongToString(long storeVersion) {
485486
return new String(result);
486487
}
487488

489+
public static LoginContext loginContext(CompatLoginContext compatLoginContext) {
490+
return IMPL.loginContext(compatLoginContext);
491+
}
492+
488493
public static TestLog testLog() {
489494
return new TestLogImpl();
490495
}

0 commit comments

Comments
 (0)