diff --git a/src/cassandra-client/index.ts b/src/cassandra-client/index.ts index d62b280..6a9fc6c 100644 --- a/src/cassandra-client/index.ts +++ b/src/cassandra-client/index.ts @@ -48,7 +48,7 @@ export class CassandraClient extends EventEmitter { this.isInvalid = true; } - const options: cassandra.ClientOptions = { + var options: cassandra.ClientOptions = { contactPoints: config.contactPoints, socketOptions: { connectTimeout: 60000, @@ -59,6 +59,19 @@ export class CassandraClient extends EventEmitter { // }, }; + if ( config.useSSL ) { + var options: cassandra.ClientOptions = { + contactPoints: config.contactPoints, + socketOptions: { + connectTimeout: 60000, + readTimeout: 60000, + }, + sslOptions: { + rejectUnauthorized: false + } + } + } + if (config.authProvider && config.authProvider.class === "PasswordAuthenticator") { options.authProvider = new cassandra.auth.PlainTextAuthProvider(config.authProvider.username, config.authProvider.password); } @@ -73,13 +86,13 @@ export class CassandraClient extends EventEmitter { return new Promise((resolve, reject) => { if (!this.nativeClient) { - resolve(); + resolve(null); return; } try { this.nativeClient.shutdown(() => { - resolve(); + resolve(null); }); } catch (e) { reject(e); diff --git a/src/spec/tests/base/config.ts b/src/spec/tests/base/config.ts index 7a8da24..62eccdd 100644 --- a/src/spec/tests/base/config.ts +++ b/src/spec/tests/base/config.ts @@ -5,5 +5,6 @@ export const configGood: ValidatedConfigClusterItem[] = [ name: "Cluster1", contactPoints: ["127.0.0.1"], valid: true, + useSSL: false }, ]; diff --git a/src/types/index.ts b/src/types/index.ts index 8e2cb06..8b8b3ef 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -39,6 +39,7 @@ export interface PersistedConfigClusterItem { contactPoints: string[]; port?: number; authProvider?: WorkbenchConfigAuthProvider; + useSSL: boolean } export interface ValidatedConfigClusterItem extends PersistedConfigClusterItem {