Spring MockMVC ile JUnit testlerinde, Spring Security kullanıcısı olarak kimlik doğrulaması için iki yöntem vardır: @WithMockUser
, sağlanan kimlik bilgileriyle kukla bir kullanıcı oluşturur, @WithUserDetails
, bir kullanıcının adını alır ve özel bir UserDetailsService
(UserDetailsServiceImpl
) ile doğru özel UserDetails
uygulamasına giderir.Spring Security, JUnit: @WithUserDetails, kullanıcı tarafından oluşturuldu @Before
Benim durumumda, UserDetailsService
veritabanından bir kullanıcıyı yükler. Kullanmak istediğim kullanıcı, test paketinin @Before
yöntemine eklenmiştir.
Ancak, UserDetailsServiceImpl
benim kullanıcı bulamıyor. Benim @Before
yılında
, böyle kullanıcıyı ekleyin:
User u = new User();
u.setEMail("[email protected]");
u = userRepository.save(u);
Ve içinde
UserDetailsServiceImpl
:
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
User user = this.userRepository.findOneByEMail(username);
if (user == null)
throw new UsernameNotFoundException(String.format("No user found with username '%s'.", username));
return user;
}
nasıl @WithUserDetails
ile @Before
oluşturulan bir hesap kullanabilir?