1

Tomcat 認証を実装する必要がある小さなアプリケーションがあります。インターネットを掘り下げた後、Realm が解決策であることがわかりました。また、tomcat-users.xml、server.xml、および web.xml を構成する方法もわかりました。しかし、それはまだ機能していません。

このコードを web.xml に追加しました

<security-constraint>
    <web-resource-collection>
    <web-resource-name>hp</web-resource-name>
    <url-pattern>/pages/bill.jsp</url-pattern>
    </web-resource-collection>
    <auth-constraint>
    <role-name>Admin</role-name>
    </auth-constraint>
</security-constraint>
<login-config>
     <auth-method>BASIC</auth-method>>
     <realm-name>default</realm-name>>
 </login-config>

login-config で、Element 'login-config' cannot have character [children] を取得しています。これは、タイプのコンテンツ タイプが要素のみであるためです。何が問題になる可能性がありますか?

4

3 に答える 3

4

XML が無効です - 2 つの ">" 文字があります

からのデータの末尾を修正します

<login-config>
     <auth-method>BASIC</auth-method>>
     <realm-name>default</realm-name>>
 </login-config>

<login-config>
     <auth-method>BASIC</auth-method>
     <realm-name>default</realm-name>
 </login-config>

無効な xml に対して tomcat がどのようなエラーを出すかはわかりませんが、そのままでは機能しないことは確かです。

于 2013-06-19T14:14:46.590 に答える
3

この質問は、おそらくこの Web サイトの別の場所で回答されています。しかし、ここにいくつかの助けがあります。

  1. BASIC (または DIGEST) 認証を使用せず、FORM 認証を使用します。これが理由です:セッションを無効にした後、Jetty に BASIC 認証で資格情報を要求させるにはどうすればよいですか?

  2. 最初に (フォーム認証と) メモリ レルム (つまり、tomcat-users.xml で定義された uers とロール) から始めて、次に JDBC レルムを試し、最後に DatasourceRealm を試してください。

Tomcat のドキュメントを読んで、このジャズがどのように機能するかを理解してください。

私はこのテーマ (認証方法とレルム) についていくつかメモを書きました。https://sites.google.com/site/adrienitnotes/java/web-apps-login-system-in-tomcat-container

  • 警告:メモリ レルムから開始する可能性があります。Eclipse 内で Tomcat を実行する場合は注意してください (tomcat-user.xml 構成の変更に関する問題):

新しいサーバーを作成すると、一連の構成ファイルが Tomcat インストールからワークスペースの Servers プロジェクトの下の対応するフォルダーにインポート (コピー) されます。このファイルは Eclipse によって更新されないことがあるため、変更は無視されます。

解決策 1: Tomcat に .war ファイルを手動でデプロイして、このタイプのアプリケーションを実行することをお勧めします (Tomcat を Eclipse の外部で実行するため)。

解決策 2: localhost-config\tomcat-users.xml の \Servers\Tomcat v7.0 Server を関連する変更で修正すると、これ修正される場合があります。

于 2012-09-25T12:26:09.217 に答える
1

たまたまこの古い質問に出くわしました。おそらくずっと前に問題を解決したことでしょうが、とにかく答えを提供できると思いました。

と の後に余分な>文字が</auth-method>あり</realm-name>ます。それらを削除すると、問題が解決するはずです。

于 2013-06-19T15:09:04.307 に答える