refactored
This commit is contained in:
parent
bff16ddafd
commit
16d82e77fc
@ -363,31 +363,31 @@ public class MqttTransportHandler extends ChannelInboundHandlerAdapter implement
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void processAuthTokenConnect(ChannelHandlerContext ctx, MqttConnectMessage msg) {
|
private void processAuthTokenConnect(ChannelHandlerContext ctx, MqttConnectMessage connectMessage) {
|
||||||
String userName = msg.payload().userName();
|
String userName = connectMessage.payload().userName();
|
||||||
log.info("[{}] Processing connect msg for client with user name: {}!", sessionId, userName);
|
log.info("[{}] Processing connect msg for client with user name: {}!", sessionId, userName);
|
||||||
if (StringUtils.isEmpty(userName)) {
|
if (StringUtils.isEmpty(userName)) {
|
||||||
ctx.writeAndFlush(createMqttConnAckMsg(CONNECTION_REFUSED_BAD_USER_NAME_OR_PASSWORD, msg));
|
ctx.writeAndFlush(createMqttConnAckMsg(CONNECTION_REFUSED_BAD_USER_NAME_OR_PASSWORD, connectMessage));
|
||||||
ctx.close();
|
ctx.close();
|
||||||
} else {
|
} else {
|
||||||
transportService.process(ValidateDeviceTokenRequestMsg.newBuilder().setToken(userName).build(),
|
transportService.process(ValidateDeviceTokenRequestMsg.newBuilder().setToken(userName).build(),
|
||||||
new TransportServiceCallback<ValidateDeviceCredentialsResponseMsg>() {
|
new TransportServiceCallback<ValidateDeviceCredentialsResponseMsg>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(ValidateDeviceCredentialsResponseMsg responseMsg) {
|
public void onSuccess(ValidateDeviceCredentialsResponseMsg msg) {
|
||||||
onValidateDeviceResponse(responseMsg, ctx, msg);
|
onValidateDeviceResponse(msg, ctx, connectMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onError(Throwable e) {
|
public void onError(Throwable e) {
|
||||||
log.trace("[{}] Failed to process credentials: {}", address, userName, e);
|
log.trace("[{}] Failed to process credentials: {}", address, userName, e);
|
||||||
ctx.writeAndFlush(createMqttConnAckMsg(MqttConnectReturnCode.CONNECTION_REFUSED_SERVER_UNAVAILABLE, msg));
|
ctx.writeAndFlush(createMqttConnAckMsg(MqttConnectReturnCode.CONNECTION_REFUSED_SERVER_UNAVAILABLE, connectMessage));
|
||||||
ctx.close();
|
ctx.close();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void processX509CertConnect(ChannelHandlerContext ctx, X509Certificate cert, MqttConnectMessage msg) {
|
private void processX509CertConnect(ChannelHandlerContext ctx, X509Certificate cert, MqttConnectMessage connectMessage) {
|
||||||
try {
|
try {
|
||||||
if(!context.isSkipValidityCheckForClientCert()){
|
if(!context.isSkipValidityCheckForClientCert()){
|
||||||
cert.checkValidity();
|
cert.checkValidity();
|
||||||
@ -397,19 +397,19 @@ public class MqttTransportHandler extends ChannelInboundHandlerAdapter implement
|
|||||||
transportService.process(ValidateDeviceX509CertRequestMsg.newBuilder().setHash(sha3Hash).build(),
|
transportService.process(ValidateDeviceX509CertRequestMsg.newBuilder().setHash(sha3Hash).build(),
|
||||||
new TransportServiceCallback<ValidateDeviceCredentialsResponseMsg>() {
|
new TransportServiceCallback<ValidateDeviceCredentialsResponseMsg>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(ValidateDeviceCredentialsResponseMsg responseMsg) {
|
public void onSuccess(ValidateDeviceCredentialsResponseMsg msg) {
|
||||||
onValidateDeviceResponse(responseMsg, ctx, msg);
|
onValidateDeviceResponse(msg, ctx, connectMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onError(Throwable e) {
|
public void onError(Throwable e) {
|
||||||
log.trace("[{}] Failed to process credentials: {}", address, sha3Hash, e);
|
log.trace("[{}] Failed to process credentials: {}", address, sha3Hash, e);
|
||||||
ctx.writeAndFlush(createMqttConnAckMsg(MqttConnectReturnCode.CONNECTION_REFUSED_SERVER_UNAVAILABLE, msg));
|
ctx.writeAndFlush(createMqttConnAckMsg(MqttConnectReturnCode.CONNECTION_REFUSED_SERVER_UNAVAILABLE, connectMessage));
|
||||||
ctx.close();
|
ctx.close();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
ctx.writeAndFlush(createMqttConnAckMsg(CONNECTION_REFUSED_NOT_AUTHORIZED, msg));
|
ctx.writeAndFlush(createMqttConnAckMsg(CONNECTION_REFUSED_NOT_AUTHORIZED, connectMessage));
|
||||||
ctx.close();
|
ctx.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -513,36 +513,36 @@ public class MqttTransportHandler extends ChannelInboundHandlerAdapter implement
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onValidateDeviceResponse(ValidateDeviceCredentialsResponseMsg responseMsg, ChannelHandlerContext ctx, MqttConnectMessage msg) {
|
private void onValidateDeviceResponse(ValidateDeviceCredentialsResponseMsg msg, ChannelHandlerContext ctx, MqttConnectMessage connectMessage) {
|
||||||
if (!responseMsg.hasDeviceInfo()) {
|
if (!msg.hasDeviceInfo()) {
|
||||||
ctx.writeAndFlush(createMqttConnAckMsg(CONNECTION_REFUSED_NOT_AUTHORIZED, msg));
|
ctx.writeAndFlush(createMqttConnAckMsg(CONNECTION_REFUSED_NOT_AUTHORIZED, connectMessage));
|
||||||
ctx.close();
|
ctx.close();
|
||||||
} else {
|
} else {
|
||||||
deviceSessionCtx.setDeviceInfo(responseMsg.getDeviceInfo());
|
deviceSessionCtx.setDeviceInfo(msg.getDeviceInfo());
|
||||||
sessionInfo = SessionInfoProto.newBuilder()
|
sessionInfo = SessionInfoProto.newBuilder()
|
||||||
.setNodeId(context.getNodeId())
|
.setNodeId(context.getNodeId())
|
||||||
.setSessionIdMSB(sessionId.getMostSignificantBits())
|
.setSessionIdMSB(sessionId.getMostSignificantBits())
|
||||||
.setSessionIdLSB(sessionId.getLeastSignificantBits())
|
.setSessionIdLSB(sessionId.getLeastSignificantBits())
|
||||||
.setDeviceIdMSB(responseMsg.getDeviceInfo().getDeviceIdMSB())
|
.setDeviceIdMSB(msg.getDeviceInfo().getDeviceIdMSB())
|
||||||
.setDeviceIdLSB(responseMsg.getDeviceInfo().getDeviceIdLSB())
|
.setDeviceIdLSB(msg.getDeviceInfo().getDeviceIdLSB())
|
||||||
.setTenantIdMSB(responseMsg.getDeviceInfo().getTenantIdMSB())
|
.setTenantIdMSB(msg.getDeviceInfo().getTenantIdMSB())
|
||||||
.setTenantIdLSB(responseMsg.getDeviceInfo().getTenantIdLSB())
|
.setTenantIdLSB(msg.getDeviceInfo().getTenantIdLSB())
|
||||||
.setDeviceName(responseMsg.getDeviceInfo().getDeviceName())
|
.setDeviceName(msg.getDeviceInfo().getDeviceName())
|
||||||
.setDeviceType(responseMsg.getDeviceInfo().getDeviceType())
|
.setDeviceType(msg.getDeviceInfo().getDeviceType())
|
||||||
.build();
|
.build();
|
||||||
transportService.process(sessionInfo, DefaultTransportService.getSessionEventMsg(SessionEvent.OPEN), new TransportServiceCallback<Void>() {
|
transportService.process(sessionInfo, DefaultTransportService.getSessionEventMsg(SessionEvent.OPEN), new TransportServiceCallback<Void>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(Void response) {
|
public void onSuccess(Void response) {
|
||||||
transportService.registerAsyncSession(sessionInfo, MqttTransportHandler.this);
|
transportService.registerAsyncSession(sessionInfo, MqttTransportHandler.this);
|
||||||
checkGatewaySession();
|
checkGatewaySession();
|
||||||
ctx.writeAndFlush(createMqttConnAckMsg(CONNECTION_ACCEPTED, msg));
|
ctx.writeAndFlush(createMqttConnAckMsg(CONNECTION_ACCEPTED, connectMessage));
|
||||||
log.info("[{}] Client connected!", sessionId);
|
log.info("[{}] Client connected!", sessionId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onError(Throwable e) {
|
public void onError(Throwable e) {
|
||||||
log.warn("[{}] Failed to submit session event", sessionId, e);
|
log.warn("[{}] Failed to submit session event", sessionId, e);
|
||||||
ctx.writeAndFlush(createMqttConnAckMsg(MqttConnectReturnCode.CONNECTION_REFUSED_SERVER_UNAVAILABLE, msg));
|
ctx.writeAndFlush(createMqttConnAckMsg(MqttConnectReturnCode.CONNECTION_REFUSED_SERVER_UNAVAILABLE, connectMessage));
|
||||||
ctx.close();
|
ctx.close();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user