From ad3ca5cadcf3dc52d66b4ce09070b0d62b9af695 Mon Sep 17 00:00:00 2001 From: velz Date: Sat, 27 Apr 2019 12:58:49 +0530 Subject: [PATCH] Token Signature Verification ErrorResloved --- api/application/config/constants.php | 2 +- api/application/config/customconfig_one.php | 21 ++++++-- api/application/config/database.php | 25 ++------- api/application/controllers/PD_Controller.php | 6 +-- api/application/helpers/jwt_helper.php | 51 +++++++++++-------- api/application/helpers/pdalerts_helper.php | 2 +- 6 files changed, 55 insertions(+), 52 deletions(-) diff --git a/api/application/config/constants.php b/api/application/config/constants.php index 3ef5e6f3..fd325dd8 100644 --- a/api/application/config/constants.php +++ b/api/application/config/constants.php @@ -546,7 +546,7 @@ defined('PDPURCHASEBILLWISEID') OR define('PDPURCHASEBILLWISEID','pbw_id'); defined('PDPURCHASEBILLWISECHILD') OR define('PDPURCHASEBILLWISECHILD','t_pd_purchase_billwise_child'); defined('PDPURCHASEBILLWISECHILDID') OR define('PDPURCHASEBILLWISECHILDID','pbwc_id'); - +defined('PDMIS') OR define('PDMIS','PD_MIS'); diff --git a/api/application/config/customconfig_one.php b/api/application/config/customconfig_one.php index 00c4c420..dfdfde98 100644 --- a/api/application/config/customconfig_one.php +++ b/api/application/config/customconfig_one.php @@ -2,9 +2,11 @@ +if(ENVIRONMENT == 'development' || ENVIRONMENT == 'testing') +{ /* public key for encrypt AWS JWT SINE_EDGE_USER_POOL_ID_TOKEN */ -$config['jwt_public_key_sineedge_dev'] = '-----BEGIN PUBLIC KEY----- +$config['jwt_public_key_sineedge'] = '-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqTsyy4r3nrjumED4To7w r1rfjMEzL+hcF8OwGm89aHoEzKLZqr12uQw3eK7tVV97QV8aYOi0zUinHlOVx1PM Dgik5jW8aCBvGM5S6PAZXn3fj59HYtKL0HIQ1cxaoIUVXjRHD/QkcCEZuG5dIxij @@ -14,9 +16,11 @@ eq0HukzvikhFNglSw5GV0pK0syZxvu/ERMg3ja4r9an8fMayVS2YpybtRl6CCCVP RwIDAQAB -----END PUBLIC KEY-----'; + + /* public key for encrypt AWS JWT LENDER_USER_POOL_ID_TOKEN */ -$config['jwt_public_key_lender_dev'] = '-----BEGIN PUBLIC KEY----- +$config['jwt_public_key_lender'] = '-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkvWF8GBAVs77bKzpOtnu mBGQ9kC11Pqw64avOsTE8T0mEbPWCSedqP8ShZtoFRUnZbfCVYcYPkvl+Gx5nxrY OvrlKxtVVbrcifuKJJ/qjSSUZucQVX1aeWjYofteevcPjJxa5JEQWCjRSeblbbit @@ -28,7 +32,7 @@ DwIDAQAB /* public key for encrypt AWS JWT VENDOR_USER_POOL_ID_TOKEN */ -$config['jwt_public_key_vendor_dev'] = '-----BEGIN PUBLIC KEY----- +$config['jwt_public_key_vendor'] = '-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7da6/Uc4mUyLJlSptAlU /h2R4MJqFiN1nGUQ8IKf2peOsZGL+M5i1oc7eDvW0xFrH/L12Yf8Qp6bLqaYo9Rw 7T/DucgSh53/eXXmRdDBWUHZH9B6oCYc+rU9nrVPoavtrkKhWQ0A9MP9ii9sYpdZ @@ -38,7 +42,9 @@ TbScH7bQtVAEQTaHpnMpDMT1dPDk1f3IRhyJ0Q2y1h9ZOKBj4kK3EFWw80ccBCq7 rwIDAQAB -----END PUBLIC KEY-----'; - +$config['sine_egde_pool_id'] = 'ap-south-1_qQ85yQZJO'; +$config['lender_pool_id'] = 'ap-south-1_hFiGyr1Gw'; +$config['vendor_pool_id'] = 'ap-south-1_K57yPaWxV'; /*Generated token will expire in 1 minute for sample code * Increase this value as per requirement for production @@ -46,6 +52,13 @@ rwIDAQAB $config['token_timeout'] = 1; $config['authorization_key'] = 'sparqvenba2018'; +}else if(ENVIRONMENT == 'prod') +{ + +} + + + /* End of file jwt.php */ /* Location: ./application/config/jwt.php */ diff --git a/api/application/config/database.php b/api/application/config/database.php index 2de0cec6..bb460f9e 100644 --- a/api/application/config/database.php +++ b/api/application/config/database.php @@ -78,6 +78,10 @@ else if(ENVIRONMENT == 'testing') { $active_group = 'test'; } +else if(ENVIRONMENT == 'production') +{ + $active_group = 'prod'; +} $query_builder = TRUE; @@ -128,24 +132,3 @@ $db['test'] = array( 'save_queries' => TRUE ); -$db['prod'] = array( - 'dsn' => '', - 'hostname' => 'apollodec.com', - 'username' => 'apollod4_DEV', - 'password' => 'apollo1234', - 'database' => 'apollod4_ApolloDECDev', - 'dbdriver' => 'mysqli', - 'dbprefix' => '', - 'pconnect' => FALSE, - 'db_debug' => (ENVIRONMENT !== 'production'), - 'cache_on' => FALSE, - 'cachedir' => '', - 'char_set' => 'utf8', - 'dbcollat' => 'utf8_general_ci', - 'swap_pre' => '', - 'encrypt' => FALSE, - 'compress' => FALSE, - 'stricton' => FALSE, - 'failover' => array(), - 'save_queries' => TRUE -); \ No newline at end of file diff --git a/api/application/controllers/PD_Controller.php b/api/application/controllers/PD_Controller.php index e77932f4..9cf5f843 100644 --- a/api/application/controllers/PD_Controller.php +++ b/api/application/controllers/PD_Controller.php @@ -732,8 +732,8 @@ class PD_Controller extends REST_Controller { $msg = "OTP for starting your personal discussions with the verification officer is ".$OTP.".Pls share this only when the officer has reached your place in person."; $no = (string)$pd_details['mobile_no']; unset($pd_details['mobile_no']); - //$pd_details['OTP'] = $OTP; - $pd_details['OTP'] = '123456'; + $pd_details['OTP'] = $OTP; + //$pd_details['OTP'] = '123456'; // $client = new \GuzzleHttp\Client(); @@ -4860,7 +4860,7 @@ class PD_Controller extends REST_Controller { if(count($rec)) { $temp_data = json_decode($rec[0]['json'],true); - + // print_r($temp_data);die(); foreach($temp_data['companies'] as $company) { diff --git a/api/application/helpers/jwt_helper.php b/api/application/helpers/jwt_helper.php index 846794ca..537d1ff3 100644 --- a/api/application/helpers/jwt_helper.php +++ b/api/application/helpers/jwt_helper.php @@ -57,7 +57,7 @@ class JWT throw new UnexpectedValueException('Invalid segment encoding'); } - //print_r($header);die; + $keyid = $header->kid; if (null === $payload = JWT::jsonDecode(JWT::urlsafeB64Decode($bodyb64))) { //if you don't want to disclose more details @@ -65,7 +65,7 @@ class JWT throw new UnexpectedValueException('Invalid segment encoding'); } - //print_r($cryptob64);die; + //print_r($payload);die; $signature = JWT::urlsafeB64Decode($cryptob64); //print_r($sig);die; if ($verify) { @@ -75,7 +75,7 @@ class JWT //throw new DomainException('Empty algorithm'); } - if ($signature != JWT::aws_sign("$headb64.$bodyb64", $signature, $header->alg)) { + if ($signature != JWT::aws_sign("$headb64.$bodyb64", $signature, $header->alg,$payload)) { throw new UnexpectedValueException('Signature verification failed'); } } @@ -152,34 +152,41 @@ class JWT * @return string An True or False * @throws DomainException Unsupported algorithm was specified */ - public static function aws_sign($head_body, $signature, $alg) + public static function aws_sign($head_body, $signature, $alg, $payload) { - $headers['From'] = 1; - $headers = getallheaders(); + $CI =& get_instance(); $jwtkey = ''; if (empty(static::$supported_algs[$alg])) { throw new DomainException('Algorithm not supported'); } - if(array_key_exists("From",$headers)){ - if($headers['From'] ==2) + //print_r($payload->iss); + $pool_id = explode('/', $payload->iss); + //print_r($pool_id[3]); + if(array_key_exists('3',$pool_id)) { - $jwtkey = $CI->config->item('jwt_public_key_lender_dev'); - }else if($headers['From'] !='' && $headers['From'] ==3) - { - $jwtkey = $CI->config->item('jwt_public_key_vendor_dev'); - }else if($headers['From']!='' && $headers['From'] == 1) - { - $jwtkey = $CI->config->item('jwt_public_key_sineedge_dev'); - }else{ - $jwtkey = ''; + if($pool_id[3] == $CI->config->item('sine_egde_pool_id')) + { + $jwtkey = $CI->config->item('jwt_public_key_sineedge'); + + }else if($pool_id[3] == $CI->config->item('lender_pool_id')) + { + $jwtkey = $CI->config->item('jwt_public_key_lender'); + + }else if($pool_id[3] == $CI->config->item('vendor_pool_id')) + { + $jwtkey = $CI->config->item('jwt_public_key_vendor'); + + }else{ + $jwtkey = ''; + } } - }else - { - $jwtkey = $CI->config->item('jwt_public_key_sineedge_dev'); - - } + else + { + throw new DomainException('Pool Informatin Not Available'); + } + list($function, $algorithm) = static::$supported_algs[$alg]; diff --git a/api/application/helpers/pdalerts_helper.php b/api/application/helpers/pdalerts_helper.php index fbdca800..44481c7d 100644 --- a/api/application/helpers/pdalerts_helper.php +++ b/api/application/helpers/pdalerts_helper.php @@ -307,7 +307,7 @@ class PDALERTS $logger->error("Mailer Error:" ,array($mail->ErrorInfo)); } else { - $logger->error("Mailer Send:" ,array('mail ID' => $lender_email,'Status' => 'SEND')); + $logger->info("Mailer Send:" ,array('mail ID' => $lender_email,'Status' => 'SEND')); } }