首页 > 解决方案 > 在 Spring Security 中使用 Cassandra 和 WebSecurityConfigurerAdapter

问题描述

我想使用用户名和密码制作具有身份验证功能的登录表单。这是我的 MySQL 配置:

@Configuration
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter
...
@Autowired
private DataSource dataSource;
...
@Override
protected void configure(AuthenticationManagerBuilder auth)
            throws Exception {
        auth.
            jdbcAuthentication()
                .usersByUsernameQuery(usersQuery)
                .authoritiesByUsernameQuery(rolesQuery)
                .dataSource(dataSource)
                .passwordEncoder(bCryptPasswordEncoder);
    }
...
}

现在我想改用 Cassandra。如何创建 Cassandra 数据源?

除此之外,我不知道 spring-security 如何验证从登录表单提交的用户名和密码。我应该如何处理 POST 请求的功能?(例如:login()UserController

标签: spring-securitycassandra

解决方案


如果你有这样的事情

@Bean(name = "dataSource")
public DriverManagerDataSource dataSource() {
    DriverManagerDataSource driverManagerDataSource = new DriverManagerDataSource();
    driverManagerDataSource.setDriverClassName("com.mysql.jdbc.Driver");
    driverManagerDataSource.setUrl("jdbc:mysql://localhost:3306/test");
    driverManagerDataSource.setUsername("root");
    driverManagerDataSource.setPassword("password");
    return driverManagerDataSource;
}

然后你应该将你的 driverClassName 更改为org.apache.cassandra.cql.jdbc.CassandraDriver

还有你的网址;jdbc:cassandra://localhost:8988/keyspace


推荐阅读