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

时间:2015-01-30 17:05:21

标签: java spring spring-mvc spring-security marklogic

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

使用我当前的方法(参见gist中的源代码)我正在实现Spring Security的AbstractUserDetailsAuthenticationProvider("经典" HTTP会话方法),我在其中创建了MarkLogic DatabaseClient实例,之后执行简单查询(testQuery,在MarkLogicConnections中的L. 46),以查看是否可以检索到结果。从这个结果决定是否授予登录。

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

1 个答案:

答案 0 :(得分:2)

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

如果这不合适,可能根本不需要验证用户凭据吗?你可以在第一个必要的查询中懒散地发生这种情况。无论如何,你应该准备在任何地方处理数据库错误。

如果您确实需要非延迟验证且不想要任何数据,那么拨打suggest()的电话可能比您想要的更贵。如果是这样,您可以考虑其他选择。拨打getErrorFormat应该相当便宜。打开一个事务然后回滚它应该也很便宜,但它需要rest-writerrest-admin角色。如果没有其他工作可以,你可以写一个实现noop XQuery的extension,可能只是()