Jenkins Github oAuth 回调中出现404错误

3
我正在尝试使用Jenkins的Github oAuth插件(https://wiki.jenkins-ci.org/display/JENKINS/Github+OAuth+Plugin)。
Name: Name of app
URL: http://server:8080
Cacllback: http://server:8080/securityRealm/finishLogin

当我启用Github oAuth时,它会弹出一个窗口询问我是否允许来自Github的此应用程序,然后我点击允许。
因此,认证步骤已经完成,但是我遇到了404错误,因为请求的资源(/securityRealm/finishLogin)不可用。
Tomcat管理器中没有关于securityRealm的任何信息,是否还需要设置其他内容以使用此插件?
4个回答

2

如果您没有在server:port上提供jenkins,则回调将不存在。很可能您正在使用tomcat并且已在jenkins war的web.xml中指定了server:port/jenkins。

如果您使用类似于tomcat或jetty的Servlet容器,则服务器的回调位置将是

server:port/jenkins/securityRealm/finishLogin

1

当我设置OAUTH插件时,我发现检查/var/lib/jenkins/config.xml文件的正确设置非常方便:

<securityRealm class="org.jenkinsci.plugins.GithubSecurityRealm">
  <githubWebUri>https://github.com</githubWebUri>
  <githubApiUri>https://api.github.com</githubApiUri>
  <clientID>3d404d2blah42ruSerious27</clientID>
  <clientSecret>{AQAwZXfnxuJQxEL9iEEXuXPmW5BdeadBeefBreDactedJMcw==}</clientSecret>
  <oauthScopes>read:org,user:email</oauthScopes>
</securityRealm>

1

请确保在您的设置中正确配置了插件。 在输入从Github获取的客户端ID和客户端密钥并重新启动Jenkins之后,它应该可以工作。 我遇到了同样的问题,这对我有用。


2
请问您能否更具体地说明正确的设置是什么? - The Unfun Cat

0

看起来问题是您需要事先设置安全领域,以便路由可用。我按照以下步骤使其正常工作:

  1. 安装Github Oauth插件(为了保险起见,重新启动了Jenkins)
  2. 进入“管理Jenkins” -> “配置全局安全性”
  3. 选中“启用安全性”并选择Github身份验证插件
  4. 在“授权”下,确保“任何人都可以做任何事”,然后在底部单击保存。(之前,我填写了所有设置并保存,但仍然收到404错误并被锁定)。

此时,我尝试访问http://:8080/securityRealm/finishLogin,并响应HTTP / 1.1 302 Found。

确认不再收到资源的404错误后,我回到“配置全局安全性”,使用客户端ID和客户端密钥设置插件的其余部分,选择“Github Commiter Authorization Strategy”进行授权,添加我的用户名,保存并现在能够通过Github进行身份验证。

希望这有所帮助。

Jenkins版本:版本1.558
Github Auth插件:版本0.14


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接