0

カスタムログインjspファイルにフィールドを追加する方法を教えてください。デフォルトは「j_username」と「j_password」です。さらにフィールドを追加したい場合、つまりCustomAuthenticationProvider拡張するクラスでそれを取得したい場合はどうすればよいですかAbstractUserDetailsAuthenticationProvider。そこにリソースまたはリンクがある場合は、お知らせください。

4

1 に答える 1

7

公式FAQの引用:

1.1。ユーザー名だけでなく、より多くの情報を使用してログインする必要があります。追加のログインフィールド(会社名など)のサポートを追加するにはどうすればよいですか?

この質問はSpringSecurityフォーラムで繰り返し出てくるので、アーカイブを検索するか(または、グーグルで)、そこでより多くの情報を見つけることができます。

送信されたログイン情報は、のインスタンスによって処理されますUsernamePasswordAuthenticationFilter。追加のデータフィールドを処理するには、このクラスをカスタマイズする必要があります。1つのオプションは、(標準ではなく)独自にカスタマイズした認証トークンクラスを使用することです。もう1つのオプションはUsernamePasswordAuthenticationToken、追加のフィールドをユーザー名と連結し(たとえば、:区切り文字として「」を使用して)、のユーザー名プロパティに渡すことですUsernamePasswordAuthenticationToken

また、実際の認証プロセスをカスタマイズする必要があります。たとえば、カスタム認証トークンクラスを使用している場合は、AuthenticationProviderそれを処理する(または標準を拡張するDaoAuthenticationProvider)ためにを作成する必要があります。フィールドを連結した場合は、フィールドUserDetailsServiceを分割して認証用の適切なユーザーデータをロードする独自のフィールドを実装できます。

于 2012-05-13T11:42:51.053 に答える