confluence的一次管理员密码

时间:2022-01-23 16:58:03

事情的背景是这样的,自建的confluence并集成了ldap验证,且关闭了原有的内部账号登录,见下:

confluence的一次管理员密码

   本来ldap上有三个confluence用户组:

confluence的一次管理员密码

 但是某天内部服务器挂了,好在cf的数据库和备份文件都在,恢复ldap server和confluence数据之后发现我的账号没有管理员权限了。仔细查看发现两个问题:

  1. ldap上缺少了cf-administrators组,原因未知,貌似在ldap server恢复时丢了
  2. confluence数据库中的cwd_group表中也缺少了相应的组信息,原因未知,因为这个库表和平时的开发数据在一起(不应该),可能是被误删,也可能是confluence恢复时丢的

 最后挨个看confluence的表,连蒙带猜:

cwd_user:用户表,系统内置用户和从ldap同步过来的用户都在这里

cwd_group:用户组表,系统内置用户组和从ldap同步过来的用户组都在这里

cwd_membership:用户和组的关联关系

SPACEPERMISSIONS:组权限配置,其中permtype字段似乎代表管理权限:

confluence的一次管理员密码

最后在ldap上创建了丢失的cf-administrators组、将相应人员加入组,确认了上述几个表的数据正确后,重启confluence(为了能同步一下ldap数据)就能登录了。

 

中间还尝试过反编译confluence.jar的源码,去掉了permission拦截器,但是失败了。