开发者社区> 问答> 正文

gitlab集成自定义omniauth报错?报错

公司内部有一个自己实现的单点登录系统(SSO),现在想搭一个gitlab,希望能够通过内部的sso来登录。

查看了gitlab的文档,发现omniauth可以实现,就自己参照现有的Strategy写了一个Strategy,在gitlab的登录界面也可以看到SSO的登录按钮,点击SSO按钮页面会前往SSO的登录地址,在SSO系统登录之后浏览器会跳转回gitlab的url,但是这个时候gitlab页面显示的是404。

通过查看gitlab日志,发现如下报错

AbstractController::ActionNotFound (The action 'sso' could not be found for OmniauthCallbacksController): lib/omniauth/strategies/sso.rb:25:in `callback_phase'
查看sso.rb的25行,是如下代码:

def callback_phase
    ticket = request.params["sso_ticket"]
    res = post('http://xxxxx/api/user', {:code => ticket})
    @raw_info = res['data']
    super
end



报错的行是super。

于是试着把super这行注释,回调回来的报错变成http500,错误日志是

NoMethodError (undefined method `[]' for nil:NilClass):
不知道有没有人遇到过这样的问题

展开
收起
爱吃鱼的程序员 2020-06-12 14:16:42 970 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    应该是父类里请求了id为sso的action,项目里没有对其进行定义,致使notfound<divclass='ref'>

    引用来自“looqy”的评论

    应该是父类里请求了id为sso的action,项目里没有对其进行定义,致使notfound<divclass='ref'><divclass='ref'>

    引用来自“looqy”的评论

    应该是父类里请求了id为sso的action,项目里没有对其进行定义,致使notfound

    2020-06-12 14:16:59
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
阿里邮箱—安全高效集成 立即下载
集成智能接入网关APP:优化企业级移动办公网络 立即下载
云效助力企业集成安全到DevOps中 立即下载