如何通过 Spring 安全和 MarkLogic 的 Java 客户端 API 验证用户?
How to authenticate a user via Spring Security and MarkLogic's Java Client API?
通过使用 Java 客户端 API (2.0.4) 登录对话框验证用户是否可以通过 MarkLogic 服务器(版本 7.0.4)进行身份验证的最佳做法是什么保护 Spring 网络应用程序?
使用我当前的方法(参见 gist 中的源代码)我正在实施 Spring 安全性的 AbstractUserDetailsAuthenticationProvider
("classical" 使用 HTTP 会话的方法)创建一个 MarkLogic DatabaseClient
实例,然后执行一个简单的查询(testQuery
,MarkLogicConnections
中的 L.46)以查看是否可以检索结果。以此结果决定是否允许登录。
我想知道是否存在更优雅的解决方案,但在 MarkLogic 文档中找不到任何内容。
您可以利用这个机会检索您存储在数据库中的任何用户特定数据。
如果这不是我们想要的,也许根本不需要验证用户凭据?你可以让它在第一个必要的查询上懒惰地发生。在任何情况下,您都应该准备好处理任何地方的数据库错误。
如果您确实需要非惰性验证并且不需要任何数据,那么调用 suggest()
的费用可能比您希望的要高。如果是这样,您可能会考虑其他选择。对实现 noop XQuery 的 getErrorFormat
ought to be fairly cheap. Opening a transaction and then rolling it back should be cheap too, but it requires the rest-writer
or rest-admin
role. If nothing else works you could write an extension 的调用,可能只是 ()
.
通过使用 Java 客户端 API (2.0.4) 登录对话框验证用户是否可以通过 MarkLogic 服务器(版本 7.0.4)进行身份验证的最佳做法是什么保护 Spring 网络应用程序?
使用我当前的方法(参见 gist 中的源代码)我正在实施 Spring 安全性的 AbstractUserDetailsAuthenticationProvider
("classical" 使用 HTTP 会话的方法)创建一个 MarkLogic DatabaseClient
实例,然后执行一个简单的查询(testQuery
,MarkLogicConnections
中的 L.46)以查看是否可以检索结果。以此结果决定是否允许登录。
我想知道是否存在更优雅的解决方案,但在 MarkLogic 文档中找不到任何内容。
您可以利用这个机会检索您存储在数据库中的任何用户特定数据。
如果这不是我们想要的,也许根本不需要验证用户凭据?你可以让它在第一个必要的查询上懒惰地发生。在任何情况下,您都应该准备好处理任何地方的数据库错误。
如果您确实需要非惰性验证并且不需要任何数据,那么调用 suggest()
的费用可能比您希望的要高。如果是这样,您可能会考虑其他选择。对实现 noop XQuery 的 getErrorFormat
ought to be fairly cheap. Opening a transaction and then rolling it back should be cheap too, but it requires the rest-writer
or rest-admin
role. If nothing else works you could write an extension 的调用,可能只是 ()
.