Autoryzacja z dwóch tabel bazy w Spring Security

0

Cześć
Chcę umożliwić logowanie za pomocą Spring Security. Mam dwie tabele : user oraz admin. W jednej i drugiej jest nazwa użytkownika, hasło oraz rola. I chcę za pomocą jednego formularza zalogować się albo za na admina albo usera. Próbowałem tak:

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

,ale dostaję wyjątek (pomimo, że w MySQL to działa):

org.springframework.security.authentication.InternalAuthenticationServiceException: PreparedStatementCallback; bad SQL grammar [SELECT username,password FROM user WHERE username =?  UNION SELECT username,password FROM admin WHERE username =? ]; nested exception is java.sql.SQLException: No value specified for parameter 2

I nie wiem czy ten sposób jest zły czy też ja popełniłem błąd gdzieś. Bardzo prosiłbym o pomoc.
Z góry dziękuje

0

Bo SPring Security ustawia tylko jeden parametr a Ty masz przecież 2, najlepiej zrób widok w baze

0

Dziękuje Ci serdecznie @Szczery, udało się :)

Przy okazji nie chce zakładać nowego tematu. Otóż zauważyłem po uruchomieniu konfiguracji Spring Security, że dane z formularzy są wysyłane bez polskich znaków. Czy jest opcja jakoś naprawienia tego?

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