关于如何使用基本 HTTP 身份验证让 Jenkins 在 Tomcat 服务器上运行,我似乎找不到很好的解释。
一些基本信息:
操作系统:Windows 7 64 位
Tomcat 版本:7.0.40
Jenkins 版本:1.516
Reverse-Proxy Auth 插件版本:1.0.1
Java SDK 版本:1.7.0_17
Java JRE 版本:7
使用 Chrome 和 IE 测试
我目前在我的 Tomcat 服务器上成功启动并运行了 Jenkins,并启用了反向代理身份验证插件(https://wiki.jenkins-ci.org/display/JENKINS/Reverse+Proxy+Auth+Plugin),一个用户和角色加进去tomcat-users.xml
,又加了几行给我web.xml
。两者都显示在下面。(两个文件都位于C:/Program Files/Apache Software Foundation/Tomcat 7.0/conf/
)
tomcat-users.xml(除了添加一个角色和一个用户之外,一切都是默认的)
<role rolename="Administrator"/>
<user username="John" password="password" roles="Administrator"/>
web.xml(除了添加本节之外的所有默认值)
<security-constraint>
<web-resource-collection>
<web-resource-name>
Jenkins
</web-resource-name>
<url-pattern>/jenkins/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>Administrator</role-name>
</auth-constraint>
</security-constraint>
<!-- Define the Login Configuration for this Application -->
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
我不知道为什么,但是每当我去http://localhost:8080
或http://localhost:8080/jenkins
没有登录提示时,但如果我将 更改为<url-pattern>/jenkins/*</url-pattern>
,<url-pattern>/*</url-pattern>
我只需转到 ,就可以得到登录提示http://localhost:8080
,这很好。登录后,如果我转到 /jenkins,然后我会被转发到登录页面,这一切都“一团糟”[没有资源显示,页面看起来损坏]。
这是它的样子:
这是一个链接,我发现它与我遇到的相同问题很接近。https://groups.google.com/forum/?fromgroups#!topic/jenkinsci-users/AVTklGHmzkc
任何帮助,将不胜感激!
编辑 1
添加了 Java 的版本以防需要/相关
编辑 2
添加了一张詹金斯“坏掉”时的样子
更新 1
仍然遇到同样的问题,在 web.xml 文件中尝试了不同的组合,但仍然遇到同样的问题。
更新 2
尚未找到修复,但我一直在尽我所能解决它。我将 url-pattern 设置为/*
,登录到 Tomcat,停止服务器,将其更改回/jenkins/*
(我相信什么都不做)并再次启动服务器,然后转到 Jenkins 页面以获取经过身份验证的 HTTP 标头。仍然想要解决我的问题,但还没有找到...