我似乎无法找到关于如何使用基本HTTP身份验证让Jenkins在Tomcat服务器上运行的良好解释 .
一些基本信息:
操作系统:Windows 7 64位
Tomcat版本:7.0.40
詹金斯版本:1.516
反向代理Auth插件版本:1.0.1
Java SDK版本:1.7.0_17
Java JRE版本:7
经过Chrome和IE测试
我目前已经在我的Tomcat服务器上启动并运行了Jenkins,并启用了反向代理Auth插件(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然后我被提交到登录页面,这是"messed up" [没有任何资源显示,页面看起来破了] .
这就是它的样子:
这是我发现的链接与我遇到的相同问题 . https://groups.google.com/forum/?fromgroups#!topic/jenkinsci-users/AVTklGHmzkc
任何帮助,将不胜感激!
EDIT 1
在需要/相关的情况下添加了Java版本
EDIT 2
添加了詹金斯看起来像什么的图片"broke"
UPDATE 1
仍然遇到相同的问题,尝试了web.xml文件中不同的组合,但仍然遇到了同样的问题 .
UPDATE 2
尚未发现修复,但我一直在尽力绕过它 . 我将url-pattern设置为 /*
,登录Tomcat,停止服务器,将其更改回 /jenkins/*
(我相信什么都不做)并再次启动服务器然后转到Jenkins页面以获取经过身份验证的HTTP标头 . 仍然想要解决我的问题,但尚未找到一个......
1 回答
以下是我能够发现的问题:
除非您计划将Apache或其他Web服务器用作反向代理,否则不需要反向代理Auth插件 .
应该有一个
<login-config>
元素后面的元素C:/Program Files/Apache Software Foundation/Tomcat 7.0/conf/web.xml
是Tomcat的"default" servlet的配置,用于提供静态资产 . 向此servlet添加安全性约束会导致所有静态资产无法访问,从而导致使用死链接填充登录屏幕 .而是将安全性约束添加到
C:/Program Files/Apache Software Foundation/Tomcat 7.0/webapps/jenkins/WEB-INF/web.xml
这应该可行,但可能需要对
C:/Program Files/Apache Software Foundation/Tomcat 7.0/conf/server.xml
进行其他更改才能配置域 . 见Tomcat doc related to this .