私は自分のアプリケーションでSpring Securityを実装しました。デフォルト実装を使用しました。つまり、独自のパラメータ(DataSource、Secured Areasなど)で設定しましたが、カスタム実装は記述していません。User - Spring Securityより詳しい情報を入手
は今、私はなど、会社名、ID、同様に、それはユーザ名とパスワードと同じテーブルの上で、利用者からのより多くのデータをキャプチャしたいしかし、私がログインするためにこの情報を使用して行う必要はありません。
私はそれを行うかどうかはわかりません。私が読んだことから、それはUserDetailsServiceに関連しています。しかし、ログイン中にこの情報を使用したい場合は、Custom UserDetailsServiceを作成する必要があります。これは私が望むものではありません。ユーザーがログインした後、私は、アプリケーション内でこの情報を使用します。
は、それが本当にUserDetailsServerに関連していますか?これは私が改造しなければならない唯一のファイルですか?私はカスタムUserDetailsServiceの見つけ
すべての例では、単にユーザー名とパスワードを使用するので、新しいデータが入ってくるだろうどこ私は理解することはできません。
感謝を! UserDetailsServiceをオーバーライド
'loadUserByUsername'がUserDetailsを返しますが、コードでは、それは' buildUserFromAccount'を返します。ユーザーを返します。では、CustomUserDetailsがコードにどのように関係していますか?アカウントのDAOクラスとそのすべてのメソッドは、私によって実装される必要があります、正しい? –
少しのタイプミスがあってそれを修正しました。さらに説明すると、「UserDetails」はインターフェース、「User」はすべての基本フィールドを含む春証券実装です。独自のフィールドを追加したい場合、最も簡単なのは 'User'を拡張することです。そのメソッドで 'User'オブジェクトを返すことも、' UserDetails'オブジェクトや 'CustomUserDetails'オブジェクトを返すこともできます。これは、春のセキュリティが' UserDetails'を実装するオブジェクトを期待しているからです。 – Pete
ああ、OK!これを使用して、私はSpring Securityが認証する必要があるすべてのものを提供しています。ただし、保持しているUserオブジェクトにはすべてのカスタムフィールドがあります。だから、どうすればこのオブジェクトを得ることができるのですか?たとえば、getCompany'はできますか? –