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))); }
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; }
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; }
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; }
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; }
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; }