spring-security - 在 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
)
解决方案
如果你有这样的事情
@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
推荐阅读
- python - 每次需要重新启动服务器时,Django 都没有检测到 python 代码的变化(runserver 中的问题)
- reactjs - 将数据传递给组件时出现未定义的错误
- angular - 使用 Angular 材质菜单的流畅上下文菜单行为?
- java-stream - 将 AutoCloseable、Iterable 类转换为 Stream
- javascript - 我如何获得状态改变的元素
- scala - 获取 Akka ask 的目标/收件人
- azure - 是否可以使用托管标识从 C# 控制台代码连接 Azure 文件共享(存储帐户)
- image - 根据这些统计数据,为什么这么多 GPU 不支持常见图像类型的传输操作?
- reactjs - 如何在 React 的一个 ReactDom 行中渲染多个 js 文件(目标容器不是 React 中的 DOM 元素)
- c - C — 为什么 «write» 不能写入文件?