最新の Glassfish サーバー (3.1.2) にデプロイされたマルチモジュール アプリケーションに標準のコンテナー認証を使用しています。
以前は、メインの Web モジュールにはフォーム認証を使用し、残りの Web サービスを含むモジュールには http 基本認証を使用していました。
ここで、両方のモジュールについて、証明書認証を実行できるようにする必要がありますが、オプションとしてのみです。一部のクライアントは、フォーム/基本認証を介してログインできる必要があります。
JSR-196 を使用して、リバース プロキシによって転送された証明書認証データを傍受しようとしました。ここでの問題は、Glassfish では、JSR-196 を使用する場合にコンテナーが提供するいくつかのヘルプを再実装する必要があるようです: セッション、SSO、さらにはフォーム/基本認証での認証の保存...それは Glassfish の方法または私のものです。 、しかし、私はミックスが欲しいです。したがって、私の JSR-196 モジュールは、証明書、基本認証、フォーム認証、および永続化メカニズムを処理する必要があります。やり過ぎに見える。
つまり、フォーム認証を使用し、リバース プロキシに認証データを j_security_check に送信させます。これは最初のモジュールでは機能しますが、実装固有すぎてハックのように見えます。
また、別のモジュールで証明書認証をアプリ サーバー上で直接 (リバース プロキシなしで) 実行し、認証後に元のモジュールにリダイレクトし、sso を接着剤として使用することも想像しました。ただし、認証タイプが異なるモジュール間では、glassfish の sso は機能しません。
可能であれば、標準的でエレガントなものを使用したいと思います。また、Spring などのサードパーティのライブラリではなく、アプリケーションで Java EE セキュリティを使用する必要があります。
Glassfish でこれを実装するためのオプションは何ですか?