wheat 发表于 2015-12-22 15:12:46

mongodb认证源码分析——使用策略模式,网络不传输密码

  最近研究了一下mongodb的用户认证全过程,也根据产品需求对mongodb的认证做了相关的修改。现在将mongodb分片过程中mongos的认证过程全解如下。首先从整体上把握认证的全过程,以下面简单的序列图来表示,第一步:调用者调用认证接口之后,从mongos获取随机码,用随机码+用户名+密码生成digest,并且发送用户名,随机码和Digest给mongos认。第二步: Mongos收到认证消息之后,取用户名。取随机码和digest. 第三步:mongos先从其缓存中获取用户信息,获取不到,到mongod去获取保存在数据库中的用户信息。第四步:按照Driver的方式生成一个Digest 即computed。第五步:比较digest 和Computed.返回结果。
  http://blog.iyunv.com/data:image/png;base64,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

  
  Driver的代码很简单,不想多说,现在我们来看看mongos收到上面的消息之后,是怎样认证的,现将整个认证过程中重要的步骤的架构图勾画如下:
  http://blog.iyunv.com/data:image/png;base64,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
  我这里不想去解析mongodb的通信过程代码,那部分代码,各位感兴趣的话,可以去研读。Mongo驱动与mongos或者mongod建立连接之后,会通过MessagingServer::accepted而accept是一个虚函数,就会调用PortMessageServer::accepted函数创建一个线程,而其入口正是接收所有消息的PortMessageServer:: handleIncomingMsg函数,看看其收到消息之后的关键代码:



static void* handleIncomingMsg(void* arg) {
             TicketHolderReleaser connTicketReleaser( &Listener::globalTicketHolder );

            invariant(arg);
            scoped_ptr portWithHandler(
                static_cast(arg));
            MessageHandler* const handler = portWithHandler->getHandler();
            .............
            Message m;
            int64_t lastIdle = Listener::getElapsedTimeMillis();
            int64_t avgMillisBetweenIdle = 0;
            try {
                LastError * le = new LastError();
                lastError.reset( le ); // lastError now has ownership

                handler->connected(portWithHandler.get());

                while ( ! inShutdown() ) {
                  m.reset();
                  portWithHandler->psock->clearCounters();

                  if (!portWithHandler->recv(m)) {
                        if (!serverGlobalParams.quiet) {
                            int conns = Listener::globalTicketHolder.used()-1;
                            const char* word = (conns == 1 ? " connection" : " connections");
                            log()
页: [1]
查看完整版本: mongodb认证源码分析——使用策略模式,网络不传输密码