Skip to content

Commit 3c91ade

Browse files
committed
chore: Use domain name from R2DBC connections when configuring the connector.
1 parent 9c871d2 commit 3c91ade

File tree

2 files changed

+44
-1
lines changed

2 files changed

+44
-1
lines changed

r2dbc/core/src/main/java/com/google/cloud/sql/core/GcpConnectionFactoryProvider.java

+12-1
Original file line numberDiff line numberDiff line change
@@ -124,11 +124,22 @@ public ConnectionFactory create(ConnectionFactoryOptions connectionFactoryOption
124124
? RefreshStrategy.LAZY
125125
: RefreshStrategy.BACKGROUND;
126126

127+
final String r2dbcHostname = (String) connectionFactoryOptions.getRequiredValue(HOST);
128+
final String cloudSqlInstance;
129+
final String domainName;
130+
if (CloudSqlInstanceName.isValidInstanceName(r2dbcHostname)) {
131+
cloudSqlInstance = r2dbcHostname;
132+
domainName = null;
133+
} else {
134+
cloudSqlInstance = null;
135+
domainName = r2dbcHostname;
136+
}
137+
127138
Builder optionBuilder = createBuilder(connectionFactoryOptions);
128-
String cloudSqlInstance = (String) connectionFactoryOptions.getRequiredValue(HOST);
129139
ConnectionConfig config =
130140
new ConnectionConfig.Builder()
131141
.withCloudSqlInstance(cloudSqlInstance)
142+
.withDomainName(domainName)
132143
.withAuthType(enableIamAuth ? AuthType.IAM : AuthType.PASSWORD)
133144
.withIpTypes(ipTypes)
134145
.withNamedConnector(namedConnector)

r2dbc/core/src/test/java/com/google/cloud/sql/core/GcpConnectionFactoryProviderTest.java

+32
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@
3333
import com.google.common.util.concurrent.Futures;
3434
import com.google.common.util.concurrent.ListenableFuture;
3535
import com.google.common.util.concurrent.ListeningScheduledExecutorService;
36+
import io.netty.handler.ssl.SslContextBuilder;
37+
import io.r2dbc.spi.ConnectionFactory;
38+
import io.r2dbc.spi.ConnectionFactoryOptions;
3639
import java.io.IOException;
3740
import java.math.BigInteger;
3841
import java.security.GeneralSecurityException;
@@ -49,6 +52,7 @@
4952
import java.util.Base64;
5053
import java.util.Date;
5154
import java.util.concurrent.ExecutionException;
55+
import java.util.function.Function;
5256
import javax.security.auth.x500.X500Principal;
5357
import org.bouncycastle.cert.X509CertificateHolder;
5458
import org.bouncycastle.cert.jcajce.JcaX509CertificateConverter;
@@ -186,4 +190,32 @@ public void setup() throws GeneralSecurityException {
186190
InternalConnectorRegistry.DEFAULT_CONNECT_TIMEOUT_MS,
187191
defaultExecutor);
188192
}
193+
194+
public void testThings(){
195+
GcpConnectionFactoryProvider provider = new GcpConnectionFactoryProvider() {
196+
@Override
197+
ConnectionFactory tcpSocketConnectionFactory(ConnectionConfig config,
198+
ConnectionFactoryOptions.Builder optionBuilder,
199+
Function<SslContextBuilder, SslContextBuilder> customizer) {
200+
return null;
201+
}
202+
203+
@Override
204+
ConnectionFactory unixSocketConnectionFactory(ConnectionFactoryOptions.Builder optionBuilder,
205+
String socket) {
206+
return null;
207+
}
208+
209+
@Override
210+
ConnectionFactoryOptions.Builder createBuilder(
211+
ConnectionFactoryOptions connectionFactoryOptions) {
212+
return null;
213+
}
214+
215+
@Override
216+
boolean supportedProtocol(String protocol) {
217+
return false;
218+
}
219+
}
220+
}
189221
}

0 commit comments

Comments
 (0)