Example #1
0
 public static function getInstance($sNamespace = null)
 {
     if (!isset(self::$instance)) {
         self::$instance = new self($sNamespace);
     }
     return self::$instance;
 }
Example #2
0
 /**
  * Datenspeicherung Datenbank
  * initialisieren (für 3-legged-oauth).
  *
  * @var array Parameters für die Datenbank (type,host,user,password,database)
  * @var string Namespace für Variablen innerhalb der Session
  * @var string Alternativer Name für den Tabellennamen
  * @var boolean Für die Zertifizierung wird eine Session benötigt, das automatische laden der Session kann aber per false deaktiviert werden.
  * @return boolean
  */
 public function setDataStorage($aConnection, $sSessionNamespace = null, $sTableName = null, $bSession = true)
 {
     if ($bSession === true) {
         require_once dirname(__FILE__) . '/Data/Session.php';
         Immocaster_Data_Session::getInstance($sSessionNamespace);
     }
     $sFileName = ucfirst(strtolower($aConnection[0]));
     require_once dirname(__FILE__) . '/Data/' . $sFileName . '.php';
     return call_user_func(array('Immocaster_Data_' . $sFileName, 'getInstance'), $aConnection, $sTableName);
 }
Example #3
0
 /**
  * Applikation Accesstoken ermitteln
  * und in Datenbank speichern (3-legged-oauth).
  *
  * @param array $aArgs
  * @return void
  */
 private function registerAccess($aArgs)
 {
     try {
         if (Immocaster_Data_Mysql::getInstance()->getApplicationToken()) {
             return false;
         }
         $oToken = Immocaster_Data_Mysql::getInstance()->getRequestToken(Immocaster_Data_Session::getInstance()->getVar('request_token'));
         $token = new OAuthToken($oToken->ic_key, $oToken->ic_secret);
         $req = parent::restRequest('oauth/access_token', array(), true);
         $req->set_parameter('oauth_verifier', $_GET['oauth_verifier']);
         $req->set_parameter('oauth_token', $oToken->ic_key);
         $req->set_parameter('oauth_signature_method', "HMAC-SHA1");
         $req->sign_request($this->_oSignatureMethod, $this->_oConsumer, $token);
         $sConsKey = rawurlencode($this->_sConsumerSecret) . '&' . $oToken->ic_secret;
         $sSignature = urlencode(base64_encode(hash_hmac('sha1', $req->get_signature_base_string(), $sConsKey, true)));
         $authHeader = $req->to_header();
         $opts = array('http' => array('header' => $authHeader . ',oauth_signature_method="HMAC-SHA1",oauth_signature="' . $sSignature . '"' . "\r\n" . 'User-Agent: ' . IMMOCASTER_USER_AGENT));
         @($result = file_get_contents($this->_sUri . '/restapi/security/oauth/access_token', false, stream_context_create($opts)));
         if (!$result) {
             $this->registerRequest($aArgs);
             return false;
         }
         $aAccessToken = Immocaster_Tools_Helper::makeArrayFromString($result);
         if (Immocaster_Data_Mysql::getInstance()->saveApplicationToken($aAccessToken['oauth_token'], $aAccessToken['oauth_token_secret'])) {
             return true;
         }
     } catch (Exception $e) {
         echo $e->getMessage();
     }
     return false;
 }