3

Tomcat マネージャー アプリケーションのダイジェスト パスワードの設定を取得しようとしています。

私が持っている

<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
             resourceName="UserDatabase" digest="MD5"/>

私のTomcat server.xmlで、マネージャーWebアプリケーションのweb.xmlをダイジェストを使用するように変更し、レルム名をTESTINGに変更しました。

<login-config>
    <auth-method>DIGEST</auth-method>
    <realm-name>TESTING</realm-name>
  </login-config>

次に、付属のバッチ ファイルを使用して md5 ハッシュを生成しました。

C:\tomcat6\bin>digest.bat -a MD5 tomcat:TESTING:testor
tomcat:TESTING:testor:1926e50988667dbd5deda9df02b82f28

次に、そのダイジェストされたハッシュをパスワードとして tomcat-users.xml にユーザーを作成します。

<!-- testor -->
  <user username="tomcat" password="1926e50988667dbd5deda9df02b82f28" roles="manager"/>

また、領域名としてダイジェストと TESTING を使用するように 401.jsp ページを変更しました。

Web アプリを起動し、http://localhost:8080/manager/htmlにアクセスすると、標準フォームが表示されます。ユーザーとしてtomcatを入力し、パスワードとしてtestorを入力して、Enter キーを押すだけで 401 が表示されます。もちろん、何度も試行して 401 を取得します。

私が知る限り、ant はダイジェストを実行できないため、最終的には SSL 経由の BASIC 認証を使用することになるでしょう。

しかし、とにかくこれを行うことはありますか?

4

5 に答える 5

2

Tomcat 8.0.32 で KiaMorot の回答を試しましたが、うまくいきませんでした。ダイジェストされたパスワードを生成するときにオプション「-s 0」(ソルトレンスゼロ)を追加すると機能しました:

sudo /opt/apache-tomcat-8.0.32/bin/digest.sh -s 0 -a MD5 'developer:UserDatabase:my clear text password'

このコマンドの引用では、平文のパスワードを省略し、文字列「my clear text password」に置き換えました。一重引用符はそのままにしておいてください。そうしないと、シェルがパスワードの特殊文字を解釈してしまいます。

-s オプションの省略が問題かどうかは、次のように確認できます。-s オプションを指定せずに digest.sh コマンドを複数回実行すると、各繰り返しのコマンドラインは同じですが、異なる結果が得られます。

于 2016-04-12T11:17:46.053 に答える
1

以下は私にとってはうまくいきます:

digest.sh -a MD5 tomcat:UserDatabase:testor
于 2010-08-19T19:03:55.587 に答える
1

server.xmlリソースの名前を定義する行が欠落していると思います。

 <Resource
    auth="Container"
    description="User database that can be updated and saved"
    factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
    name="UserDatabase"  #<--------------NOTE
    pathname="conf/tomcat-users.xml"
    type="org.apache.catalina.UserDatabase"/>

name定義からの属性の値は、定義から<Resource>の属性の値と一致する必要があります。resourceName<Realm>

<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
   resourceName="UserDatabase"  #<------------NOTE
   digest="MD5"/>

<realm-name>これは の構成web.xmlと一致する必要があります。

<login-config>
    <auth-method>DIGEST</auth-method>
    <realm-name>UserDatabase</realm-name> #<------------NOTE
</login-config>

また、次のようにパスワードを生成することを忘れないでください。

C:\tomcat6\bin>digest.bat -a MD5 tomcat:UserDatabase:testor

これがすべて満たされていれば、セットアップは私の場合と同じように問題なく動作するはずです。

MD5ダイジェスト アルゴリズムとしての tomcat7 と tomcat8 は必須であることに注意してください

于 2015-08-06T08:05:39.883 に答える