Head's Up! These forums are read-only. All users and content have migrated. Please join us at community.neo4j.com.
04-27-2020 07:41 AM
Hey,
I am writing a custom procedure which calls the procedure dbms.security.listUsers()
(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
04-27-2020 11:54 AM
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 https://github.com/neo4j-contrib/neo4j-apoc-procedures/blob/4.0/src/test/java/apoc/util/TestUtil.jav... for 4.0 and https://github.com/neo4j-contrib/neo4j-apoc-procedures/blob/3.5/src/test/java/apoc/util/TestUtil.jav... for 3.5
04-28-2020 12:42 PM
@stefan.armbruster thank you for the quick response.
I have all enterprise jars on my classpath and have registered the dbms.security
procedures
with:
TestUtils.registerProcedure(db, UserManagementProcedures.class);
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
securityContexthas type
class org.neo4j.kernel.enterprise.api.security.EnterpriseSecurityContext which is not a known injectable component.
04-29-2020 01:58 AM
Shouldn't you be using SecurityContext
instead of EnterpriseSecurityContext
in you code?
All the sessions of the conference are now available online