4

基本的な HTTP 認証を使用して Tomcat サーバーで Jenkins を実行する方法について、適切な説明が見つからないようです。

いくつかの基本情報:

OS: Windows 7 64 ビット
Tomcat バージョン: 7.0.40
Jenkins バージョン: 1.516
Reverse-Proxy Auth Plugin バージョン: 1.0.1
Java SDK バージョン: 1.7.0_17
Java JRE バージョン: 7
Chrome および IE でテスト済み

私は現在、Reverse-Proxy Auth Plugin ( https://wiki.jenkins-ci.org/display/JENKINS/Reverse+Proxy+Auth+Plugin ) を有効にして、Tomcat サーバーで Jenkins を正常に起動し、実行しています。に追加されtomcat-users.xml、いくつかの行が追加されましたweb.xml。どちらも下に表示されます。(どちらのファイルも にありますC:/Program Files/Apache Software Foundation/Tomcat 7.0/conf/)

tomcat-users.xml (1 つのロールと 1 つのユーザーを追加する以外はすべてデフォルトです)

<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

どんな助けでも大歓迎です!

EDIT 1
必要/関連する場合に備えて、Javaのバージョンを追加しました

EDIT 2
「壊れた」ときのジェンキンスの様子の写真を追加しました

更新 1
それでも同じ問題が発生し、web.xml ファイルでさまざまな組み合わせを試しましたが、それでも同じ問題が発生します。

更新 2
修正はまだ見つかりませんが、回避するために最善を尽くしています。url-pattern を に設定し、/*Tomcat にログインし、サーバーを停止し、元に戻して/jenkins/*(何もしないと思います)、サーバーを再起動してから、Jenkins ページに移動して、認証済みの HTTP ヘッダーを取得します。まだ問題の解決策を探していますが、まだ見つけていません...

4

1 に答える 1

1

私が見つけた問題は次のとおりです。

  1. リバース プロキシとして Apache やその他の Web サーバーを使用する予定がない限り、リバース プロキシ認証プラグインは必要ありません。
  2. があるはずです

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

    要素の後の<login-config>要素

  3. C:/Program Files/Apache Software Foundation/Tomcat 7.0/conf/web.xml静的アセットを提供するために使用される Tomcat の「デフォルト」サーブレットの構成です。このサーブレットにセキュリティ制約を追加すると、すべての静的アセットにアクセスできなくなり、ログイン画面が無効なリンクでいっぱいになります。

代わりに、セキュリティ制約を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 のドキュメントを参照してください。

于 2013-06-09T00:59:32.960 に答える