I am writing a custom procedure which calls the procedure
db.execute("CALL dbms.security.listUsers()")) but when I try to write an integration test
for the procedure I get the following error:
There is no procedure with the name dbms.security.listUsers
registered for this database instance. Please ensure you've spelled the procedure name correctly and that the procedure is properly deployed.
How do I add the
dbms.security procedures to the Neo4j test harness, so that I can test my procedure?
Thank you in advance for the response
You need to have the enterprise jars on classpath and you need to explicitly register the procedures to be used for the test. Registration is different in 3.5 and 4.0, see neo4j-apoc-procedures/TestUtil.java at 4.0 · neo4j-contrib/neo4j-apoc-procedures · GitHub for 4.0 and neo4j-apoc-procedures/TestUtil.java at 3.5 · neo4j-contrib/neo4j-apoc-procedures · GitHub for 3.5
@stefan.armbruster thank you for the quick response.
I have all enterprise jars on my classpath and have registered the
from neo4j-apoc-procedures/TestUtil.java at 3.5 · neo4j-contrib/neo4j-apoc-procedures · GitHub.
But now I get the following exception and don't know how to continue
org.neo4j.kernel.api.exceptions.ComponentInjectionException: Unable to set up injection for procedure UserManagementProcedures
, the field securityContext
has typeclass org.neo4j.kernel.enterprise.api.security.EnterpriseSecurityContext
which is not a known injectable component.
Shouldn't you be using
SecurityContext instead of
EnterpriseSecurityContext in you code?