Без какой-либо конфигурации Spring Security по умолчанию читает пользователя из файла свойств. Но если вы добавите UserDetailsService
, это означает, что вы хотите читать пользователей, используя метод интерфейса loadUserByUsername
. Этот метод может быть реализован, например, для чтения пользователей из базы данных
. Если вы хотите, чтобы ваш администратор из application.properties
считался пользователем, вы можете создать его в своей реализации UserDetailsService
:
import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;
@Service
public class MyUserDetailsService implements UserDetailsService {
@Value("${spring.security.user.name}")
private String adminUserName;
@Value("${spring.security.user.password}")
private String adminPassword;
@Value("${spring.security.user.roles}")
private String adminRole;
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
if(username.equals(adminPassword)) {
return User.builder().username(adminUserName).password(adminPassword).roles(adminRole).build();
}
//return your other users from database here
return null;
}
}