私はこのケースでUserDetailsService
インターフェースはあなたの親友になると思い
あなたはUserDetailsService
インターフェイスを実装して、モンゴDBリポジトリは、作成UserDetailsService
実装に注入されていることを確認する必要があります。その後のはorg.springframework.security.core.userdetails.User
オブジェクトを返し、モンゴDBのユーザー情報とそれを埋めるためにloadUserByUsername
メソッドを実装してみましょう。
import org.springframework.security.core.userdetails.User;
@Service
public class MyUserService implements UserDetailsService {
@Autowired
MyMongoRepo myMongoRepo;
@Override
public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException {
List<SimpleGrantedAuthority> dummyAuthorityForExample = Arrays.asList(new SimpleGrantedAuthority("ROLE_ADMIN"));
MyMongoUser mongoUser= myMongoRepo.findByUsername(s);
User user = new User(mongoUser.getUsername(), mongoUser.getPassword(),dummyAuthorityForExample);
return user;
}
}
そして最後に、だから私は実際に私のAuthenticationManagerBuilderにuserDetailsServiceなくjdbcAuthenticationを設定する必要があなたのAuthenticationManagerBuilder
@Autowired
UserDetailsService userDetailsService;
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService);
}
に
UserDetailsService
を注入? –JDBC認証は、SQL querysを使用してGERのユーザデータにしようとしますbecausはい、それはですが、モンゴデータベースは、ドキュメントベースと –
のNoSQLである実際には、これはJdbcUserDetailsManager thasのソースコードを見て証明することができUserDetailServiceは、JDBC認証のために実装され、あなたが見ることができるですどのようにquerysがSQLとしてのみ作成される –