0

最新の 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 でこれを実装するためのオプションは何ですか?

4

1 に答える 1

0

最後に、これらの組み合わせを使用して実装しました。

  • 認証をに委任できるJSR-196モジュール
  • j_security_checkスタイルのログイン
  • http基本(提供されている場合)
  • 他のオプションによって保存されたセッション保存トークン
  • 特定の状況下でのクライアント証明書認証

リバースプロキシはSSLには使用されません。潜在的な問題については知っていますが、満足しています。必要なすべての証明書データにアクセスするための最良の方法です。他のオプションには、実装固有の詳細が含まれます。これは、より標準ベースです。

于 2012-08-27T06:24:35.670 に答える