This is an automated email from the ASF dual-hosted git repository.
btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
The following commit(s) were added to refs/heads/master by this push:
new da25f27e33 [FIX] Avoid NPE on partially written users in Cassandra
users repository (#2458)
da25f27e33 is described below
commit da25f27e3377e363c776c47d13eab11306d181dc
Author: Benoit TELLIER <[email protected]>
AuthorDate: Thu Oct 17 10:57:08 2024 +0400
[FIX] Avoid NPE on partially written users in Cassandra users repository
(#2458)
---
.../main/java/org/apache/james/user/cassandra/CassandraUsersDAO.java | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git
a/server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/CassandraUsersDAO.java
b/server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/CassandraUsersDAO.java
index 9ee5f5e5f0..077a0fa4e0 100644
---
a/server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/CassandraUsersDAO.java
+++
b/server/data/data-cassandra/src/main/java/org/apache/james/user/cassandra/CassandraUsersDAO.java
@@ -111,7 +111,7 @@ public class CassandraUsersDAO implements UsersDAO {
.build());
this.listStatement = session.prepare(selectFrom(TABLE_NAME)
- .column(NAME)
+ .columns(NAME, ALGORITHM)
.build());
this.insertStatement = session.prepare(insertInto(TABLE_NAME)
@@ -173,6 +173,7 @@ public class CassandraUsersDAO implements UsersDAO {
return executor.executeSingleRow(
getUserStatement.bind()
.setString(NAME, name.asString()))
+ .filter(row -> row.getString(ALGORITHM) != null)
.map(row -> new DefaultUser(Username.of(row.getString(NAME)),
row.getString(PASSWORD),
Algorithm.of(row.getString(ALGORITHM), fallbackHashingMode),
preferredAlgorithm));
}
@@ -308,6 +309,7 @@ public class CassandraUsersDAO implements UsersDAO {
@Override
public Flux<Username> listReactive() {
return executor.executeRows(listStatement.bind())
+ .filter(row -> row.getString(ALGORITHM) != null)
.mapNotNull(row -> row.getString(NAME))
.map(Username::of);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]