使用LDAP InMemoryDirectoryServer使用Scala对User进行身份验证

时间:2015-12-17 22:06:41

标签: scala authentication playframework ldap

使用scala和playFramework,我实现了一个简单的Login-Logout Routine。现在我想用LDAP来验证用户名和密码是否正确。

我没有设置服务器,而是想使用在此处https://docs.ldap.com/ldap-sdk/docs/in-memory-directory-server.html描述的InMemoryDirectoryServer进行测试。

但是,我找不到有关如何使用它的正确文档。

我找到了这个博客,但似乎是相当即兴的。 http://krishnasblog.com/2013/03/29/incorporating-ldap-with-play-2-x-scala-application/

到目前为止,我有:

  def start(): InMemoryDirectoryServer = {

    val config = new InMemoryDirectoryServerConfig("dc=com");
    config.setListenerConfigs(new InMemoryListenerConfig("ldapListener", InetAddress.getLocalHost(), 0, null, null, null));
    config.setSchema(null);
    val server = new InMemoryDirectoryServer(config);
    server.startListening();

    server.add("dn: dc=com", "objectClass: top", "objectClass: domain", "dc: com");
server.add("dn: dc=test,dc=com", "objectClass: top", "objectClass: domain", "dc: test");
server.add("dn: dc=roles,dc=test,dc=com", "objectClass: top", "objectClass: domain", "dc: roles");
server.add("dn: cn=group,dc=roles,dc=test,dc=com", "objectClass: groupOfUniqueNames", "cn: group");

server.add("dn: cn=user1,dc=test,dc=com", "objectClass: person", "locale: nl_BE",
  "sn: NormalUser", "memberOf: cn=group,dc=roles,dc=test,dc=com", "userPassword: password");

server.add("dn: cn=user2,dc=test,dc=com", "objectClass: person", "locale: nl_BE",
  "sn: NormalUser", "memberOf: cn=group,dc=roles,dc=test,dc=com", "userPassword: password");


    server
  }

我的问题是: 基于这个初始配置,我将如何验证用户名和密码,以便使用真正的LDAP服务器。

它真的只是在进行测试并测试字符串吗?

val retPass = entry.getAttributeValue("userPassword")

1 个答案:

答案 0 :(得分:1)

我正在实施LDAP身份验证模块,而且我使用的public LDAP server一直非常适合测试目的。

尝试使用此LDAP的条目进行测试。