package auth.handler; import auth.IMHandler; import auth.Worker; import auth.utils.Common; import auth.utils.RouteUtil; import com.google.protobuf.Message; import io.netty.channel.ChannelHandlerContext; import org.apache.thrift.TException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import protobuf.generate.cli2srv.login.Auth; import thirdparty.redis.utils.UserUtils; import thirdparty.thrift.generate.db.user.Account; import thirdparty.thrift.utils.DBOperator; /** * Created by win7 on 2016/3/3. */ public class CLoginHandler extends IMHandler { private static final Logger logger = LoggerFactory.getLogger(CLoginHandler.class); public CLoginHandler(String userid, long netid, Message msg, ChannelHandlerContext ctx) { super(userid, netid, msg, ctx); } @Override protected void excute(Worker worker) throws TException { Auth.CLogin msg = (Auth.CLogin)_msg; Account account; if(!_jedis.exists(UserUtils.genDBKey(_userid))) { RouteUtil.sendResponse(Common.ACCOUNT_INEXIST, "Account not exists", _netid, _userid); logger.info("Account not exists, userid: {}", _userid); return; } else { byte[] userIdBytes = _jedis.hget(UserUtils.genDBKey(_userid), UserUtils.userFileds.Account.field); account = DBOperator.Deserialize(new Account(), userIdBytes); } if(account.getUserid().equals(_userid) && account.getPasswd().equals(msg.getPasswd())) { AuthServerHandler.putInUseridMap(_userid, _netid); RouteUtil.sendResponse(Common.VERYFY_PASSED, "Verify passed", _netid, _userid); logger.info("userid: {} verify passed", _userid); } else { RouteUtil.sendResponse(Common.VERYFY_ERROR, "Account not exist or passwd error", _netid, _userid); logger.info("userid: {} verify failed", _userid); return; } } }