2016-03-23 5 views
0

私は、ブートキャンプ型のトレーニングコースと並行して、一般にアクセス可能なトレーニングサイトを構築しています。私は、ユーザーに署名して権限を管理するオーバーヘッドを避けたいので、loadUserByUsernameが呼び出されてユーザーが見つからない場合に新しいユーザーを作成することを望んでいました。調査の後、パスワードがloadUserByUsernameで利用できないように思えます。そのため、Spring Securityは実際の認証を自分自身で処理するため、返されたUserDetailsオブジェクトが必要になります。SpringセキュリティloadUserByUsername - ユーザー名が未満の場合に新しいユーザーを作成します。

私の主な質問:パスワードをloadUserByUsername関数に引き込む方法はありますか?

二次的に、パスワードにアクセスできない場合は、何らかの形でユーザーリポジトリを実装し、既存のユーザーが見つからない場合に新しいユーザーを作成するロジックを追加できますか?

また、私は単純に自動サインアッププロセスを提供することができたと判断しましたが、上記のように、ユーザーが最初にログインして1回のアクションで自動的にユーザーアカウントを作成できる。

ありがとうございます!

答えて

0

私はあなた自身のAuthenticationProviderを作成するのに最適なソリューションだと思います。まず、DaoAuthenticationProviderを延長してください。キーは、ユーザー名とパスワードにアクセスできる認証メソッドをオーバーライドすることです(認証で)。 DaoAuthenticationProviderを使用して、retrieveUserをオーバーライドする場合。

これを行うには、おそらく独自のUserDetailsS​​erviceを作成する必要があります。

このtutorial on how to write a cutom auth providerをご覧ください。またはthis post on SOまたは

+0

ありがとうございました!私はあなたが提供したリンクを介して作業しようとしていましたが、それほど遠くになっていません...私の時間的制約のために、私はカスタム認証プロバイダを実装できるかどうかわかりません。サインアッププロセス。あなたの応答を感謝します! – Cam

+0

問題ありません。受け入れられる偽造者はいません – JEY

関連する問題