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

4 回答 4

2

如果您没有在 server:port 上提供 jenkins,则回调将不存在。您很可能是从 server:port/jenkins 服务的,因为您使用的是 tomcat,这是 web.xml 中为 jenkins 战争指定的内容。

您的服务器的回调位置将是

服务器:端口/jenkins/securityRealm/finishLogin

如果您使用的是 Servlet 容器,例如 tomcat 或 jetty。

于 2014-03-31T20:06:19.130 回答
1

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

于 2012-10-01T15:25:49.463 回答
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>
于 2017-11-03T17:36:27.783 回答
0

看来问题是您需要事先设置安全领域才能使路由可用。我执行了以下步骤以使其正常工作:

  1. 安装 Github Oauth 插件(重新启动 Jenkins 以防万一)
  2. 转到管理 Jenkins -> 配置全局安全性
  3. 勾选启用安全并选择 Github Authentication Plugin
  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 版

于 2014-04-10T04:39:26.087 回答