我们正在尝试使用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
的东西。