Cześć, zanlazłem fragment kodu odpowiedzialny za logowanie. Wszystko działa poprawnie ale nie mogę zrozumieć do końca jak to działa. Nie rozumiem na jakiej podstawie wiadomo jak wygląda schemat bazy danych ponieważ nigdzie w kodzie się do tego nie odnosimy.
Tutaj tworzę bean potrzebny do autoryzacji.
public class AppConfig implements WebMvcConfigurer {
@Autowired
private Environment env;
@Bean
public DataSource securityDataSource()
{
ComboPooledDataSource securityDataSource = new ComboPooledDataSource();
try
{
securityDataSource.setDriverClass(env.getProperty("jdbc.driver"));
}
catch (PropertyVetoException exc)
{
throw new RuntimeException(exc);
}
securityDataSource.setJdbcUrl(env.getProperty("jdbc.url"));
securityDataSource.setUser(env.getProperty("jdbc.user"));
securityDataSource.setPassword(env.getProperty("jdbc.password"));
securityDataSource.setInitialPoolSize(
getIntProperty("connection.pool.initialPoolSize"));
securityDataSource.setMinPoolSize(
getIntProperty("connection.pool.minPoolSize"));
securityDataSource.setMaxPoolSize(
getIntProperty("connection.pool.maxPoolSize"));
securityDataSource.setMaxIdleTime(
getIntProperty("connection.pool.maxIdleTime"));
return securityDataSource;
}
private int getIntProperty(String propName) {
String propVal = env.getProperty(propName);
int intPropVal = Integer.parseInt(propVal);
return intPropVal;
}
}
A tu fragment odpowiadający za autoryzację.
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception
{
auth.jdbcAuthentication().dataSource(securityDataSource);
}
Ten przykład jest popularny ale nie mogę zrozumieć na jakiej podstawie z kod wie jak wygląda baza danych i gdzie dokonuje odpytania odpowiednich tabel. Może ktoś coś podpowie.