問題タブ [tomcat-valve]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1198 参照

tomcat - org.apache.catalina.authenticator.SingleSignOn バルブの移植性

ここorg.apache.catalina.authenticator.SingleSignOnに記載されているように、シングル サインオンにtomcat バルブを使用することを考えています。

このアプローチを採用した場合、Tomcat から jboss、glassfish、weblogic、websphere などの別の Web コンテナーにアプリケーションを移動することにした場合、アプリケーションに対して何をする必要がありますか?

0 投票する
2 に答える
3306 参照

apache - Apache Tomcat - 二要素認証

2 要素認証ソリューションを、Apache Tomcat でホストされているメール サーバーと統合しようとしています。現在、アプリはフォームベースの認証を使用しており、ユーザーはユーザー名とパスワードを入力し、バックエンドとして openLDAP に対して認証されます。

私たちが望むのは次のことです -

1)。ユーザーは Un と PWD を入力します
2)。要求は「傍受」され、「保留」され
ます 3)。ワンタイム pwd (OTP) が生成され、SMS としてユーザーに送信されます。
4)。ユーザーには、その OTP を入力するためのボックスを含む新しいページが表示されます。
5)。ユーザーは、SMS として送信された自分の OTP を入力します
6)。OTP が検証され、true の場合、ステップ「2」で「保留」された要求がさらなる認証のために転送されます

問題は、メール サーバー アプリのソース コードにアクセスできないことです。

ISAPI フィルターを使用して IIS (Microsoft) で非常によく似たものを実現できますが、Apache でこれを実現する方法を知る必要がありますか?

Valve/Filter と SAML の行を調べていますが、どこでどのように進めればよいかわかりません。

0 投票する
1 に答える
244 参照

tomcat-valve - カスタマイズされたアクセスログ(Apache Tomcat 7.0.8)はゼロKBのままです

リクエストからいくつかのアイテム(HTTPコード、応答時間、リクエストタイプ)をログアウトするために、AccessLogの短縮/カスタマイズバージョン(Stats_logという名前)を作成しようとしています。

そこで、AccessLogValve全体をコピーして、ニーズに合わせて編集しました。サーバーを再起動すると、新しいログが作成されますが、ゼロ(!)0kbのままです。

誰かが私がここで間違っていることを指摘できますか?

奇妙なことに、Apache Tomcat 7.0.2を実行しているテストENVで、カスタマイズされたログが(同じ設定を使用して)機能します。(PROD環境は7.0.8です)。

助言がありますか?

server.xmlファイルに表示されるValve設定は次のとおりです。

前もって感謝します!

0 投票する
2 に答える
1331 参照

java - トムキャットフォワードバルブ

Tomcat サーバーで次のサーバー側のリダイレクトまたは転送が必要です。URL http ://portal.customer_name をhttp://portal.customer_name/customer_nameに名前変更/リダイレクトする必要があります。つまり、コンテキスト パスのない URL は、コンテキスト パスのある同じ URL にリダイレクトされます。request.getRequestDispatcher().forward(request, response); を使用して、フィルターでこれを行うことができました。しかし、同じことがバルブでは機能しないようです。

これまでに次のことを取得しました。

元の URL は受信するがリダイレクトは受信しないように見えるいくつかのサーブレットをデプロイしました。このようなサーバーサイドのリダイレクトを作成することはまったく可能ですか? フィルターではなく、バルブが必要であることに注意してください。

0 投票する
1 に答える
1356 参照

tomcat - Tomcat: スタンドアロンの JAR モジュールとしてではなく、Web アプリケーション内のカスタム フォーム オーセンティケーター。可能?

私たちの Web アプリケーションには、特定のロジックを内部に持つカスタム フォーム認証が必要です。現在のフォーム オーセンティケーターの実装では、オーセンティケーター モジュールを と呼びましょう、Web アプリケーションが開始する前にcustom.auth.jar存在する必要があります。Web アプリケーションは、次のディレクティブ%CATALINA_HOME%/libを使用してそのカスタム認証モジュールを使用します。context.xml

Tomcat の要件を理解している限り、このモジュールは、Web アプリケーションが開始する前custom.auth.jarに Tomcat のlibディレクトリに存在する必要があります。これは、Web アプリケーションが Web アーカイブにパッケージ化された認証コードを必要としないように見えるためです。%CATALINA_HOMA%/lib. そうしないと、Web アプリケーションを起動できません。

認証ビジネス ロジックの詳細といくつかの保護のために、認証モジュールの何らかのバージョン管理を導入し、Web アプリケーション アプリケーション リスナーでそのバージョンを確認する必要がありました (Web アプリケーションが互換性のないバージョンの認証モジュールを検出した場合)。 (Tomcat のライブラリ ディレクトリにある JAR ファイルをチェックするのではなく、代わりにリフレクションを使用します) -- 起動しようとしている Web アプリケーションと認証モジュールとの間の互換性エラーの報告を開始することを単に拒否します。ここでも、既存のオーセンティケータ モジュールを で指定する必要がありますcontext.xml

互換性のないバージョンを保護するにもかかわらず、これはいくつかの大きな問題を引き起こします。これら 2 つのアプリケーションは異なるバージョンの認証モジュールを必要とするため、同じ Tomcat インスタンスで同じアプリケーションの別のバージョンを起動することはできません。libただし、Tomcat のディレクトリには単一のバージョンが存在する場合があります。

私の質問は、カスタムFormAuthenticatorを Web アプリケーションに直接パッケージ化して、FormAuthenticatorWeb アプリケーションを開始する前に単一のバージョンをロードする必要がないことは可能ですか? これにより、必要な数の Web アプリケーションのバージョンを開始することができ、まったく触れません%CATALINA_HOME%/lib

つまり、Tomcat がホーム ライブラリ ディレクトリからではなく、Web アプリケーションからカスタム認証モジュールを取得するようにするにはどうすればよいでしょうか? ありがとう。

0 投票する
1 に答える
725 参照

tomcat - accesslogvalve dir に環境変数を使用する

setenv.bat の値から accesslogvalve の「dir」にデータを入力したいと考えています。元:

setenv.bat で「my.logs.dir」を指定しました

set my.logs.dir=C:\xyz\abc

Tomcat を起動すると、Tomcat インストールの下にフォルダー ${my.logs.dir} が表示されます。問題は、Tomcat の起動時に ${my.logs.dir} が環境変数に置き換えられなかったことです。のようなハードコードされた値を指定すると dir="C:\xyz\abc"、正常に動作します。

サーバーの起動時に ${my.logs.dir} を環境からの値に置き換えるように誰かに案内してもらえますか?

ありがとう

0 投票する
1 に答える
763 参照

tomcat7 - Tomcat ディレクトリ内への IP アクセスを拒否する

私は次のことを解決しようとしています:

私は、任意の IP を受け入れるように構成されている (そしてそうあるべきである) Tomcat Web アプリケーションを持っています。例: (プロトコル://ホスト:ポート/MyApp/)

私がしたいのは、特定の IP のみが Web アプリ内に保存されているディレクトリに入るのを許可し、入るときにユーザー名とパスワードの入力を求められるようにすることです。例:(プロトコル://ホスト:ポート/MyApp/ディレクトリ)

構成は context.xml および/または web.xml で行う必要があると思いますが、方法がわかりません。

0 投票する
1 に答える
1494 参照

tomcat - Tomcat の応答ヘッダーをバルブで変更するには?

Tomcat の応答ヘッダーを最小化する必要があります。tomcat にリクエストを送信するデバイスはメモリが非常に限られているため、Date、Server、および Content-Type ヘッダーを削除したいと考えています。アクションフックでバルブを自作しました。フックが呼び出されますが、日付とサーバー ヘッダーを削除することはできないようです。

最初に、ActionCode == COMMIT動作しなかった場合にのみメソッドを実行しました。変。そこで、Tomcat のソース コードを調べました。Tomcat のAbstractHttp11Processorwhenのメソッド action() でActionCode==COMMIT

  • prepareResponse()が呼び出され(サーバーと日付ヘッダーが設定されます)、次に
  • ヘッダーを出力バッファーに書き込みます。

したがって、傍受することはできません。このアクションが呼び出される前にヘッダーを設定すると、AbstractHttp11Processor. その後ヘッダーを設定すると、ヘッダーは既にバッファーに書き込まれているため、無視されます。私の唯一のチャンスは、出力バッファをリセットしてヘッダーをバッファに書き込むことだと思われますか、それとももっと良い方法がありますか? そして、それは可能ですか?