LDAP サーバーに接続された CAS SSO で Confluence 4.2.5 (ビルド 3284) を使用しており、ユーザーがパスワードを変更したときに LDAP サーバーから synchroniseUserDirectories() を呼び出して、変更が瞬時に行われるようにしたいと考えています。
現在の動作方法では、Confluence が定期的な LDAP 同期を実行するのをユーザーが待たなければならないため、当惑する可能性があります。
XML-RPC インターフェースを使用して (管理者として) changeUserPassword() を呼び出してみましたが、うまくいきません。この操作により、「ユーザーのパスワード変更中にエラーが発生しました ...」という例外が発生します。これは、ユーザーが LDAP で定義されているためだと思いますが、例外メッセージが原因について明確ではなかったため、はっきりとはわかりません。
これが私が使用できるようにしたいサンプルコードです。うまくいきません。
#!/usr/bin/env python
import xmlrpclib
url = 'https://docs.example.com'
admin_user = 'frobisher'
admin_pass = 'supersecretstuff'
username = 'bigbob'
new_password = 'bigbobsbigsecret'
server = xmlrpclib.ServerProxy(url + '/rpc/xmlrpc')
token = server.confluence2.login(admin_user, admin_pass)
# CITATION: https://developer.atlassian.com/display/CONFDEV/Remote+Confluence+Methods
# this doesn't exist but would be my preferred approach.
# It raises a NoSuchMethodException exception.
server.confluence2.synchroniseUserDirectories(token)
# this throws a general exception, because of the LDAP? The message
# wasn't clear about the source of the problem.
#server.confluence2.changeUserPassword(token,
# username,
# password)
server.confluence2.logout(token)
SOAPまたはRESTを使用してこれを行う方法はありますか? REST はまだプロトタイプのように聞こえるので、心配していました。
これらのアプローチのいずれも機能しない場合、これが LDAP サーバーから Confluence サーバーへのプッシュ操作でなければならないことを考慮して、単純なプラグインで実行できますか? プラグインを書いた経験はありませんが、時々 Java の作業をしています。
どんなヒントでも大歓迎です。