1

私は spring-social を使用して、ユーザーがサインアップなしで Facebook 経由で接続できるアプリケーションを開発しています。接続ボタンをクリックするだけでログインできます。

Cookie を介してユーザーを追跡し、RESTful API を使用してユーザーに代わって Facebook を呼び出しています。ユーザーがログインしていない場合、oauth 例外により、Facebook に接続する必要があるサインイン ページにリダイレクトされます - これはサービス側です。

また、ユーザーが Web ブラウザー経由で接続して統計を表示し、プロファイルを管理できるようにする Web サイト (またはダッシュボード) もあります。

Web サイトに同じサインアップ ロジックを適用したいと考えています。

つまり、認証されていない場合 (つまり、有効な Cookie をリクエストと共に送信する場合)、誰もページにアクセスできません。

Spring Social と Spring セキュリティを使用してすべてのリソースにそれを適用する最良の方法は何でしょうか? (ユーザー/パスはなく、Cookie のみであることを忘れないでください)

PS 私は、Spring ソーシャル クイック スタートの例の上に自分のプロジェクトを構築しました。このプロジェクトには HandlerInterceptorAdapter があり、すべてのリクエストがそのアダプターを通過して、ユーザー提供の Cookie がデータベースにあるかどうかを確認し、ユーザー情報を使用して SecurityContext をセットアップして続行します。このアダプターを Web サイトのログインの欠陥に再利用したいと考えています。

Tnx!

4

1 に答える 1

1

SpringSecurity を使用して、すべての Web サイト URL を保護できます。ユーザーが認証されていない場合、ログイン ページにリダイレクトされます。ログインページに、SpringSocial サインアップボタンを (通常のログインフォームの代わりに) 配置できます。このボタンをクリックすると、ユーザーは Facebook にリダイレクトされます。認証が成功すると、アプリケーションにリダイレクトされます。SpringSocial は、ユーザーが既に認証されていることを SpringSecurity に自動的に通知できます。したがって、このユーザーはすべての Web サイト URL を問題なく使用できます。

編集。通常、ログイン ページですべてのユーザーのアクセスを許可する必要があります。あなたの場合、 ProviderSignInControllerに対しても行う必要があります(/signin)。

于 2013-01-12T12:40:09.713 に答える