验证用户是否可以通过使用 Java 客户端 API (2.0.4) 登录对话框保护 Spring Web 应用程序的 MarkLogic 服务器(版本 7.0.4)进行身份验证的最佳实践是什么?
使用我当前的方法(参见 gist 中的源代码),我正在实现来自 Spring Security 的 AbstractUserDetailsAuthenticationProvider
(使用 HTTP session 的“经典”方法),我在其中创建了一个 MarkLogic DatabaseClient
实例,之后执行简单查询(testQuery
,MarkLogicConnections
中的 L.46)以查看是否可以检索结果。根据此结果决定是否允许登录。
我想知道是否存在更优雅的解决方案,但在 MarkLogic 文档中找不到任何内容。
最佳答案
您可以利用这个机会检索您存储在数据库中的任何用户特定数据。
如果这不是我们想要的,也许根本就不需要验证用户凭证?你可以让它在第一个必要的查询上懒惰地发生。在任何情况下,您都应该准备好处理任何地方的数据库错误。
如果您确实需要非惰性验证并且不需要任何数据,则调用 suggest()
的成本可能比您希望的要高。如果是这样,您可能会考虑其他选择。调用 getErrorFormat
应该还算便宜。打开事务然后将其回滚也应该很便宜,但它需要 rest-writer
或 rest-admin
角色。如果没有别的工作,你可以写一个 extension实现了一个 noop XQuery,可能只是 ()
。
关于java - 如何通过 Spring Security 和 MarkLogic 的 Java 客户端 API 对用户进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28240979/