3

openid4javaライブラリを使用してOpenIDログイン認証に必要な操作を実行するサービスを1つ実装しました。

応募の流れは以下のように思われます

  1. ユーザーからOpenIDを取得するためのJSPページ
  2. JSPページのアクションサーブレット
  3. サーブレットフェッチopenidパラメータは、サービスと対話して、認証のためにユーザーを実際のOpenIDプロバイダーにリダイレクトするために必要な情報を取得します。
  4. OpenIDプロバイダーに提供されるreturnurlは、互いにサーブレットです。
  5. このサーブレットは、Open IDプロバイダーによって送信された応答から必要な情報を取得し、サービスと対話して、ユーザーがOpenIDプロバイダーによって認証されているかどうかを確認します。
  6. ユーザーが認証されると、サーブレットはユーザーをホームページにリダイレクトします。

私の実装アプローチを理解している場合は、次のクエリを楽しませてください。それ以外の場合は、理解できるようにさらに努力するために、私に知らせてください。

クエリJBoss5アプリケーションサーバーを使用しています。上記のコードでは、ユーザーが認証されているかどうかの情報を取得しているだけですが、ユーザーが制限されたリソースにアクセスできるようにする方法、つまりWebページの表示方法をjbossに通知する必要があります。

org.jboss.security.auth.spi.UsernamePasswordLoginModule通常、データベースベースの認証(データベース認証情報を取得するためのサービスメソッドの呼び出し)を継承するカスタムログインモジュールクラスを使用します。しかし、この場合、サービス、ユーザー、OpenIDプロバイダー間の通信チャネルとして機能するサーブレットが必要です。サーブレットとログインモジュールの実装の両方をどのように統合する必要がありますか。

私が直面している可能性のあるもう1つの問題は、DiscoveryInformationオブジェクトの保存と取得に2つの実装されたサーブレット間のセッションを使用していることです。ユーザーがログインしない限り、セッションにアクセスできないと思います。

私がフォローしている実装アプローチは、記事http://www.theserverside.com/news/1364125/Using-OpenIDに基づいています。

私を助けてくださいありがとう

4

1 に答える 1

0

あなたのシナリオには何かが欠けています:認証する唯一の方法はopenidですか、それともユーザーはユーザー名とパスワードも持っていますか? 最初のケースでは、カスタム ログインをリファクタリングして AbstractServerLoginModule を拡張し、openId アカウント情報を渡すことができます。それ以外の場合は、2 つの認証システムをチェーンするだけです。

セッションの問題については、ブラウザが最初にサーバーにアクセスしたときにセッションが開始され、非アクティブまたはプログラムによってリセットされるまでセッションが続くため、すべて問題ありません。

于 2010-08-05T07:45:10.710 に答える