事情的背景是這樣的,自建的confluence並集成了ldap驗證,且關閉了原有的內部賬號登錄,見下:

本來ldap上有三個confluence用戶組:

但是某天內部服務器掛了,好在cf的數據庫和備份文件都在,恢復ldap server和confluence數據之后發現我的賬號沒有管理員權限了。仔細查看發現兩個問題:
- ldap上缺少了cf-administrators組,原因未知,貌似在ldap server恢復時丟了
- confluence數據庫中的cwd_group表中也缺少了相應的組信息,原因未知,因為這個庫表和平時的開發數據在一起(不應該),可能是被誤刪,也可能是confluence恢復時丟的
最后挨個看confluence的表,連蒙帶猜:
cwd_user:用戶表,系統內置用戶和從ldap同步過來的用戶都在這里
cwd_group:用戶組表,系統內置用戶組和從ldap同步過來的用戶組都在這里
cwd_membership:用戶和組的關聯關系
SPACEPERMISSIONS:組權限配置,其中permtype字段似乎代表管理權限:

最后在ldap上創建了丟失的cf-administrators組、將相應人員加入組,確認了上述幾個表的數據正確后,重啟confluence(為了能同步一下ldap數據)就能登錄了。
中間還嘗試過反編譯confluence.jar的源碼,去掉了permission攔截器,但是失敗了。
