@Override
protected void channelRead0(ChannelHandlerContext ctx, LoginMessage message) {
String token = message.body.trim();
TokenValue tokenValue = holder.tokenManager.getTokenValueByToken(token);
if (tokenValue == null) {
if (token.length() != 32 || token.contains(StringUtils.BODY_SEPARATOR_STRING)) {
log.debug("HardwareLogic token is invalid. Token '{}', '{}'", token, ctx.channel().remoteAddress());
ctx.writeAndFlush(invalidToken(message.id), ctx.voidPromise());
} else {
checkTokenOnOtherServer(ctx, token, message.id);
}
return;
}
User user = tokenValue.user;
Device device = tokenValue.device;
DashBoard dash = tokenValue.dash;
if (tokenValue.isTemporary()) {
holder.tokenManager.updateRegularCache(token, tokenValue);
user.profile.addDevice(dash, device);
user.lastModifiedTs = System.currentTimeMillis();
}
createSessionAndReregister(ctx, user, dash, device, message.id);
}