有没有办法让xdmp:ldap-search()函数使用appserver外部LDAP配置

时间:2017-10-23 13:30:26

标签: marklogic marklogic-9

对于我的应用程序,我使用应用程序级别身份验证,对于某些用户,我想从活动目录中获取一些信息。

我已经设置了一个http服务器,其中包含我为活动目录创建的“外部证券”配置。

我试图按如下方式使用该功能:

let $res := xdmp:ldap-search( "(mail=abc@def.com)",  <options xmlns="xdmp:ldap">
                        <use-appserver-config>true</use-appserver-config>
                    </options> )

不幸的是,虽然它应该没有返回任何内容,也不会提供任何错误消息。但是,如果我明确指定了如下所示的用户名,密码,ldap服务器等,那么它是有效的(对于大多数情况,如果响应不包含重音字符):

let $res := xdmp:ldap-search( "(mail=abc@def.com)"
                    ,  <options xmlns="xdmp:ldap">
                        <username>{ $config:ldap-connection-username }</username>
                        <password>{ $config:ldap-connection-password }</password>
                        <server-uri>{ $config:ldap-connection-server }</server-uri>
                        <search-base>{ $config:ldap-connection-search-base }</search-base>
                    </options>)

显然,选项true不能像我预期的那样工作。但是,它也被考虑在内,因为如果我将其设置为false,则返回错误。

我确信我在管理页面上为配置的ldap服务器设置的值与上面的工作示例中使用的值相同。

这是一个错误吗?或者,我错过了什么?

非常感谢, ķ。

1 个答案:

答案 0 :(得分:0)

这看起来特定于在app-server上下文中的QConsole中运行。指定<input id="pac-input" class="controls" type="text" placeholder="Enter a location"> <div id="map"></div> <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDztlrk_3CnzGHo7CFvLFqE_2bUKEq1JEU&libraries=places&callback=initMap" async defer></script>会导致没有调用AD服务器和空结果序列。直接在AppServer下运行会返回预期的结果,我将为此创建一个错误报告。