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