Beispiel #1
0
 public static function userAuthAction($container, $request, $dbcon, $con_im, $login_account, $password, $comefrom)
 {
     $login_account = strtolower($login_account);
     try {
         $Obj = new \Justsy\BaseBundle\Login\UserProvider($container);
         $user = $Obj->loadUserByUsername($login_account, $comefrom);
         $logined = 1;
         //$container->get("logger")->err(json_encode($user));
         $user2 = new UserSession($user->getusername(), $password, $user->getusername(), array("ROLE_USER"));
         $factory = $container->get("security.encoder_factory");
         $encoder = $factory->getEncoder($user2);
         $password_enc = $encoder->encodePassword($password, $user2->getSalt());
         /*$factory = $container->get('security.encoder_factory');
              $encoder = $factory->getEncoder($user);
              $password_enc = $encoder->encodePassword($password, $user->getSalt());	     
           
              $logined= 1;*/
         if ($user->getPassword() != $password_enc) {
             //如果密码不正确时,有可能是修改了密码,只刷新了一台服务器上的缓存,其他集群环境中的还是原来的缓存
             //刷新当前服务器的人员信息才重试
             $u_staff = new \Justsy\BaseBundle\Management\Staff($dbcon, $con_im, $user->getusername(), $container->get('logger'), $container);
             $user = $u_staff->getInfo(true);
             //刷新人员信息
             //$container->get("logger")->err("refresh cache data.....");
             $user = $Obj->loadUserByUsername($login_account, $comefrom);
             if ($user->getPassword() != $password_enc) {
                 $container->get("logger")->err($login_account . "==>" . $password . "=>" . $password_enc . "=>" . $user->getPassword());
                 $re["returncode"] = ReturnCode::$ERROFUSERORPWD;
                 $logined = null;
             }
         }
         if (!empty($logined)) {
             $user->comefrom = $comefrom;
             //登录源
             //�Ǽ�seesion
             //$token = new \Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken($user, $user->getPassword(), "secured_area", $user->getRoles());
             //$container->get("security.context")->setToken($token);
             //$session = $request->getSession()->set('_security_'.'secured_area',  serialize($token));
             //$event = new \Symfony\Component\Security\Http\Event\InteractiveLoginEvent($request, $token);
             //$container->get("event_dispatcher")->dispatch("security.interactive_login", $event);
             $re["returncode"] = ReturnCode::$SUCCESS;
             $re["openid"] = $user->openid;
             $re["login_account"] = $user->getusername();
             $re["ldap_uid"] = $user->ldap_uid;
             $re["jid"] = $user->fafa_jid;
             $re["des"] = DES::encrypt($user->t_code);
             //im登录密码。生成session时对该属性解密,在些进行重新加密得到
         }
     } catch (\Symfony\Component\Security\Core\Exception\UsernameNotFoundException $e) {
         $re["returncode"] = ReturnCode::$ERROFUSERORPWD;
     } catch (\Exception $e) {
         $re["returncode"] = ReturnCode::$SYSERROR;
     }
     return $re;
 }
 public static function ssoAction($container, $con, $appid, $openid, $token, $encrypt)
 {
     $da = $con;
     //$result = Utils::do_post_request("http://www.wefafa.com", array());
     $sql = "select appkey from we_appcenter_apps where appid=?";
     $ds = $da->GetData("t", $sql, array((string) $appid));
     $result = "";
     if (count($ds["t"]["rows"]) == 0) {
         $result = "invalid appid";
     } else {
         $appkey = $ds["t"]["rows"][0]["appkey"];
         $sql = "select a.authkey,b.login_account from we_staff_account_bind a,we_staff b where a.bind_account=b.openid and a.bind_account=? and a.appid=?";
         $ds = $da->GetData("t", $sql, array((string) $openid, (string) $appid));
         if (count($ds["t"]["rows"]) > 0) {
             $row = $ds["t"]["rows"][0];
             //$authkey = $row["authkey"];
             //$authkey=DES::decrypt2($authkey,$appkey);
             //$parameter = "";
             //自动登录
             $Obj = new \Justsy\BaseBundle\Login\UserProvider($container->container);
             $user = $Obj->loadUserByUsername($row["login_account"]);
             $token = new \Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken($user, $user->getPassword(), "secured_area", $user->getRoles());
             $container->get("security.context")->setToken($token);
             $session = $container->get("request")->getSession()->set('_security_' . 'secured_area', serialize($token));
             $event = new \Symfony\Component\Security\Http\Event\InteractiveLoginEvent($container->get("request"), $token);
             $container->get("event_dispatcher")->dispatch("security.interactive_login", $event);
             //$result = Utils::do_post_request("http://we.fafatime.com", array());
             $weburl = "http://we.fafatime.com";
             return Utils::http_redirect($weburl);
         } else {
             $result = "not bind";
         }
     }
     $resp = new Response($result);
     $resp->headers->set('Content-Type', 'text/html');
     return $resp;
 }
 public function intervieweeAction($account)
 {
     $request = $this->get("request");
     $this->network_domain = $request->get("network_domain");
     $user = $this->get('security.context')->getToken()->getUser();
     $circleId = $user->get_circle_id($request->get("network_domain"));
     $this->getGroupByUser($circleId, $user->getUserName());
     $this->account = $account;
     $Obj = new UserProvider($this);
     $userinfo = $Obj->loadUserByUsername($this->account);
     $da = $this->get('we_data_access');
     $sql = "select count(1) as cnt from we_staff_atten where login_account=? and atten_id=? and atten_type='01'";
     $ds = $da->GetData("we_staff_atten", $sql, array((string) $user->getUserName(), (string) $account));
     if ($ds && $ds['we_staff_atten']['rows'][0]['cnt'] > 0) {
         $state = '1';
         $sql = "select count(1) as snt from we_staff_atten where login_account=? and atten_id=? and atten_type='01'";
         $ds = $da->GetData("we_staff_atten", $sql, array((string) $account, (string) $user->getUserName()));
         if ($ds['we_staff_atten']['recordcount'] > 0) {
             $state = '2';
         }
     } else {
         $state = '0';
     }
     $self = $user->getUserName() == $account;
     $photo_url = $this->container->getParameter('FILE_WEBSERVER_URL') . $userinfo->photo_path;
     $trend = $user->IsFunctionTrend($this->network_domain);
     $view = $user->IsFunctionViewTrend($this->network_domain);
     return $this->render('JustsyBaseBundle:PersonalHome:interviewee.html.twig', array('photo_url' => $photo_url, 'this' => $this, 'userinfo' => $userinfo, 'curr_network_domain' => $this->network_domain, 'state' => $state, 'self' => $self, 'view' => $view ? '1' : '0', 'trend' => $trend ? 1 : 0, 'group_s' => $user->IsExistsFunction("GROUP_S"), 'group_c' => $user->IsFunctionCreateGroup($this->network_domain)));
 }
Beispiel #4
0
 public static function userAuthAction($container, $request, $dbcon, $con_im, $login_account, $password, $comefrom)
 {
     //判断是门户登录还是独立登录
     if (strlen($login_account) < 32) {
         //独立登录模式
         $classname = "\\Justsy\\InterfaceBundle\\SsoAuth\\SsoWefafaMd5Auth";
         $re = call_user_func(array($classname, 'userAuthAction'), $container, $request, $dbcon, $con_im, $login_account, $password, $comefrom);
         return $re;
     }
     //解密token和pass
     $token = DES::decrypt_crv_fortoken($login_account, "cn.com.crv.ivv");
     if ($token === false) {
         $container->get("logger")->err("decrypt token error:" . $login_account);
         $re["returncode"] = ReturnCode::$SYSERROR;
         return $re;
     }
     $pass = DES::decrypt_crv_fortoken($password, "cn.com.crv.ivv");
     if ($pass === false) {
         $container->get("logger")->err("decrypt password error:" . $password);
         $re["returncode"] = ReturnCode::$SYSERROR;
         return $re;
     }
     $defaultPostURl = "http://cremobile.crc.com.cn:9090/conn/CrvSecurityWS/userresource/userprofile";
     $cacheobj = new Enterprise($dbcon, $container->get("logger"), $container);
     //
     $authConfig = $cacheobj->getUserAuth();
     $httpUrlConfig = $authConfig["ssoauthurl"];
     if (empty($httpUrlConfig)) {
         $httpUrlConfig = $defaultPostURl;
         $eno = "100001";
     } else {
         $ldapConfgiObject = json_decode($httpUrlConfig, true);
         $eno = $ldapConfgiObject["ENO"];
         $httpUrlConfig = $ldapConfgiObject["URL"];
     }
     try {
         $para = "access_token=" . $token;
         $container->get("logger")->err("SOA URL:" . $httpUrlConfig . "?" . $para);
         $postresult = Utils::getUrlContent($httpUrlConfig . "?" . $para, null);
         $container->get("logger")->err("SOA Result:" . $postresult);
         $resultObject = json_decode($postresult, true);
         //$resultObject=array("empUid"=>"test101","empName"=>"TEST101"); //集成测试
         if (!isset($resultObject["empUid"])) {
             $container->get("logger")->err("get user info error." . $postresult);
             $re["returncode"] = ReturnCode::$SYSERROR;
             return $re;
         }
         $crvuser = $resultObject["empUid"];
         $email = $resultObject["email"];
         $fafa_account = !empty($crvuser) ? strtolower($crvuser) : $email;
         $Obj = new \Justsy\BaseBundle\Login\UserProvider($container);
         $user = $Obj->loadUserByUsername($fafa_account, $comefrom);
         //�Ǽ�seesion
         $token = new \Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken($user, $user->getPassword(), "secured_area", $user->getRoles());
         $container->get("security.context")->setToken($token);
         $session = $request->getSession()->set('_security_' . 'secured_area', serialize($token));
         $event = new \Symfony\Component\Security\Http\Event\InteractiveLoginEvent($request, $token);
         $container->get("event_dispatcher")->dispatch("security.interactive_login", $event);
         $re["returncode"] = ReturnCode::$SUCCESS;
         $re["openid"] = $user->openid;
         $re["login_account"] = $fafa_account;
         $re["ldap_uid"] = $user->ldap_uid;
         $re["jid"] = $user->fafa_jid;
         //为了避免用户修改密码后只刷新了所在服务器,im密码实时获取
         $sql = "select password from users where username=?";
         $iminfo = $con_im->GetData("im", $sql, array((string) $user->fafa_jid));
         $re["des"] = count($iminfo["im"]["rows"]) > 0 ? $iminfo["im"]["rows"][0]["password"] : "";
     } catch (\Symfony\Component\Security\Core\Exception\UsernameNotFoundException $e) {
         $re["returncode"] = ReturnCode::$ERROFUSERORPWD;
     } catch (\Exception $e) {
         $container->get("logger")->err($e);
         $re["returncode"] = ReturnCode::$SYSERROR;
     }
     return $re;
 }
 public function ThirdpartyLoginAction()
 {
     $request = $this->getRequest();
     $login_account = $request->get("account");
     $password = $request->get("password");
     $result = array();
     $logintype = "ThirdLogin";
     if (empty($login_account)) {
         $result = array("success" => false, "msg" => "请输入登录账号!");
     } else {
         if (empty($password)) {
             $result = array("success" => false, "msg" => "请输入登录密码!");
         } else {
             try {
                 if (!strpos($login_account, "@")) {
                     $login_account .= "@mb.com";
                 }
                 $Obj = new \Justsy\BaseBundle\Login\UserProvider($this->container);
                 $user = $Obj->loadUserByUsername($login_account);
                 $factory = $this->get('security.encoder_factory');
                 $encoder = $factory->getEncoder($user);
                 $password = $encoder->encodePassword($password, $user->getSalt());
                 if ($user->getPassword() != $password) {
                     $result = array("success" => false, "msg" => "登录密码错误!");
                 } else {
                     $token = new \Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken($user, $user->getPassword(), "secured_area", $user->getRoles());
                     $this->get("security.context")->setToken($token);
                     $session = $request->getSession()->set('_security_' . 'secured_area', serialize($token));
                     $event = new \Symfony\Component\Security\Http\Event\InteractiveLoginEvent($this->get("request"), $token);
                     $this->get("event_dispatcher")->dispatch("security.interactive_login", $event);
                     $request->getSession()->set('comefrom', $logintype);
                     $result = array("success" => true, "msg" => "登录成功!", "openid" => $user->openid);
                 }
             } catch (\Symfony\Component\Security\Core\Exception\UsernameNotFoundException $e) {
                 $result = array("success" => false, "msg" => "未登录!");
             } catch (\Exception $e) {
                 $result = array("success" => false, "msg" => "登录失败!");
             }
         }
     }
     $response = new Response(json_encode($result));
     $response->headers->set('Content-Type', 'text/json');
     return $response;
 }
Beispiel #6
0
 private function autoLogin($res, $login_account)
 {
     $userprovider = new UserProvider($this->container);
     $user = $userprovider->loadUserByUsername($login_account);
     $token = new UsernamePasswordToken($user, $user->getPassword(), "secured_area", $user->getRoles());
     $this->get("security.context")->setToken($token);
     $session = $res->getSession()->set('_security_' . 'secured_area', serialize($token));
     return empty($user) ? false : true;
 }
Beispiel #7
0
 public static function userAuthAction($container, $request, $dbcon, $con_im, $login_account, $password, $comefrom)
 {
     $defaultPostURl = "http://10.100.20.27/CallCenter/ESB_InvokeService.ashx";
     $cacheobj = new Enterprise($dbcon, $container->get("logger"), $container);
     //
     $authConfig = $cacheobj->getUserAuth();
     $httpUrlConfig = $authConfig["ssoauthurl"];
     if (empty($httpUrlConfig)) {
         $httpUrlConfig = $defaultPostURl;
         $eno = "100001";
     } else {
         $ldapConfgiObject = json_decode($httpUrlConfig, true);
         $eno = $ldapConfgiObject["ENO"];
         $httpUrlConfig = $ldapConfgiObject["URL"];
     }
     try {
         $data = array();
         $data["loginName"] = $login_account;
         $data["password"] = $password;
         $data["isNeedSyn"] = false;
         $para = "ServiceName=WXSC_Account&MethodName=POST:JSON:UserAuthentication&Message=" . json_encode($data) . "&Version=1";
         $container->get("logger")->err("SOA URL:" . $httpUrlConfig . "?" . $para);
         $postresult = Utils::do_post_request($httpUrlConfig, $para);
         $container->get("logger")->err("SOA Result:" . $postresult);
         $resultObject = json_decode($postresult, true);
         if (!empty($resultObject["errcode"]) || $resultObject["isSuccess"] === false) {
             $re["returncode"] = ReturnCode::$ERROFUSERORPWD;
             return $re;
         }
         $mbuser = $resultObject["results"];
         $fafa_account = strtolower($login_account . "@fafatime.com");
         if (count($mbuser) > 0) {
             $mbuser = $mbuser[0];
             $nickName = isset($mbuser["nickName"]) ? $mbuser["nickName"] : $mbuser["phoneNumber"];
             $staff = new Staff($dbcon, $con_im, $fafa_account);
             $staffinfo = $staff->getInfo();
             if (empty($staffinfo)) {
                 //新用户:注册 激活
                 $enInfo = $cacheobj->getInfo($eno);
                 $active = new \Justsy\BaseBundle\Controller\ActiveController();
                 $active->setContainer($container);
                 $uid = strtolower($mbuser["id"]);
                 $active->doSave(array('account' => $fafa_account, 'realName' => $nickName, 'passWord' => $password, 'eno' => $eno, 'ename' => $enInfo["ename"], 'isNew' => '0', 'mailtype' => "1", 'isSendMessage' => "N", 'import' => '1'));
                 $sex_id = "1";
                 $duty = isset($mbuser["userRoles"]) ? $mbuser["userRoles"] : "";
                 $ldap_uid = isset($mbuse["id"]) ? $mbuser["id"] : "";
                 $tmp = "";
                 if (!empty($duty) && count($duty) > 0) {
                     for ($i = 0; $i < count($duty); $i++) {
                         $tmp = $duty[$i]["roleName"];
                         if ($tmp == "Designer") {
                             break;
                         }
                     }
                 }
                 if ($tmp == "Designer") {
                     $duty = "造型师";
                 } else {
                     $duty = "";
                 }
                 $sql = "update we_staff set ldap_uid=?,sex_id=?,duty=? where login_account=?";
                 $params = array($uid, (string) $sex_id, $duty, $fafa_account);
                 $dbcon->ExecSQL($sql, $params);
                 if (!empty($mbuser["phoneNumber"])) {
                     $staff->checkAndUpdate(null, $mbuser["phoneNumber"], null, null);
                 }
             } else {
                 $duty = isset($mbuser["userRoles"]) ? $mbuser["userRoles"] : "";
                 $ldap_uid = isset($mbuser["id"]) ? $mbuser["id"] : "";
                 $tmp = "";
                 if (!empty($duty) && count($duty) > 0) {
                     for ($i = 0; $i < count($duty); $i++) {
                         $tmp = $duty[$i]["roleName"];
                         if ($tmp == "Designer") {
                             break;
                         }
                     }
                 }
                 if ($tmp == "Designer") {
                     $duty = "造型师";
                 } else {
                     $duty = "";
                 }
                 //更新信息
                 $staff->checkAndUpdate($nickName, $mbuser["phoneNumber"], null, $duty, $ldap_uid);
             }
             //头像
             $headUrl = $mbuser["headPortrait"];
         }
         $Obj = new \Justsy\BaseBundle\Login\UserProvider($container);
         $user = $Obj->loadUserByUsername($fafa_account, $comefrom);
         //�Ǽ�seesion
         $token = new \Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken($user, $user->getPassword(), "secured_area", $user->getRoles());
         $container->get("security.context")->setToken($token);
         $session = $request->getSession()->set('_security_' . 'secured_area', serialize($token));
         $event = new \Symfony\Component\Security\Http\Event\InteractiveLoginEvent($request, $token);
         $container->get("event_dispatcher")->dispatch("security.interactive_login", $event);
         $re["returncode"] = ReturnCode::$SUCCESS;
         $re["openid"] = $user->openid;
         $re["login_account"] = $fafa_account;
         $re["ldap_uid"] = $user->ldap_uid;
         $re["jid"] = $user->fafa_jid;
         //为了避免用户修改密码后只刷新了所在服务器,im密码实时获取
         $sql = "select password from users where username=?";
         $iminfo = $con_im->GetData("im", $sql, array((string) $user->fafa_jid));
         $re["des"] = count($iminfo["im"]["rows"]) > 0 ? $iminfo["im"]["rows"][0]["password"] : "";
     } catch (\Symfony\Component\Security\Core\Exception\UsernameNotFoundException $e) {
         $re["returncode"] = ReturnCode::$ERROFUSERORPWD;
     } catch (\Exception $e) {
         $re["returncode"] = ReturnCode::$SYSERROR;
     }
     return $re;
 }
Beispiel #8
0
 public static function userAuthAction($container, $request, $dbcon, $con_im, $login_account, $password, $comefrom)
 {
     $login_account = strtolower($login_account);
     try {
         $password = strtoupper(md5($password));
         //$container->get("logger")->err($password);
         $staff = new Staff($dbcon, $con_im, strtolower($login_account));
         $user = $staff->getInfo();
         if ($user == null || $user["state_id"] != "1") {
             $re["returncode"] = ReturnCode::$ERROFUSERORPWD;
             return $re;
         }
         $login_account = $user["login_account"];
         $Obj = new \Justsy\BaseBundle\Login\UserProvider($container);
         //
         $factory = $container->get('security.encoder_factory');
         //判断是否修改过密码.这时针对从第三方注册的帐号的密码为不可解开密文的情况时,sns中的密码和t_code字段临时存储为完全相同的数据
         //程序判断到这种情况 时,需要进行内部自动更改密码操作,之前的临时数据即为用户新密码
         //$container->get("logger")->err($user["password"]."==".$user["t_code"]);
         if ($user["password"] == $user["t_code"]) {
             $tmpPass = DES::encrypt($password);
             if ($tmpPass != $user["t_code"]) {
                 $re["returncode"] = ReturnCode::$ERROFUSERORPWD;
             }
             //更新密码
             $staff->changepassword($login_account, $password, $factory);
         }
         $user = new UserSession($login_account, $password, $login_account, array("ROLE_USER"));
         $encoder = $factory->getEncoder($user);
         $password_enc = $encoder->encodePassword($password, $login_account);
         $user = $Obj->loadUserByUsername($login_account, $comefrom);
         //$container->get("logger")->err($user->getPassword()."==".$password_enc);
         $logined = 1;
         if ($user->getPassword() != $password_enc) {
             //如果密码不正确时,有可能是修改了密码,只刷新了一台服务器上的缓存,其他集群环境中的还是原来的缓存
             //刷新当前服务器的人员信息才重试
             $u_staff = new Staff($dbcon, $con_im, $user->getusername(), $container->get('logger'));
             $user = $u_staff->getInfo(true);
             //刷新人员信息
             //$container->get("logger")->err("refresh cache data.....");
             $user = $Obj->loadUserByUsername($login_account, $comefrom);
             if ($user->getPassword() != $password_enc) {
                 $container->get("logger")->err($login_account . "==>" . $password . "=>" . $password_enc . "=>" . $user->getPassword());
                 $re["returncode"] = ReturnCode::$ERROFUSERORPWD;
                 $logined = null;
             }
         }
         if (!empty($logined)) {
             //�Ǽ�seesion
             $token = new \Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken($user, $user->getPassword(), "secured_area", $user->getRoles());
             $container->get("security.context")->setToken($token);
             $session = $request->getSession()->set('_security_' . 'secured_area', serialize($token));
             $event = new \Symfony\Component\Security\Http\Event\InteractiveLoginEvent($request, $token);
             $container->get("event_dispatcher")->dispatch("security.interactive_login", $event);
             $re["returncode"] = ReturnCode::$SUCCESS;
             $re["openid"] = $user->openid;
             $re["login_account"] = $login_account;
             $re["ldap_uid"] = $user->ldap_uid;
             $re["jid"] = $user->fafa_jid;
             $re["des"] = $user->t_code;
         }
     } catch (\Symfony\Component\Security\Core\Exception\UsernameNotFoundException $e) {
         $re["returncode"] = ReturnCode::$ERROFUSERORPWD;
     } catch (\Exception $e) {
         $container->get("logger")->err($e);
         $re["returncode"] = ReturnCode::$SYSERROR;
     }
     return $re;
 }
Beispiel #9
0
 public static function tokenValidate($container, $token)
 {
     $request = $container->get("request");
     $dbcon = $container->get("we_data_access");
     $con_im = $container->get("we_data_access_im");
     $rest = "/rest/validate";
     $defaultPostURl = "https://sso.avicmall.com:8443";
     $appcodeConfig = "fafa-app";
     $appkeyConfig = "DKGHwqJ5H91noPYNYm9b8EUPQSY";
     $cacheobj = new Enterprise($dbcon, $container->get("logger"), $container);
     //
     $authConfig = $cacheobj->getUserAuth();
     $httpUrlConfig = $authConfig["ssoauthurl"];
     if (empty($httpUrlConfig)) {
         $httpUrlConfig = $defaultPostURl;
         $eno = "100001";
     } else {
         $ldapConfgiObject = json_decode($httpUrlConfig, true);
         $eno = $ldapConfgiObject["ENO"];
         $httpUrlConfig = $ldapConfgiObject["URL"];
         $appcodeConfig = $ldapConfgiObject["AppCode"];
         $appkeyConfig = $ldapConfgiObject["AppKey"];
     }
     $httpUrlConfig = $httpUrlConfig . $rest;
     try {
         $reqHeader = SsoAvicAuth::getHeaders($appcodeConfig, $appkeyConfig);
         $para = array("ticketName" => "SIAMTGT", "ticketValue" => $token);
         //$container->get("logger")->err("SOA URL:".$httpUrlConfig." Body:".json_encode($para));
         $postresult = Utils::do_post_request($httpUrlConfig, json_encode($para), $reqHeader, $container->get("logger"));
         //$container->get("logger")->err("SOA Result:".$postresult);
         $resultObject = json_decode($postresult, true);
         if (!isset($resultObject["status"])) {
             $re["returncode"] = ReturnCode::$ERROFUSERORPWD;
             $re["msg"] = "服务器异常";
             return $re;
         }
         if (!$resultObject["status"] || $resultObject["status"] == "false") {
             $re["returncode"] = ReturnCode::$ERROFUSERORPWD;
             $re["msg"] = $resultObject["message"];
             return $re;
         }
         $usertoken = $resultObject["ticketEntry"]["ticketValue"];
         $user = $resultObject["user"];
         //用户信息
         $nickName = $user["cn"];
         //获取姓名
         $phoneNumber = $user["smart-securemobile"];
         //获取手机号
         $login_account = $user["uid"];
         $eninfo = $cacheobj->getInfo($eno);
         $domain = $eninfo["edomain"];
         $domain = strpos($domain, ".") === false ? "fafatime.com" : $domain;
         $fafa_account = strtolower($login_account . "@" . $domain);
         $staff = new Staff($dbcon, $con_im, $fafa_account);
         $staffinfo = $staff->getInfo();
         if (empty($staffinfo)) {
             $password = rand(100000, 999999);
             //新用户:注册 激活
             $enInfo = $cacheobj->getInfo($eno);
             $active = new \Justsy\BaseBundle\Controller\ActiveController();
             $active->setContainer($container);
             $uid = strtolower($login_account);
             $active->doSave(array('account' => $fafa_account, 'realName' => $nickName, 'passWord' => $password, 'eno' => $eno, 'ename' => $enInfo["ename"], 'isNew' => '0', 'mailtype' => "1", 'deptid' => "100054", 'isSendMessage' => "N", 'import' => '1'));
             $sql = "update we_staff set ldap_uid=?,mobile=?,mobile_bind=? where login_account=?";
             $params = array((string) $uid, (string) $phoneNumber, (string) $phoneNumber, (string) $fafa_account);
             $dbcon->ExecSQL($sql, $params);
         } else {
             $ldap_uid = $login_account;
             //更新信息
             if ($nickName == $staffinfo["nick_name"]) {
                 $nickName = null;
             }
             if ($phoneNumber == $staffinfo["mobile"]) {
                 $phoneNumber = null;
             }
             if (!empty($nickName) || !empty($phoneNumber)) {
                 try {
                     $staff->checkAndUpdate($nickName, $phoneNumber, null, null, $ldap_uid);
                 } catch (\Exception $e) {
                     $container->get("logger")->err($e->getMessage());
                 }
             }
         }
         $Obj = new \Justsy\BaseBundle\Login\UserProvider($container);
         $user = $Obj->loadUserByUsername($fafa_account, $comefrom);
         //�Ǽ�seesion
         $token = new \Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken($user, $user->getPassword(), "secured_area", $user->getRoles());
         $container->get("security.context")->setToken($token);
         $session = $request->getSession()->set('_security_' . 'secured_area', serialize($token));
         $event = new \Symfony\Component\Security\Http\Event\InteractiveLoginEvent($request, $token);
         $container->get("event_dispatcher")->dispatch("security.interactive_login", $event);
         $re["returncode"] = ReturnCode::$SUCCESS;
         $re["openid"] = $user->openid;
         $re["login_account"] = $fafa_account;
         $re["ldap_uid"] = $user->ldap_uid;
         $re["jid"] = $user->fafa_jid;
         $re["token"] = $usertoken;
         //用户凭据
         //为了避免用户修改密码后只刷新了所在服务器,im密码实时获取
         $sql = "select password from users where username=?";
         $iminfo = $con_im->GetData("im", $sql, array((string) $user->fafa_jid));
         $re["des"] = count($iminfo["im"]["rows"]) > 0 ? $iminfo["im"]["rows"][0]["password"] : "";
     } catch (\Symfony\Component\Security\Core\Exception\UsernameNotFoundException $e) {
         $re["returncode"] = ReturnCode::$ERROFUSERORPWD;
     } catch (\Exception $e) {
         $re["msg"] = $e->getMessage();
         $re["returncode"] = ReturnCode::$SYSERROR;
     }
     return $re;
 }