spring security sprawdzenie czy aktywny

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:

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

pozdrawiam.

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:

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

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