spring security sprawdzenie czy aktywny

spring security sprawdzenie czy aktywny
  • Rejestracja: dni
  • Ostatnio: dni
0

cześć,
zrobiłem proste logowanie takie jak tutaj w poradniku: https://spring.io/guides/gs/securing-web/
ale trochę go zmodyfikowałem tzn. dodałem klasę User i bazę danych.
User ma dodatkowo pole enabled i metodę isEnabled() i chciałbym przed każdym logowaniem sprawdzić czy dany użytkownik jest aktywny, jak to zrobić?

moj login to tylko tyle:

Kopiuj
    @GetMapping("/login")
    public String login() {
        return "/login";
    }

pozdrawiam.

Pieter24
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 90
0

Jeżeli korzystasz z bazy danych do logowania to skonfiguruj SprinSecurity tak aby zaciągał dane do logowania z bazy danych ( tam właśnie musisz wczytać 3 pola - login, password i enabled). W ten sposób będziesz miał automatyczne sprawdzenie czy użytkownik jest enabled. Konfigurację tą robi się poprzez rozszerzenie klasy WebSecurityConfigurerAdapter i nadpisanie metody protected void configure(AuthenticationManagerBuilder auth). Poczytaj sobie o jdbc i springsecurity. Przykładowa konfiguracja wygląda tak:

Kopiuj
auth.jdbcAuthentication().dataSource(dataSource).passwordEncoder(bCryptPasswordEncoder())
		.usersByUsernameQuery("SELECT email,password, enabled FROM users WHERE email=?")
		.authoritiesByUsernameQuery("SELECT email, role FROM users WHERE email=?");

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.