我们正在尝试使用JDBCRealm对neo4j数据库进行用户身份验证。
我们遵循了JDBCRealm文档中的所有步骤,我们认为不支持neo4j。

尝试验证用户身份时,它会发送非密码语言的查询。
例如,我们得到:

Caused by: java.lang.RuntimeException: Error executing cypher statement(s) [{code=Neo.ClientError.Statement.InvalidSyntax, message=Invalid input 'L': expected 't/T' (line 1, column 3 (offset: 2))"SELECT user_pass FROM users WHERE user_name = {1}" ^}]

填写HTTP BASIC身份验证表单并提交时发生错误。

细节:


我们将JDBCRealm添加到了tomcat server.xml
我们在web.xml文件的所有Web应用程序页面中添加了用户身份验证
我们使用BASIC身份验证


JDBCRealm甚至可能不支持neo4j吗?

谢谢。

最佳答案

您不能将JDBCRealm与Neo4j一起使用。原因是JDBCRealm根据您的配置(表名,列等)在幕后构建SQL语句。

Neo4j的JDBC驱动程序“仅仅是” Cypher的传输层,因此您无法发送SQL。

我可以考虑为tomcat创建一个CypherRealm,然后发出类似MATCH (u:User{name:{name}}) RETURN u的东西。

09-28 11:28