spring security и authenticationManagerBuilder.inMemoryAuthentication()

 
 
 
Сообщения:17
Доброго дня.

Ниже приведен пример кода настройки java based spring security basic authentication.

Возник вопрос: почему я не могу обойтись без метода configureGlobal(AuthenticationManagerBuilder auth)? Ведь тогда при каждой регистрации юзера его надо добавлять через configureGlobal(), но я думал, что, переопределив метод loadUserByUsername() интерфейса UserDetailsService, все это происходит под капотом и проверяется юзер, полученный по введенному логину из базы... Как тогда сделать так, чтобы spring брал юзера из базы а не из configureGlobal() метода на проверку?

Спасибо.


@Configuration
@ComponentScan("com.concretepage")
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
	@Override
	protected void configure(HttpSecurity http) throws Exception {
		http.authorizeRequests().antMatchers("/info/**").hasAnyRole("ADMIN","USER").
		and().formLogin();
	}
	@Autowired
	public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
		  auth.inMemoryAuthentication().withUser("ram").password("ram123").roles("ADMIN");
		  auth.inMemoryAuthentication().withUser("ravan").password("ravan123").roles("USER");
		  auth.inMemoryAuthentication().withUser("kans").password("kans123").roles("USER");
	}
}   
 
 
Сообщения:16
 @Autowired
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
        auth.userDetailsService(authenticationService);
    }



@Service
public class AuthenticationService implements UserDetailsService {

	@Autowired
	UserService userService;


	public UserDetails loadUserByUsername(String login) throws UsernameNotFoundException {
		User user = userService.getUserByLogin(login);
		if (user == null) {
			throw new UsernameNotFoundException("Login " + login + " not found");
		}
		return user;
	}
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет