Skip to content

Commit cdb80e8

Browse files
eddumelendeztzolov
authored andcommitted
Fix ChromaDB basic authentication
Currently, `username` is added as a password in `BasicAuthenticationInterceptor`. This commit fixes the issue and also make sure the integration test setup is correct.
1 parent 93bd502 commit cdb80e8

File tree

4 files changed

+6
-8
lines changed

4 files changed

+6
-8
lines changed

vector-stores/spring-ai-chroma/src/main/java/org/springframework/ai/chroma/ChromaApi.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ public ChromaApi withKeyToken(String keyToken) {
8282
* @param password Credentials password.
8383
*/
8484
public ChromaApi withBasicAuthCredentials(String username, String password) {
85-
this.restTemplate.getInterceptors().add(new BasicAuthenticationInterceptor(username, username));
85+
this.restTemplate.getInterceptors().add(new BasicAuthenticationInterceptor(username, password));
8686
return this;
8787
}
8888

vector-stores/spring-ai-chroma/src/test/java/org/springframework/ai/vectorstore/BasicAuthChromaWhereIT.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,20 +20,19 @@
2020

2121
import org.junit.jupiter.api.Test;
2222
import org.testcontainers.chromadb.ChromaDBContainer;
23-
import org.testcontainers.images.builder.Transferable;
2423
import org.testcontainers.junit.jupiter.Container;
2524
import org.testcontainers.junit.jupiter.Testcontainers;
2625

2726
import org.springframework.ai.chroma.ChromaApi;
2827
import org.springframework.ai.document.Document;
2928
import org.springframework.ai.embedding.EmbeddingClient;
3029
import org.springframework.ai.openai.api.OpenAiApi;
31-
import org.springframework.ai.vectorstore.ChromaVectorStore;
3230
import org.springframework.ai.openai.OpenAiEmbeddingClient;
3331
import org.springframework.boot.SpringBootConfiguration;
3432
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
3533
import org.springframework.context.annotation.Bean;
3634
import org.springframework.web.client.RestTemplate;
35+
import org.testcontainers.utility.MountableFile;
3736

3837
import static org.assertj.core.api.Assertions.assertThat;
3938

@@ -56,11 +55,11 @@ public class BasicAuthChromaWhereIT {
5655
*/
5756
@Container
5857
static ChromaDBContainer chromaContainer = new ChromaDBContainer("ghcr.io/chroma-core/chroma:0.4.22")
59-
.withEnv("CHROMA_SERVER_AUTH_CREDENTIALS_FILE", "server.htpasswd")
58+
.withEnv("CHROMA_SERVER_AUTH_CREDENTIALS_FILE", "/chroma/server.htpasswd")
6059
.withEnv("CHROMA_SERVER_AUTH_CREDENTIALS_PROVIDER",
6160
"chromadb.auth.providers.HtpasswdFileServerAuthCredentialsProvider")
6261
.withEnv("CHROMA_SERVER_AUTH_PROVIDER", "chromadb.auth.basic.BasicAuthServerProvider")
63-
.withCopyToContainer(Transferable.of("src/test/resources/server.htpasswd"), "server.htpasswd");
62+
.withCopyToContainer(MountableFile.forClasspathResource("server.htpasswd"), "/chroma/server.htpasswd");
6463

6564
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
6665
.withUserConfiguration(TestApplication.class)
@@ -103,7 +102,7 @@ public RestTemplate restTemplate() {
103102
@Bean
104103
public ChromaApi chromaApi(RestTemplate restTemplate) {
105104
return new ChromaApi(chromaContainer.getEndpoint(), restTemplate).withBasicAuthCredentials("admin",
106-
"admin");
105+
"password");
107106
}
108107

109108
@Bean

vector-stores/spring-ai-chroma/src/test/java/org/springframework/ai/vectorstore/TokenSecuredChromaWhereIT.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import org.springframework.ai.document.Document;
2828
import org.springframework.ai.embedding.EmbeddingClient;
2929
import org.springframework.ai.openai.api.OpenAiApi;
30-
import org.springframework.ai.vectorstore.ChromaVectorStore;
3130
import org.springframework.ai.openai.OpenAiEmbeddingClient;
3231
import org.springframework.boot.SpringBootConfiguration;
3332
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
admin:$2y$05$fM.6b629s3L6L8RcA.kqg.BmxEzwB9t4MpGux62MEXNMJ9M7w8CY2
1+
admin:$2y$05$qSmQb0YJmaLRIhbT7MRBRu6bPK267dxkzLikr6WA/7JfGERc7dKkW
22

0 commit comments

Comments
 (0)