1

我很高兴听到任何其他人分享我的问题,也许有解决方案。

我正在使用 Apache Derby 数据库,它涉及为我的数据库用户使用 LDAP。

当我使用“ij”工具时,一切都应该是这样。如果用户的名称和密码都为 LDAP 所知,则用户只能使用数据库。

但是,当我在纯 Java 中使用相同的代码时,即使使用了错误的密码,也会接受用户。也就是说,使用 LDAP 检查名称,但似乎忽略了密码。

Java 程序编译并运行,因此 PATH 和 CLASSPATH 的设置似乎没有问题。

有任何想法吗?

谢谢,

罗恩·沃茨。

4

1 回答 1

1

可能是因为 defaultConnectionMode 对每个人都是 fullAccess。您可以在创建数据库并将其连接到第一次后以编程方式在数据库级别设置这些属性。首次连接到数据库后,您应该设置所有其他必需的属性 exDerby.database.defaultConnectionMode=noAccess Derby.connection.requireAuthentication=true Derby.database.userderby.authentication.provider=LDAP其他 ldap 属性。

这些属性将在重新启动数据库后生效。

请参阅https://stackoverflow.com/a/9518516/1282907中提供的链接

这是您正在寻找的 http://db.apache.org/derby/docs/10.6/devguide/rdevcsecureclientexample.html

于 2012-08-05T20:11:04.977 回答