Spring Security - Basic Authentication + Baza Danych

0

Cześć, robię prostą aplikację w Springu (MySQL + REST + Angular) i chciałem dodać prostą autoryzację użytkowników. Udało mi się to zrobić za pomocą Basic Authentication, ale tylko dla statycznych wartości.
Tutaj kod mojej konfiguracji zabezpieczeń:

 
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {

	@Override
	protected void configure(AuthenticationManagerBuilder auth) throws Exception {
		auth.inMemoryAuthentication().withUser("login").password("password").roles("USER");
	}

	@Override
	protected void configure(HttpSecurity http) throws Exception {
		http.authorizeRequests().anyRequest().fullyAuthenticated();
		http.httpBasic();
		http.csrf().disable();
	}
}

I tutaj moje pytanie, jak zmienić konfigurację, żeby sprawdzać w bazie czy istnieje taki login, a następnie sprawdzić czy podane hasło i to w bazie się zgadzają? Nie zależy mi na rolach czy hashowaniu hasła.

Z góry dziękuję za pomoc.

0

Dzięki, fajny tutorial, tylko zrobiony na JSP, których nie używałem. Nie da rady zrobić tego bez JSP?

0

Jednak mój błąd, skupiłem się na JSP, a wystarczyło zrobić tabele jak w tutorialu i skopiować konfigurację.
Teraz moja konfiguracja wygląda tak i logowanie na podstawie bazy też już działa:

 
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

	@Autowired
	DataSource dataSource;

	@Autowired
	public void configAuthentication(AuthenticationManagerBuilder auth) throws Exception {
		auth.jdbcAuthentication().dataSource(dataSource)
				.usersByUsernameQuery("SELECT username, password, enabled FROM users WHERE username=?")
				.authoritiesByUsernameQuery("SELECT username, role FROM user_roles WHERE username=?");
	}

	@Override
	protected void configure(HttpSecurity http) throws Exception {
		http.authorizeRequests().anyRequest().fullyAuthenticated();
        http.httpBasic();
        http.csrf().disable();
	}
}

Mam jeszcze pytanko, czy to zapytanie można zrobić po swojemu? Bo jak usunąłem z bazy kolumnę enabled i z zapytania też, to wyskakiwał błąd, tak jakby struktura bazy i format zapytania był z góry narzucony.

1 użytkowników online, w tym zalogowanych: 0, gości: 1