Я борюсь с Active Directory, пытаюсь заставить его изменить пароль. Я нашел массу полезной информации, но все равно получаю постоянную ошибку.
Некоторый код:
import com.unboundid.ldap.sdk._
import com.unboundid.util.ssl._
def main(args: Array[String]) : Unit = {
var sslUtil = new SSLUtil( new TrustAllTrustManager() )
var con = new LDAPConnection(sslUtil.createSSLSocketFactory())
con.connect("ldap.example.net", 636)
con.bind("ldapadmin", "adminpasswd")
val newPass = "Jfi8ZH8#k".getBytes("UTF-16LE");
val modRequest = new ModifyRequest("dn: cn=Tester Dude,ou=Lab,ou=Org,ou=Provider,DC=example,DC=net",
"changetype: modify",
"replace: unicodePwd",
"unicodePwd: " + '"' + newPass + '"')
println("\nGoing to try to set password to " + newPass + " with: " + modRequest.toString())
try {
con.modify(modRequest)
} catch {
case lde:LDAPException => println("failed LDAPException: " + lde.toString())
}
}
Итак, я получаю это как ошибку времени выполнения:
Пытаюсь установить пароль на [B @ 6dd1627e с помощью: ModifyRequest (dn = 'cn = Tester Dude, ou = Lab, ou = Org, ou = Provider, DC = example, DC = net ', mods = {REPLACE unicodePwd})
сбой LDAPException: LDAPException (resultCode = 53 (не желает выполнять), errorMessage =' 0000001F: SvcErr: DSID-031A11E5 , проблема 5003 (WILL_NOT_PERFORM), данные 0 ', DiagnosticMessage =' 0000001F: SvcErr: DSID-031A11E5, проблема 5003 (WILL_NOT_PERFORM), данные 0 ')
Я знаю, что причиной этой ошибки может быть:
Я пробовал как с дополнительными кавычками вокруг пароля, так и без них .
Самым полезным источником информации до сих пор был:
http://www.dirmgr.com/blog/2010/8/26/ldap-password-changes-in-active-directory.html
Но я исчерпал все предложения там (и во многих других местах).
Я также пробовал несколько других вещей, включая установку пароля для другого действительного пользователя, который был добавлен вручную. (Этот также был добавлен через SDK.)
Другие операции работают нормально. Я удалил ненужный код, но смог без проблем искать, печатать атрибуты, добавлять и удалять пользователя; но этот запрос на изменение не выполняется. Если я настрою ModifyRequest на изменение какого-либо другого атрибута, например связанного адреса электронной почты, это также будет работать нормально.