1

バックグラウンド

当社のサイトでは、登録済みの電子メール アドレスとパスワードを使用してログインすることができます。ここで、ユーザーが Facebook ID のみを使用して登録できるようにします (代替認証方法として)。Spring Social + Spring Security 3.1 を使用してこれを行う予定です。

質問

Web サイトには、使用する認証プロバイダーに関係なく、パスワードが必要なセクションがあります。メール登録ユーザーはこの影響を受けませんが、Facebook ユーザーは影響を受けます (パスワードを持っていないため)。ごく一部のユーザーがこの機能を使用するため (Facebook ユーザーがリンクを最初にクリックしたとき)、怠惰な方法でパスワードを生成する必要があります (すべての Facebook ユーザーがパスワードを作成するときに煩わされることは望ましくありません)。登録)。

では、これをどのようにモデル化しますか?

たとえば、「REGISTERED_WITH_PASSWORD」という名前のセキュリティ ロールを定義して、そのロールだけがページを利用できるようにすることが可能であることがわかっています。ログインした「パスワードなし」のFacebookユーザーがそのページに入ろうとすると、パスワード作成ページにリダイレクトして、作成して再試行できるようにSpringを設定することは可能ですか? (それを承認例外として処理する代わりに)。

他のアイデアはありますか?Spring Sec 3.1 に固有のものに依存しているかどうかに関係なく、エレガントなデザインは歓迎されます。

ありがとうございました、

4

1 に答える 1

3

単純な実装の考え、おそらくより良い方法が存在します:

  • カスタムフィルターを作成して追加しますspringSecurityFilterChain
  • 必要な URL に対してのみフィルターをアクティブにします (例: URL を手動で確認します)。
  • ユーザー認証タイプと「ログイン/パスワードが渡されました」フラグをチェックインし、フラグなしでFacebookユーザーをログイン/パスワードページにリダイレクトします
  • 「ログイン/パスワードが渡されました」フラグをセッションに保存します

SecurityContextそのままなので、このアプローチは春には邪魔にならないようです。

編集:フォーマット

于 2012-04-04T19:25:05.753 に答える