0

あなたの助けにより、私はここで質問した質問を解決することができました. Web アプリケーション用のカスタム Tomcat オーセンティケーターを開発しました。現在、オーセンティケーターとその構成ファイルは%CATALINA_HOME%\lib\ディレクトリにあります。残念ながら、オーセンティケーターの構成ファイルは、オーセンティケーターが開発された Web アプリケーション ( にあります) の構成ファイルとほとんど重複して%CATALINA_HOME%\webapps\myappおり、明らかに、両方の構成ファイルが同じ DB 接続設定を共有しています。唯一の構成ファイルを共有するのが最善であるため、これは不便です。

この問題を解決するには、次の 2 つの方法があると思います。

  1. webappsTomcat の起動時にプレゼンス用のディレクトリをmyapp何とか見つけてから、アプリケーション構成ファイルを読み取ります (現在の状況から続行し、myapp\WEB-INF\web.xml適切に構成されています)。残念ながら、これには Tomcat の再起動が必要です。
  2. フォーム認証システムを対応する Web アプリケーション ディレクトリに配置して、共有構成ファイルを直接読み取れるようにする方法があるかもしれません。おそらく、これにより Tomcat の再起動が不要になり、簡単な再展開が可能になるでしょう。

可能であれば2番目の解決策を希望したいのですが、よくわかりません。両方が存在する場合、どちらの方法が優れていますか? または、 Web アプリケーション固有のオーセンティケーターを に配置しない、さらに優れたソリューションはあり%CATALINA_HOME\lib%ますか?

よろしくお願いします。私の英語で申し訳ありません。

4

2 に答える 2

0

コードが重複している場合があります。

コードをリファクタリングして、Tomcat が認証に必要なすべてのコードを保持できるようにしてから、Tomcat 認証コードのみを使用するようにアプリケーションをリファクタリングすることをお勧めします。

アプリケーションが Tomcat 認証を使用できない場合は、少なくとも構成ファイルを含む共通コードを Tomcat に移動してから、共通コードを使用できます。

于 2010-09-19T08:17:14.213 に答える
0

ああ、それはすべてずっと簡単です!主なアイデアは、 の(JDBCRealm) context.getRealm()オブジェクトを介して接続文字列を取得することauthenticate(...)です。私の問題を解決するにはそれで十分です。

于 2010-09-24T06:25:25.267 に答える