@Override protected void channelRead0(ChannelHandlerContext ctx, ResetPasswordMessage message) { String[] messageParts = message.body.split(StringUtils.BODY_SEPARATOR_STRING); switch (messageParts[0]) { case "start" : if (messageParts.length < 3) { log.debug("Wrong income message format."); ctx.writeAndFlush(illegalCommand(message.id), ctx.voidPromise()); return; } sendResetEMail(ctx, messageParts[1], messageParts[2], message.id); break; case "verify" : if (messageParts.length < 2) { log.debug("Wrong income message format."); ctx.writeAndFlush(illegalCommand(message.id), ctx.voidPromise()); return; } verifyToken(ctx, messageParts[1], message.id); break; case "reset" : if (messageParts.length < 3) { log.debug("Wrong income message format."); ctx.writeAndFlush(illegalCommand(message.id), ctx.voidPromise()); return; } reset(ctx, messageParts[1], messageParts[2], message.id); break; } }
private void login(ChannelHandlerContext ctx, int messageId, User user, Version version) { var pipeline = (DefaultChannelPipeline) ctx.pipeline(); cleanPipeline(pipeline); var appStateHolder = new MobileStateHolder(user, version); pipeline.addLast("AAppHandler", new MobileHandler(holder, appStateHolder)); var channel = ctx.channel(); //todo back compatibility code. remove in future. if (user.region == null || user.region.isEmpty()) { user.region = holder.props.region; } var session = holder.sessionDao.getOrCreateSessionByUser(appStateHolder.userKey, channel.eventLoop()); if (session.isSameEventLoop(channel)) { completeLogin(channel, session, user, messageId, version); } else { log.debug("Re registering app channel. {}", ctx.channel()); ReregisterChannelUtil.reRegisterChannel(ctx, session, channelFuture -> completeLogin(channelFuture.channel(), session, user, messageId, version)); } }
holder.props.getIntProperty("https.port"), holder.transportTypeHolder); var appChannelStateHandler = new MobileChannelStateHandler(holder.sessionDao); var registerHandler = new MobileRegisterHandler(holder); MobileLoginHandler appLoginHandler = new MobileLoginHandler(holder); var appShareLoginHandler = new MobileShareLoginHandler(holder); var userNotLoggedHandler = new UserNotLoggedHandler(); var getServerHandler = new MobileGetServerHandler(holder); var resetPasswordHandler = new MobileResetPasswordHandler(holder);