我很高兴听到其他人分享我的问题,也许还有解决方案。
我正在使用Apache Derby数据库,它涉及到我的数据库用户使用LDAP。
当我使用'ij'工具时,一切都应该如此。如果LDAP知道其名称和密码,则用户只能使用该数据库。
但是,当我在纯Java中使用相同的代码时,即使使用了错误的密码,也会接受用户。也就是说,使用LDAP检查名称,但似乎忽略了密码。
Java程序编译运行,因此PATH和CLASSPATH的设置似乎没有问题。
有什么想法吗?
谢谢,
Ron Wates。
答案 0 :(得分:1)
可能是因为defaultConnectionMode对每个人都是fullAccess。在创建数据库并将其连接到第一次后,可以以编程方式在数据库级别设置这些属性。首次连接到数据库后您应该设置所有其他必需的属性ex Derby.database.defaultConnectionMode=noAccess
Derby.connection.requireAuthentication=true
Derby.database.user
,derby.authentication.provider=LDAP
和其他ldap属性。
这些属性将在重新启动数据库后生效。
请参阅此处提供的链接 https://stackoverflow.com/a/9518516/1282907
这是你要找的那个 http://db.apache.org/derby/docs/10.6/devguide/rdevcsecureclientexample.html