2015-12-06 3 views
0

Я изо всех сил пытаюсь подключить конфигурацию HSQLDB и Spring Security. Я использую Spring Data JPA, и я уже поставил некоторые данные. Как настроить этот методИнтеграция Spring Security с HSQLDB

@Autowired 
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { 
    auth 
      .inMemoryAuthentication() 
      .withUser("user").password("password").roles("ADMIN"); 

} 

соединиться с моим HSQLDB и получить имя пользователя, пароль и роли? Вот github


Я понял это код, который должен быть добавлен в:

@Bean 
public DataSource dataSource(){ 
    EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder(); 
    EmbeddedDatabase db = builder.setType(EmbeddedDatabaseType.HSQL) 
      .build(); 
    return db; 
} 

и связь:

@Autowired 
public void configureGlobal(AuthenticationManagerBuilder auth, DataSource dataSource) throws Exception {  auth.jdbcAuthentication().dataSource(dataSource).usersByUsernameQuery("select u.username, u.password, 1 from User u where u.username = ?") 
      .authoritiesByUsernameQuery("SELECT u.username, role.name FROM User u JOIN user_roles ON u.id = user_roles.users_Id JOIN Role on user_roles.roles_Id = role.id WHERE u.username = ? ").passwordEncoder(new BCryptPasswordEncoder()); 

} 

ответ

0
@Autowire 
private UserDetailsService userDetailsService; 

Реализовать класс UserDetailsService и overide loadUserByUsername() метод, в котором вы будете загружать пользовательские идентификационные данные от вас баз данных с использованием методов репозитория (как вы используете JPA весной данных)

@Autowire 
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { 
     auth 
      .userDetailsService(userDetailsService); 
    } 
+0

Я знаю, что на сайте вы взяли его с, но я пытался сделать это так и до сих пор не работают – kamk

+0

Могла бы вы предоставили более подробную конфигурацию код, который будет полезен – MasterCode

Смежные вопросы