这里是我的Perl CGI脚本的一部分(这是工作..):配置Grails的Spring Security的LDAP插件
use Net::LDAP;
use Net::LDAP::Entry;
...
$edn = "DC=xyz,DC=com";
$quser ="(&(objectClass=user)(cn=$username))";
$ad = Net::LDAP->new("ip_address...");
$ldap_msg=$ad->bind("$username\@xyz.com", password=>$password);
my $result = $ad->search( base=>$edn,
scope=>"sub",
filter=>$quser);
my $entry;
my $myname;
my $emailad;
my @entries = $result->entries;
foreach $entry (@entries) {
$myname = $entry->get_value("givenName");
$emailad = $entry->get_value("mail");
}
所以基本上不存在用于管理员/管理员帐户AD,用户凭证用于绑定。我需要在grails中实现同样的事情。 +有没有一种方法来配置插件来搜索几个AD,我知道我可以在context.server中添加更多的ldap IP,但是对于每个服务器我需要一个不同的搜索基础..
++我不想用我的DB,只是AD。通过LDAP用户登录>我收到他的电子邮件,并使用电子邮件的其他LDAP查询但这可能会是另外一个话题:)
反正到目前为止的代码是:
grails.plugin.springsecurity.ldap.context.managerDn = ''
grails.plugin.springsecurity.ldap.context.managerPassword = ''
grails.plugin.springsecurity.ldap.context.server = 'ldap://address:389'
grails.plugin.springsecurity.ldap.authorities.ignorePartialResultException = true
grails.plugin.springsecurity.ldap.search.base = 'DC=xyz,DC=com'
grails.plugin.springsecurity.ldap.authenticator.useBind=true
grails.plugin.springsecurity.ldap.authorities.retrieveDatabaseRoles = false
grails.plugin.springsecurity.ldap.search.filter="sAMAccountName={0}"
grails.plugin.springsecurity.ldap.search.searchSubtree = true
grails.plugin.springsecurity.ldap.auth.hideUserNotFoundExceptions = false
grails.plugin.springsecurity.ldap.search.attributesToReturn =
['mail', 'givenName']
grails.plugin.springsecurity.providerNames=
['ldapAuthProvider',anonymousAuthenticationProvider']
grails.plugin.springsecurity.ldap.useRememberMe = false
grails.plugin.springsecurity.ldap.authorities.retrieveGroupRoles = false
grails.plugin.springsecurity.ldap.authorities.groupSearchBase ='DC=xyz,DC=com'
grails.plugin.springsecurity.ldap.authorities.groupSearchFilter = 'member={0}'
和错误代码:[LDAP:错误代码1 - 000004DC:LdapErr:DSID-0C0906E8,注释:为了执行此操作,必须在连接上成功完成绑定。数据0,v1db1
而且它与任何用户/通行证我尝试:/ Heeeeelp! :)
存在丢失的引号和左括号您providerNames名单上。不知道这是否会起作用。 – grantmcconnaughey
对不起,复制时出错,行是:grails.plugin.springsecurity.providerNames = ['ldapAuthProvider','anonymousAuthenticationProvider'] – user1611228