/** * @param eZContentObjectTreeNode $node * @return string */ public function getNodeUrl( &$node = null ) { $merckIni = ExternalLinkHandlerBase::iniMerck(); $baseUrl = $merckIni->variable( 'AustriaCodexSettings' , 'BaseLoginUrl' ); $user = $merckIni->variable( 'AustriaCodexSettings' , 'UserLogin' ); $pwd = $merckIni->variable( 'AustriaCodexSettings' , 'UserPassword' ); $key = $merckIni->variable( 'AustriaCodexSettings' , 'SecretKey' ); $timeStamp = time(); $checkSum = $timeStamp.strtoupper($pwd).$key; $checkSum = md5($checkSum); $params = array( 'p1' => $user, 'p2' => $timeStamp, 'p3' => $checkSum ); $queryString = http_build_query($params); $url = $baseUrl.'&'.$queryString; return $url; }
/** * @param eZContentObjectTreeNode $node * @return string */ public function getNodeUrl( &$node = null ) { $merckIni = ExternalLinkHandlerBase::iniMerck(); $user = MMUsers::getCurrentUserObject(); if ( !$user ) { self::redirectToErrorPage(); } $restUrl = $merckIni->variable( 'DriOnlineSettings', 'BaseLoginUrl' ); $vectorShared = mcrypt_create_iv( self::iv_size() ); $params = array( 'username' => $user->attribute( 'uuid' ), 'speciality' => $user->attribute( 'main_speciality' ), 'referrer' => $merckIni->variable( 'DriOnlineSettings', 'Referrer' ), 'action' => $merckIni->variable( 'DriOnlineSettings', 'Action' ), 'request_time' => time() ); $encodeArray = json_encode( $params ); $encodeArray = self::pad( $encodeArray ); $userEncrypt = $this->encrypt( $encodeArray, $vectorShared ); $urlParams = array( 'v' => base64_encode( $vectorShared ), 'val' => base64_encode( $userEncrypt ) ); return array( 'url' => $restUrl, 'params' => $urlParams ); }
public function __construct($applicationId) { parent::__construct($applicationId); $this->encryptionKey = $this->application()->getCustomParameter('EncryptionKey'); $this->encryptionCipher = MCRYPT_3DES; $this->encryptionMode = MCRYPT_MODE_NOFB; }
/** * @return eZINI */ static public function iniMerck() { if(is_null(self::$_iniMerck)) { self::$_iniMerck = eZINI::instance('merck.ini'); } return self::$_iniMerck; }
/** * @param eZContentObjectTreeNode $node * @return array */ public function getNodeUrl( &$node = null ) { $merckIni = ExternalLinkHandlerBase::iniMerck(); $action = $merckIni->variable( 'AlexandriaSettings' , 'Action' ); $referer = $merckIni->variable( 'AlexandriaSettings' , 'Referer' ); $uuid = MMUsers::getCurrentUserObject()->uuid; $baseUrl = $merckIni->variable( 'AlexandriaSettings' , 'BaseLoginUrl' ); $url = $this->application()->applicationLocalized()->external_url; $requestTime = time(); if ( !$uuid ) { self::redirectToErrorPage(); } $vectorShared = mcrypt_create_iv( Crypter::iv_size() ); $params = array( 'username' => $uuid, 'referer' => $referer, 'action' => $action, 'request_time' => $requestTime, 'URL' => $url ); $encodeArray = json_encode( $params ); $encodeArray = Crypter::pad( $encodeArray ); $userEncrypt = Crypter::encrypt( $encodeArray, $vectorShared ); $urlParams = array( 'v' => base64_encode( $vectorShared ), 'val' => base64_encode( $userEncrypt ) ); return array( 'url' => $baseUrl, 'params' => $urlParams ); }
/** * @param eZContentObjectTreeNode $node * @return string */ public function getNodeUrl( &$node = null ) { $merckIni = ExternalLinkHandlerBase::iniMerck(); $user = MMUsers::getCurrentUserObject(); if ( !$user ) { self::redirectToErrorPage(); } $esbParams = $merckIni->variable( 'EsbSettings', 'AvailableParams' ); if ( !in_array( 'Validation_status', $esbParams ) ) { $esbParams[] = 'Validation_status'; } // esb part of url generating $parameters = array( 'Data' => array( 'Username' => $user->attribute( 'uuid' ), 'Params' => $esbParams ), 'cr' => $user->attribute( 'country' ) ); $esbResponse = WSHelper::call( 'read', $parameters ); if ( !isset( $esbResponse['Data']['Params']['Email_address'] ) ) { self::redirectToErrorPage(); } $validStatuses = array( 'VP', '30' ); $isProperStatus = isset( $esbResponse['Data']['Params']['Validation_status'] ) && in_array( $esbResponse['Data']['Params']['Validation_status'], $validStatuses ); // test if proper ESB response - mainly status = Success if ( !$isProperStatus ) { self::redirectToErrorPage(); } $soapUser = $esbResponse['Data']['Params']['Email_address']; $soapPassword = $merckIni->variable( 'MdConsultSettings', 'SoapPassword' ); $applicationId = $merckIni->variable( 'MdConsultSettings', 'ApplicationId' ); $apiKey = $merckIni->variable( 'MdConsultSettings', 'ApiKey' ); $headerNamespace = $merckIni->variable( 'MdConsultSettings', 'HeaderNamespace' ); //$soapUrl = $merckIni->variable( 'MdConsultSettings', 'SoapUrl' ); // @dirty fix => we use a local version of the WSDL because of some type declaration duplicates $soapUrl = __DIR__.'/externallinkhandlerbrmdconsult.xml'; $headerbody = array( 'UsernameToken' => array( 'Username' => $apiKey, 'Password' => $soapPassword ) ); // soap part of url generating $soap = new SoapClient( $soapUrl ); $header = new SOAPHeader( $headerNamespace, 'Security', $headerbody, false ); $soap->__setSoapHeaders( $header ); $params = array( array( 'SiteID' => 'MSDBRZL', 'UserName' => $soapUser, 'ApplicationId' => $applicationId ) ); $user = ''; $password = ''; try { $result = $soap->__soapCall( 'GetThirdPartyCredencials', $params ); if ( isset( $result->GetThirdPartyCredencialsResult ) && isset( $result->GetThirdPartyCredencialsResult->LOVValue ) ) { $credentials = $result->GetThirdPartyCredencialsResult->LOVValue; if ( isset( $credentials->lovIDField ) ) { $user = $credentials->lovIDField; } else { self::redirectToErrorPage(); } if ( isset( $credentials->valueField ) ) { $password = $credentials->valueField; } else { self::redirectToErrorPage(); } } else { self::redirectToErrorPage(); } } catch ( SoapFault $f ) { self::redirectToErrorPage(); } $url = $merckIni->variable( 'MdConsultSettings', 'MdUrl' ); $searches = array( '<$md_user>', '<$md_password>' ); $replacements = array( $user, $password ); $url = str_replace( $searches, $replacements, $url ); return $url; }
/** * @return ExternalLinkHandlerBase */ public function externalLinkHandler() { if ( !empty($this->configurationExternal) && !is_null($this->configurationExternal) ) { $externalLinkHandlerName = $this->configurationExternal->externalLinkHandler(); return ExternalLinkHandlerBase::factory( $externalLinkHandlerName, $this->attribute('id') ); } return null; }
/** * @param eZContentObjectTreeNode $node * @return string */ public function getNodeUrl( &$node = null ) { $merckIni = ExternalLinkHandlerBase::iniMerck(); $user = MMUsers::getCurrentUserObject(); if ( !$user ) { self::redirectToErrorPage(); } $restUrl = $merckIni->variable( 'MdConsultSettings', 'RestUrl' ); eZLog::write( var_export( $restUrl, true ), 'md-consult.log' ); $apiKey = $merckIni->variable( 'MdConsultSettings', 'ApiKey' ); eZLog::write( var_export( $apiKey, true ), 'md-consult.log' ); $vendorKey = $merckIni->variable( 'MdConsultSettings', 'VendorKey' ); eZLog::write( var_export( $vendorKey, true ), 'md-consult.log' ); $params = array( "apikey" => $apiKey, "UserId" => $user->attribute( 'uuid' ), "VendorKey" => $vendorKey ); eZLog::write( var_export( $params, true ), 'md-consult.log' ); $curlRessource = curl_init( $restUrl ); $curlParams = array( CURLOPT_HEADER => false, CURLOPT_POST => true, CURLOPT_POSTFIELDS => json_encode( $params ), CURLOPT_HTTPHEADER => array( 'Content-type: application/json' ), CURLOPT_RETURNTRANSFER => true ); curl_setopt_array( $curlRessource, $curlParams ); $response = curl_exec( $curlRessource ); $out = json_decode( $response, true ); eZLog::write( var_export( $out, true ), 'md-consult.log' ); $validUser = isset( $out['errorCode'] ) && $out['errorCode'] == 0; $password = null; if ( $validUser ) { if ( isset( $out['userId'] ) ) { $user = $out['userId']; } else { self::redirectToErrorPage(); } if ( isset( $out['password'] ) ) { $password = $out['password']; } else { self::redirectToErrorPage(); } } else { self::redirectToErrorPage(); } $url = $merckIni->variable( 'MdConsultSettings', 'MdUrl' ); $searches = array( '<$md_user>', '<$md_password>' ); $replacements = array( $user, $password ); $url = str_replace( $searches, $replacements, $url ); return $url; }