【问题标题】:Integrating Spring Security with HSQLDB将 Spring Security 与 HSQLDB 集成
【发布时间】:2016-03-11 08:03:40
【问题描述】:

我很难连接我的 HSQLDB 和 Spring Security 配置。我正在使用 Spring Data JPA,并且已经放入了一些数据。 如何配置此方法

@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());

}

【问题讨论】:

    标签: spring-mvc spring-security spring-boot hsqldb


    【解决方案1】:
    @Autowire
    private UserDetailsService userDetailsService;
    

    实现 UserDetailsS​​ervice 类并覆盖 loadUserByUsername() 方法,您将使用存储库方法从数据库加载用户身份验证详细信息(就像您使用 spring data jpa 一样)

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

    【讨论】:

    • 我知道您是从哪个网站获取的,但我尝试过这样做,但仍然无法正常工作
    • 能否提供更多有用的配置代码
    猜你喜欢
    • 1970-01-01
    • 2014-05-22
    • 1970-01-01
    • 2014-05-16
    • 1970-01-01
    • 2015-11-13
    • 2012-08-17
    • 2010-09-18
    • 2014-06-19
    相关资源
    最近更新 更多