1
AuthenticationProvider
私はauthenticate
メソッドのAuthentication
オブジェクトを返すだけのカスタムを持っています。私がしたいのは、ログイン時にユーザーに役割を追加することです。これはデモ目的のためです。ユーザーがユーザー名を入力して受け入れるだけです。管理役割を割り当てる必要があります。スプリングセキュリティとカスタム認証プロバイダ
AuthenticationProvider
私はauthenticate
メソッドのAuthentication
オブジェクトを返すだけのカスタムを持っています。私がしたいのは、ログイン時にユーザーに役割を追加することです。これはデモ目的のためです。ユーザーがユーザー名を入力して受け入れるだけです。管理役割を割り当てる必要があります。スプリングセキュリティとカスタム認証プロバイダ
もちろん、これを達成する方法はいくつかあります。 私の好みのものはカスタムでこれを行いますUserDetailsService
。唯一の方法はloadUserByUsername
で、UserDetails
というインスタンスを返します。 UserDetails
を構築するときに、GrantedAuthority
を追加できます。
だからまず、あなたがあなたのアプリケーションコンテキストのコンフィギュレーションファイルにカスタムUserDetailsService
を宣言します:
<bean id="myCustomUDS" class="com.myapp.AppUDS" />
<sec:authentication-manager alias="authenticationManager">
<sec:authentication-provider user-service-ref="myCustomUDS">
</sec:authentication-provider>
</sec:authentication-manager>
を次に、クラス自体を記述します。
public class AppUDS implements UserDetailsService {
public UserDetails loadUserByUsername(String username)
throws UsernameNotFoundException, DataAccessException {
//create your concrete UserDetails
//add your custom role (i.e. GrantedAuthority) to that object (that will be added to all users)
//return it
}
}
非常に関連するチュートリアル:のhttp:// WWW .cleancode.co.nz/blog/937/customization-spring-security-authentication –
UserDetailServiceを実装するだけで、データベースまたはWebサービスから認証プロセスをカスタマイズすることができます。これは、Outbox of AuthenticationProvider mentation:DaoAuthenticationProviderは、AbstractUserDetailsAuthenticationProviderのconceretクラスであり、UserDetailServiceを使用してユーザー名とパスワードを提供し、ユーザー入力と比較して認証を取得します。 –