0

Tomcat アプリケーションをコーディングしており、Google の oauth2 サービスに対して認証を行っています。Filter私はもともと認証を行うための簡単なものを書くつもりでしたが、ユーザープリンシパルをFilter. 私の理解では、この投稿に見られるFilterように、呼び出しを実装HttpServletRequestWrapperし、そのクラス内に設定する必要があります

FilterTomcatは、定義した各タイプの 1 つだけをインスタンス化し、すべてのリクエストがこの単一のオブジェクトをチェーンに沿って通過すると確信していFilterます (間違っている場合は修正してください)。

リンク先のコードで、コードが呼び出すのは正しいですか

next.doFilter(new UserRoleRequestWrapper(user, roles, request), response);

すべてのリクエストが新しいUserRoleRequestWrapper?をインスタンス化する場所 このフィルタの代わりに、すべてのリクエスト間で共有される 1 つのリクエスト ラッパーをインスタンス化する必要がありますか? このようなクラスの仕様に関するドキュメントを見つけるのに苦労しています。

4

1 に答える 1

0

Filter はあなたが探しているものではないと思います。この目的には適していないようです... フィルターはそのようなユースケース用に作成されていません。これらは、クライアント/サーバー通信の他の側面 (セキュリティなど) ではなく、実際の要求/応答データの操作に重点を置いて、要求と応答の前後処理のために作成されました。ユーザーを認証すると、HTTP 要求サイクルを処理するだけでなく、さらに影響が及ぶ可能性があることに注意してください。セキュリティは、HTTP サイクルよりも低いレベルで JavaEE フレームワークに結び付けられます。

oauth2 に対して認証する場合は、なんらかの JAAS 実装を実装し、それを Tomcat にプラグインする方がはるかに優れているはずです。

于 2012-12-02T05:20:55.060 に答える