Como resolver a resposta do MS AD "WILL_NOT_PERFORM" ao tentar alterar a senha no scala com o SDK LDAP ilimitado?
Estou lutando com o Active Directory, tentando obtê-lo para me permitir alterar uma senha. Encontrei toneladas de informações úteis, mas ainda estou recebendo um erro persistente.
Alguns códigos:
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())
}
}
Então, eu recebo isso como um erro de tempo de execução:
Tentando definir a senha como [B @ 6dd1627e com: ModifyRequest (dn = 'cn = Cara do Testador, ou = Laboratório, ou = Org, ou = Provedor, DC = exemplo, DC = net', mods = {REPLACE unicodePwd })
failed LDAPException: LDAPException (resultCode = 53 (não está disposto a executar), errorMessage = '0000001F: SvcErr: DSID-031A11E5, problema 5003 (WILL_NOT_PERFORM), dados 0', diagnosticMessage = '0000001F: SvcErr: DSID-031A11E5 WILL_NOT_PERFORM), dados 0 ')
Então, entre as coisas que eu sei, podem causar este erro:
Não conectar via SSL. (Não é o caso aqui, e verifiquei ter 100% de certeza de que estou na porta 636 usando o netstat) Passar uma senha que viola a política de senha do Active Directory. (Testei a configuração manual da senha exata; ela rejeitará senhas curtas / simples, mas aceitará a que estou usando neste código)Eu tentei com e sem aspas extras ao redor da senh
A fonte de informação mais útil, portanto, foi:
http: //www.dirmgr.com/blog/2010/8/26/ldap-password-changes-in-active-directory.htm
Mas já esgotei todas as sugestões de lá (e muitos outros lugares
Eu também tentei várias outras coisas, incluindo definir a senha para um usuário válido diferente que foi adicionado manualmente. (Este também foi adicionado via sdk.)
Outras operações estão funcionando bem. Eu removi o código irrelevante, mas consegui pesquisar, imprimir atributos, adicionar e excluir um usuário sem problemas; mas esta solicitação de modificação falha. Se eu definir o ModifyRequest para alterar algum outro atributo, como o email associado, isso também funcionará be