Confluenceとして知られる大規模な COTS コンテンツ管理システムをカスタマイズしています。
Confluence は、さまざまな種類の httpservlet 応答 (text/ascii、image/png、image/jpg、Microsoft パワーポイント ファイル、PDF ファイルなど) を返します。
小さなバイトセットを書き出すことによって、クライアントに返されるすべての応答を変更しようとするサーブレットフィルターを作成しました。これはほとんどの場合うまく機能します。ただし、パワーポイント ファイル、PDF、PNG などの特殊なケースを継続的にチェックする必要があります。ユーザーがそのようなコンテンツをダウンロードしている場合、応答をまったく変更しません。応答を変更すると、クライアントに提供中の PowerPoint バイトまたは PDF バイトのストリームが中断されます。これらの特殊なケースをチェックし、バイトを書き出さないだけで、問題は解決します。しかし、より大きな問題は、私が考えていないケース (おそらくオーディオとビデオ) や、誰が何を知っているかということです。これらの特殊なケースについて知るたびに、これらの特殊なケースをチェックするというゲームを続けなければなりません。
これを処理するよりスマートな方法があるかどうか疑問に思っていました。
私はグーグルをして、この例に出くわしました。
この例に沿ったものを探していますが、舞台裏で何が起こっているのか、この問題をよりスマートな方法で解決できるかどうかを誰かが説明してくれることを望んでいました.