Skip to content

Commit 63dc04d

Browse files
garyrussellartembilan
authored andcommitted
GH-1211: Add OAUTH2 Support to RabbitCFactoryBean
Resolves #1211
1 parent 033c3e2 commit 63dc04d

File tree

2 files changed

+37
-0
lines changed

2 files changed

+37
-0
lines changed

spring-rabbit/src/main/java/org/springframework/amqp/rabbit/connection/RabbitConnectionFactoryBean.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@
5151
import com.rabbitmq.client.MetricsCollector;
5252
import com.rabbitmq.client.SaslConfig;
5353
import com.rabbitmq.client.SocketConfigurator;
54+
import com.rabbitmq.client.impl.CredentialsProvider;
55+
import com.rabbitmq.client.impl.CredentialsRefreshService;
5456
import com.rabbitmq.client.impl.nio.NioParams;
5557

5658
/**
@@ -450,6 +452,24 @@ public void setPassword(String password) {
450452
this.connectionFactory.setPassword(password);
451453
}
452454

455+
/**
456+
* Set a credentials provider (e.g. OAUTH2).
457+
* @param provider the provider.
458+
* @since 2.3
459+
*/
460+
public void setCredentialsProvider(CredentialsProvider provider) {
461+
this.connectionFactory.setCredentialsProvider(provider);
462+
}
463+
464+
/**
465+
* Set a refresh service.
466+
* @param service the service.
467+
* @since 2.3
468+
*/
469+
public void setCredentialsRefreshService(CredentialsRefreshService service) {
470+
this.connectionFactory.setCredentialsRefreshService(service);
471+
}
472+
453473
/**
454474
* @param virtualHost the virtual host.
455475
* @see com.rabbitmq.client.ConnectionFactory#setVirtualHost(java.lang.String)

spring-rabbit/src/test/java/org/springframework/amqp/rabbit/connection/SSLConnectionTests.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import static org.assertj.core.api.Assertions.assertThat;
2020
import static org.assertj.core.api.Assertions.fail;
2121
import static org.mockito.BDDMockito.given;
22+
import static org.mockito.Mockito.mock;
2223
import static org.mockito.Mockito.never;
2324
import static org.mockito.Mockito.spy;
2425
import static org.mockito.Mockito.verify;
@@ -41,6 +42,8 @@
4142
import com.rabbitmq.client.Channel;
4243
import com.rabbitmq.client.Connection;
4344
import com.rabbitmq.client.ConnectionFactory;
45+
import com.rabbitmq.client.impl.CredentialsProvider;
46+
import com.rabbitmq.client.impl.CredentialsRefreshService;
4447

4548

4649

@@ -257,4 +260,18 @@ public void testTypeSettersOverrideProps() {
257260
}
258261
}
259262

263+
@Test
264+
public void credentials() {
265+
RabbitConnectionFactoryBean fb = new RabbitConnectionFactoryBean();
266+
CredentialsProvider provider = mock(CredentialsProvider.class);
267+
fb.setCredentialsProvider(provider);
268+
CredentialsRefreshService service = mock(CredentialsRefreshService.class);
269+
fb.setCredentialsRefreshService(service);
270+
assertThat(TestUtils.getPropertyValue(fb.getRabbitConnectionFactory(), "credentialsProvider"))
271+
.isSameAs(provider);
272+
assertThat(TestUtils.getPropertyValue(fb.getRabbitConnectionFactory(), "credentialsRefreshService"))
273+
.isSameAs(service);
274+
}
275+
276+
260277
}

0 commit comments

Comments
 (0)