3

Spring SecurityプラグインをGrailsアプリケーションにインストールし、ログインが正常に機能することを確認しましたが、ユーザーの登録を作成し、登録後にユーザーをコードで手動で認証したい場合、できませんでした。

それに対する解決策はありますか?Spring Securityでは、認証されたユーザーをセッションまたはSpringSecurityコンテキストにプッシュするだけの単純な使用が許可されていないのはどうしてですか。これが私が試したことです:

UsernamePasswordAuthenticationToken uat = new UsernamePasswordAuthenticationToken(user.email, user.password, null); 
uat.setDetails(user);
SecurityContext context = SecurityContextHolder.getContext();
context.setAuthentication(uat);

これはユーザーを認証しますが、次のコードでユーザーを取得できませんでした。

springSecurityService.currentUser

これだけで:

SecurityContextHolder.getContext().getAuthentication().getPrincipal();

私は今混乱しています、SpringSecurityを使用する正しい方法は何ですか。

独自のUserDetailsS​​erviceの構築を開始しましたが、混乱して、独自の認証方法を作成する場合の次のステップがわかりません。

4

1 に答える 1

2

次の方法で認証を強制できます。

springSecurityService.reauthenticate user.username

http://grails-plugins.github.com/grails-spring-security-core/docs/manual/guide/6%20Helper%20Classes.html#6.2%20SpringSecurityServiceを参照してください。

于 2012-07-24T13:40:12.383 に答える