0

私は spring-security-facebook:0.10.4 を使用して、Grails アプリケーションに SSO 用の Facebook 認証を統合しています。私たちの要件の 1 つは、ユーザーが SSO をオンまたはオフにできるようにすることです (アプリの一部のコントロールを介して)。オンになっている場合は、認証に spring-security-facebook フィルターを使用します。アプリで SSO がオフになっている場合は、認証にデフォルトのスプリング セキュリティ フィルターを使用します (Facebook の Cookie/認証トークンが存在するかどうかに関係なく)。

このユースケースを許可するために spring-security-facebook プラグインを構成する方法がわかりません。現在、透過的な Cookie ベースの承認 (FacebookAuthCookieTransparentFilter) が機能しており、うまく機能しています。問題は、すべてのページで Facebook を介して認証しようとすることです。これを制御する方法がわからないので、ユーザーがアプリで SSO をオンにしているかどうかを確認し、SSO がオンになっている場合にのみ Facebook 認証フィルターを使用します。

代わりに手動の Cookie ベースの認証 (FacebookAuthCookieDirectFilter) を使用する必要があると考えていますが、その構成方法がわかりません。ドキュメント(ここにあります... http://splix.github.com/grails-spring-security-facebook/guide/3%20Usage.html#3.4%20Client%20Side%20Authorization)は言う... "FacebookAuthCookieTransparentFilterと同じ、Facebook cookie を解析しますが、指定された URL に対してのみです。spring-security-core などのユーザー名/パスワード フィルターと同様です。認証が成功すると、ユーザーを指定された URL にリダイレクトできます。

手動の Cookie ベースの承認は、私の要件を満たす方法ですか? アプリで SSO を有効にしているユーザーに対してのみ機能するように構成するにはどうすればよいですか? 「…ユーザーを指定された URL にリダイレクトする」ように設定するにはどうすればよいですか?

4

1 に答える 1

0

FacebookAuthCookieDirectFilter は、指定された URL のみに Cookie ベースの承認を適用しています。この URL は で設定さgrails.plugins.springsecurity.facebook.filter.processUrlれています。デフォルトでは/j_spring_security_facebook_check

まず最初に、次のようfacebookAuthCookieDirectFilterに追加して、使用するプラグインを構成する必要がありConfig.groovyます。

grails.plugins.springsecurity.facebook.filter.type='cookieDirect'

次に、Facebook Javascript SDK を使用して、クライアント側でユーザーをログインさせます。認証後/j_spring_security_facebook_check、次のようにユーザーを にリダイレクトします。

<facebookAuth:init>
   FB.Event.subscribe('auth.login', function() {
      window.location.href = '/j_spring_security_facebook_check'
   });
</facebookAuth:init>

<g:javascript> 
   $('#fbloginbutton').click(function() {
       FB.login();
   });
</g:javascript>
于 2013-01-26T05:33:38.550 に答える