Spring Security的默认用户架构和初始化脚本?

时间:2019-07-27 14:24:01

标签: spring spring-boot spring-security spring-data-jpa

如Spring Security文档(here)所述, spring-security-core 库提供了 UserDetailsS​​ervice 实现,这要求我们实现一些实现框架使用的数据库架构。

如果我们遵循此默认配置,则可以轻松实现JDBC身份验证,如下所示:

@Autowired
private DataSource dataSource;

@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
    auth.jdbcAuthentication()
        .dataSource(dataSource)
        .withDefaultSchema()
        .withUser(User.withUsername("user")
            .password(passwordEncoder().encode("pass"))
            .roles("USER"));
}

@Bean
public PasswordEncoder passwordEncoder() {
    return new BCryptPasswordEncoder();
}

如果我们使用的是与HSQLDB不同的内容,也许还可以重新定义一些查询。

上面显示的脚本当然会在数据库中创建用户。现在,我的问题是:是否可以用SQL脚本替换编程性数据库初始化.withUser(...)

如果我将 data.sql 脚本添加到资源中,则该脚本会在创建架构之前尝试执行并失败。

0 个答案:

没有答案