3

私はしばらくJavaアプリケーションに取り組んでいます。私は主に .NET プラットフォームに取り組んでいます。これら 2 つのプラットフォーム間で多くの概念が共通しているように感じますが、構成に関連するいくつかの問題が見つかった領域はほとんどありません。

私は認証と承認に取り組んでおり、JAVA の .NET のメンバーシップ API に似たものが得られると考えました。私が得た最も近いものは、j_security_checkを使用していました。JAAS についても知りましたが、深く入り込むには深すぎると思います。

データベースにユーザー テーブルとロール テーブルを作成したので、JDBC レルムの設定をどこかに指定する必要があります。Tomcat 7.0 を使用しています。ほとんどの場所で、server.xml でレルム設定を指定する必要があると述べられていますが、それはサーバー レベルの構成になるため、そのサーバーにデプロイされたすべての Web アプリケーションに適用されるのではないでしょうか?

あるサイトでは、開発者が context.xml について言及しているのを見たことがありますが、この XML ファイルを使用して JDBC レルムを設定することについて言及している標準ドキュメントは見当たりません。

.NET では、Membership 設定は常に Machine.config ではなく web.config レベルに配置されます。

これについて完全に混乱しています。これについていくつかの光を探しています。

4

1 に答える 1

4

web.xml ではなく Server.xml で Realm 設定が必要な理由

これは正しくありません。Web アプリケーションでも定義できますが、/META-INF/context.xmlTomcat の場合など、サーブレットコンテナ固有の構成ファイルでのみ定義できます。/WEB-INF/web.xmlサーブレットコンテナの実装ではなく、標準のサーブレット API に固有であるため、 で定義することはできません。


しかし、それはサーバー レベルの構成になるため、そのサーバーにデプロイされたすべての Web アプリケーションに適用されるのではないでしょうか?.

そのとおりです。サーバーを制御できない場合、または他の Web アプリケーションを介してレルムを公開したくない場合、これはお勧めできません。


あるサイトでは、開発者が context.xml について言及しているのを見たことがありますが、この XML ファイルを使用して JDBC レルムを設定することについて言及している標準ドキュメントは見当たりません。

webapp の/META-INF/context.xml. elementに関するTomcat独自のドキュメント<Context>も参照してください。

コンテキストの定義

<Context>要素をファイルに直接配置することはお勧めしませんserver.xmlこれは、Tomcat を再起動しないとメイン ファイルをリロードできないため、 Context構成の変更がより侵襲的になるためです。conf/server.xml

個々の Context 要素を明示的に定義できます。

  • /META-INF/context.xmlアプリケーションファイル内の個々のファイル。必要に応じて (ホストの copyXML 属性に基づいて) これをコピーして$CATALINA_BASE/conf/[enginename]/[hostname]/、アプリケーションのベース ファイル名に ".xml" 拡張子を加えた名前に変更することができます。

  • $CATALINA_BASE/conf/[enginename]/[hostname]/ディレクトリ内の個々のファイル (「.xml」拡張子付き) 。コンテキスト パスとバージョンは、ファイルのベース名 (.xml 拡張子を除いたファイル名) から派生します。このファイルは、Web アプリケーションの META-INF ディレクトリにパッケージ化された context.xml ファイルよりも常に優先されます。

  • main のHost要素内conf/server.xml

(強調は私のものではありません。Tomcatのドキュメントではすでに強調されています)

于 2011-11-21T20:56:36.623 に答える