关于Gitlab用户登录提示无限重定向循环ERR_TOO_MANY_REDIRECTS

#工作笔记#

查阅了网上所有相关的记录,都没有解决gitlab登录/users/sign_up/welcome提示ERR_TOO_MANY_REDIRECTS,好在最终解决了,记录在此。

先说下起因:

github哼哼不想用了,原因太多,所以内部讨论用gitlab。

配置环境:

  1. centos8.3.2011的虚机,6G内存(4G内存后期运行会经常报500异常,查阅官方文档建议除了系统资源,给gitlab要留够4G,所以配置了6G内存)

  2. gitlab安装gitlab-ce-16.2.3版本

问题说明:

gitlab安装后,root用户OK正常登录,新建普通用户后,用普通用户登录就提示如题的错误。

#尝试的办法:

  1. root 登录修改普通用户的密码,再次登录失败

  2. root 登录对普通用户进项模拟操作时,提示[gitlab您无法模拟密码过期的用户]...

  3. root 登录配置90冻结用户参数为99999,依然失败

  4. root 登录修改普通用户为管理员用户,登录失败。

  5. gitlab16.2版本没有找到gitlab系统用户密码有效期90天的参数以及官网设置用户密码过期策略的地方

#成功的办法:

问题是在root新建用户,用户登录时需要修改密码,导致页面在welcome和修改密码页来回跳转导致无法登录,最终提示ERR_TOO_MANY_REDIRECTS.

可以模拟用户来修改密码,这样用户在登录时无需修改密码就可以直接登录,从而解决;

但模拟登录时提示[gitlab您无法模拟密码过期的用户],于是找到新建用户并且设置密码没有过期做为解决思路:

  1. 虽然在安装gitlab-ce-16.2.3时并没有注意到安装postgresql,查看gitlab.rb配置内容也没有启用GitLab database settings相关的配置参数,但是发现实际上pg是安装并且正常使用的。

  2. 然后思路是登录pg,查找用户cuser发现过期时间是当前时间,于是修改过期密码时间为下个月

bash 复制代码
# 查看 postgreSQL 的相关文件
[c@localhost ~]$ sudo ls /var/opt/gitlab/postgresql/data/ -l

# 访问本地 postgreSQL 
[wjcl@localhost ~]$ sudo gitlab-psql -d gitlabhq_production

# 查看 gitlab 的用户信息
gitlabhq_production=# select id,name from users;
 id |        name
----+--------------------
  1 | Admin
  2 | cuser
  3 | GitLab Alert Bot
  4 | GitLab Support Bot
  5 | Ghost User
(5 rows)

# 修改cuser用户的过期时间
gitlabhq_production=# UPDATE users SET password_expires_at = '2024-02-26 09:17:58' WHERE name = 'cuser';
UPDATE 1
  1. 再次刷新页面清空cookie,用root账号登录gitlab后,再次选择cuser用户进行模拟并修改密码

  2. 退出root,最终用cuser正常登录

其实解决挺简单,毕竟这个问题是2023年底就发现了,一直没有时间解决-_-!!!,所以记下来应对我这健忘的呵呵。

相关推荐
明月心9522 天前
git remote add 用法
gitlab
only_Klein2 天前
jenkins流水线报错:Connection reset by peer
ci/cd·kubernetes·gitlab·jenkins·ssl
梁萌3 天前
docker部署gitlab和gitlab runner
docker·eureka·gitlab
johnnyAndCode3 天前
Idea 设置GitLab时使用账密,而不是token的配置方法
gitlab·idea
天外飞雨3 天前
Gitlab使用
gitlab
BUTCHER54 天前
GitLab SSH 密钥配置
运维·ssh·gitlab
明月心9524 天前
GitLab使用
gitlab
明月心9525 天前
gitlab pull requets
gitlab
BUTCHER55 天前
GitLab基本设置
gitlab
张小凡vip5 天前
Kubernetes---gitlab的ci/cd发布基于k8s的项目示例参考
ci/cd·kubernetes·gitlab