Skip to content

Commit f866352

Browse files
fixed retain of CONNECT message in ClientConnection.
1 parent eb7c194 commit f866352

File tree

2 files changed

+32
-2
lines changed

2 files changed

+32
-2
lines changed

src/main/java/com/hivemq/mqtt/handler/connect/ConnectHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,8 +225,8 @@ public void connectSuccessfulUndecided(
225225
}
226226

227227
clientConnectionContext.proposeClientState(ClientState.AUTHENTICATED);
228-
connectAuthenticated(ctx, clientConnectionContext, connect, clientSettings);
229228
cleanChannelAttributesAfterAuth(clientConnectionContext);
229+
connectAuthenticated(ctx, clientConnectionContext, connect, clientSettings);
230230
}
231231

232232
public void connectSuccessfulAuthenticated(
@@ -236,8 +236,8 @@ public void connectSuccessfulAuthenticated(
236236
final @Nullable ModifiableClientSettingsImpl clientSettings) {
237237

238238
clientConnectionContext.proposeClientState(ClientState.AUTHENTICATED);
239-
connectAuthenticated(ctx, clientConnectionContext, connect, clientSettings);
240239
cleanChannelAttributesAfterAuth(clientConnectionContext);
240+
connectAuthenticated(ctx, clientConnectionContext, connect, clientSettings);
241241
}
242242

243243
private static void cleanChannelAttributesAfterAuth(final @NotNull ClientConnectionContext clientConnectionContext) {

src/test/java/com/hivemq/mqtt/handler/connect/ConnectHandlerTest.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1467,6 +1467,36 @@ public void test_set_client_settings() {
14671467
assertEquals(123, connect.getReceiveMaximum());
14681468
}
14691469

1470+
@Test(timeout = 5000)
1471+
public void test_connectAuthenticated_connectMessageCleared() {
1472+
createHandler();
1473+
final CONNECT connect =
1474+
new CONNECT.Mqtt5Builder().withClientIdentifier("client").withAuthMethod("someMethod").build();
1475+
final ModifiableClientSettingsImpl clientSettings = new ModifiableClientSettingsImpl(65535, null);
1476+
clientConnectionContext.setAuthConnect(connect);
1477+
1478+
handler.connectSuccessfulAuthenticated(ctx, clientConnectionContext, connect, clientSettings);
1479+
1480+
final ClientConnection clientConnection = ClientConnection.of(channel);
1481+
assertEquals(ClientState.AUTHENTICATED, clientConnection.getClientState());
1482+
assertNull(clientConnection.getAuthConnect());
1483+
}
1484+
1485+
@Test(timeout = 5000)
1486+
public void test_connectUnauthenticated_connectMessageCleared() {
1487+
createHandler();
1488+
final CONNECT connect =
1489+
new CONNECT.Mqtt5Builder().withClientIdentifier("client").withAuthMethod("someMethod").build();
1490+
final ModifiableClientSettingsImpl clientSettings = new ModifiableClientSettingsImpl(65535, null);
1491+
clientConnectionContext.setAuthConnect(connect);
1492+
1493+
handler.connectSuccessfulUndecided(ctx, clientConnectionContext, connect, clientSettings);
1494+
1495+
final ClientConnection clientConnection = ClientConnection.of(channel);
1496+
assertEquals(ClientState.AUTHENTICATED, clientConnection.getClientState());
1497+
assertNull(clientConnection.getAuthConnect());
1498+
}
1499+
14701500
@Test
14711501
public void test_start_connection_persistent() throws Exception {
14721502
final CONNECT connect = new CONNECT.Mqtt3Builder().withClientIdentifier("client")

0 commit comments

Comments
 (0)