カスタムログインjspファイルにフィールドを追加する方法を教えてください。デフォルトは「j_username」と「j_password」です。さらにフィールドを追加したい場合、つまりCustomAuthenticationProvider
拡張するクラスでそれを取得したい場合はどうすればよいですかAbstractUserDetailsAuthenticationProvider
。そこにリソースまたはリンクがある場合は、お知らせください。
1 に答える
公式FAQの引用:
1.1。ユーザー名だけでなく、より多くの情報を使用してログインする必要があります。追加のログインフィールド(会社名など)のサポートを追加するにはどうすればよいですか?
この質問はSpringSecurityフォーラムで繰り返し出てくるので、アーカイブを検索するか(または、グーグルで)、そこでより多くの情報を見つけることができます。
送信されたログイン情報は、のインスタンスによって処理されます
UsernamePasswordAuthenticationFilter
。追加のデータフィールドを処理するには、このクラスをカスタマイズする必要があります。1つのオプションは、(標準ではなく)独自にカスタマイズした認証トークンクラスを使用することです。もう1つのオプションはUsernamePasswordAuthenticationToken
、追加のフィールドをユーザー名と連結し(たとえば、:
区切り文字として「」を使用して)、のユーザー名プロパティに渡すことですUsernamePasswordAuthenticationToken
。また、実際の認証プロセスをカスタマイズする必要があります。たとえば、カスタム認証トークンクラスを使用している場合は、
AuthenticationProvider
それを処理する(または標準を拡張するDaoAuthenticationProvider
)ためにを作成する必要があります。フィールドを連結した場合は、フィールドUserDetailsService
を分割して認証用の適切なユーザーデータをロードする独自のフィールドを実装できます。