首页 文章

Jenkins和Tomcat使用Reverse-Proxy Auth插件

提问于
浏览
4

我似乎无法找到关于如何使用基本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:8080http://localhost:8080/jenkins 时都没有登录提示,但如果我将 <url-pattern>/jenkins/*</url-pattern> 更改为 <url-pattern>/*</url-pattern> ,我只需转到 http://localhost:8080 即可获得登录提示,这很好 . 我登录后如果我去/ jenkins然后我被提交到登录页面,这是"messed up" [没有任何资源显示,页面看起来破了] .

这就是它的样子:

Broken Jenkins

这是我发现的链接与我遇到的相同问题 . 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 回答

  • 1

    以下是我能够发现的问题:

    • 除非您计划将Apache或其他Web服务器用作反向代理,否则不需要反向代理Auth插件 .

    • 应该有一个

    <security-role>
      <role-name>Administrator</role-name>
    </security-role>
    

    <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 .

相关问题