java - 如何通过 Spring Security 和 MarkLogic 的 Java 客户端 API 对用户进行身份验证?

标签 java spring spring-mvc spring-security marklogic

验证用户是否可以通过使用 Java 客户端 API (2.0.4) 登录对话框保护 Spring Web 应用程序的 MarkLogic 服务器(版本 7.0.4)进行身份验证的最佳实践是什么?

使用我当前的方法(参见 gist 中的源代码),我正在实现来自 Spring Security 的 AbstractUserDetailsAuthenticationProvider(使用 HTTP session 的“经典”方法),我在其中创建了一个 MarkLogic DatabaseClient 实例,之后执行简单查询(testQueryMarkLogicConnections 中的 L.46)以查看是否可以检索结果。根据此结果决定是否允许登录。

我想知道是否存在更优雅的解决方案,但在 MarkLogic 文档中找不到任何内容。

最佳答案

您可以利用这个机会检索您存储在数据库中的任何用户特定数据。

如果这不是我们想要的,也许根本就不需要验证用户凭证?你可以让它在第一个必要的查询上懒惰地发生。在任何情况下,您都应该准备好处理任何地方的数据库错误。

如果您确实需要非惰性验证并且不需要任何数据,则调用 suggest() 的成本可能比您希望的要高。如果是这样,您可能会考虑其他选择。调用 getErrorFormat应该还算便宜。打开事务然后将其回滚也应该很便宜,但它需要 rest-writerrest-admin 角色。如果没有别的工作,你可以写一个 extension实现了一个 noop XQuery,可能只是 ()

关于java - 如何通过 Spring Security 和 MarkLogic 的 Java 客户端 API 对用户进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28240979/

相关文章:

spring - 为什么 beans 会被拒绝以及未识别出 URL 路径意味着什么?

java - 如何否定@JsonView?

java - java中如何查询某个类的列表

java - Tomcat 服务器独立 Exe

java - 'apache-tomcat-8.0.33' 'jdk 1.8'重启Tomcat时GC分配失败

java - Spring JPA DATA 与 @Query 返回一个额外的字段

javascript - Chrome 中 ajax Restful ws 调用期间访问 CORS

java - 单击 fragment ListView 中的 TextView

java |将字符串保留为枚举

spring - 不扩展ResourceSupport的Spring-HATEOAS