cybersource_rest_client 0.0.37 → 0.0.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/AuthenticationSDK/authentication/http/GetSignatureParameter.rb +13 -6
- data/lib/AuthenticationSDK/authentication/http/HttpSignatureHeader.rb +13 -5
- data/lib/AuthenticationSDK/authentication/jwt/JwtToken.rb +26 -11
- data/lib/AuthenticationSDK/authentication/oauth/OAuthToken.rb +11 -5
- data/lib/AuthenticationSDK/authentication/payloadDigest/digest.rb +2 -2
- data/lib/AuthenticationSDK/core/Authorization.rb +28 -20
- data/lib/AuthenticationSDK/core/MerchantConfig.rb +72 -78
- data/lib/AuthenticationSDK/logging/log_configuration.rb +71 -0
- data/lib/AuthenticationSDK/logging/log_factory.rb +65 -0
- data/lib/AuthenticationSDK/logging/sensitive_logging.rb +101 -0
- data/lib/AuthenticationSDK/util/Cache.rb +1 -1
- data/lib/AuthenticationSDK/util/Constants.rb +25 -17
- data/lib/AuthenticationSDK/util/ExceptionHandler.rb +26 -0
- data/lib/AuthenticationSDK/util/PropertiesUtil.rb +2 -2
- data/lib/cybersource_rest_client/api/asymmetric_key_management_api.rb +46 -46
- data/lib/cybersource_rest_client/api/capture_api.rb +16 -16
- data/lib/cybersource_rest_client/api/chargeback_details_api.rb +16 -16
- data/lib/cybersource_rest_client/api/chargeback_summaries_api.rb +16 -16
- data/lib/cybersource_rest_client/api/conversion_details_api.rb +16 -16
- data/lib/cybersource_rest_client/api/credit_api.rb +16 -16
- data/lib/cybersource_rest_client/api/customer_api.rb +61 -61
- data/lib/cybersource_rest_client/api/customer_payment_instrument_api.rb +76 -76
- data/lib/cybersource_rest_client/api/customer_shipping_address_api.rb +76 -76
- data/lib/cybersource_rest_client/api/decision_manager_api.rb +46 -46
- data/lib/cybersource_rest_client/api/download_dtd_api.rb +16 -16
- data/lib/cybersource_rest_client/api/download_xsd_api.rb +16 -16
- data/lib/cybersource_rest_client/api/instrument_identifier_api.rb +91 -91
- data/lib/cybersource_rest_client/api/interchange_clearing_level_details_api.rb +16 -16
- data/lib/cybersource_rest_client/api/invoice_settings_api.rb +31 -31
- data/lib/cybersource_rest_client/api/invoices_api.rb +91 -91
- data/lib/cybersource_rest_client/api/key_generation_api.rb +16 -16
- data/lib/cybersource_rest_client/api/net_fundings_api.rb +16 -16
- data/lib/cybersource_rest_client/api/notification_of_changes_api.rb +16 -16
- data/lib/cybersource_rest_client/api/payer_authentication_api.rb +46 -46
- data/lib/cybersource_rest_client/api/payment_batch_summaries_api.rb +16 -16
- data/lib/cybersource_rest_client/api/payment_instrument_api.rb +61 -61
- data/lib/cybersource_rest_client/api/payments_api.rb +31 -31
- data/lib/cybersource_rest_client/api/payouts_api.rb +16 -16
- data/lib/cybersource_rest_client/api/purchase_and_refund_details_api.rb +16 -16
- data/lib/cybersource_rest_client/api/refund_api.rb +31 -31
- data/lib/cybersource_rest_client/api/report_definitions_api.rb +31 -31
- data/lib/cybersource_rest_client/api/report_downloads_api.rb +16 -16
- data/lib/cybersource_rest_client/api/report_subscriptions_api.rb +76 -76
- data/lib/cybersource_rest_client/api/reports_api.rb +46 -46
- data/lib/cybersource_rest_client/api/retrieval_details_api.rb +16 -16
- data/lib/cybersource_rest_client/api/retrieval_summaries_api.rb +16 -16
- data/lib/cybersource_rest_client/api/reversal_api.rb +31 -31
- data/lib/cybersource_rest_client/api/search_transactions_api.rb +31 -31
- data/lib/cybersource_rest_client/api/secure_file_share_api.rb +31 -31
- data/lib/cybersource_rest_client/api/symmetric_key_management_api.rb +46 -46
- data/lib/cybersource_rest_client/api/taxes_api.rb +31 -31
- data/lib/cybersource_rest_client/api/tokenization_api.rb +16 -16
- data/lib/cybersource_rest_client/api/transaction_batches_api.rb +46 -46
- data/lib/cybersource_rest_client/api/transaction_details_api.rb +16 -16
- data/lib/cybersource_rest_client/api/user_management_api.rb +16 -16
- data/lib/cybersource_rest_client/api/user_management_search_api.rb +16 -16
- data/lib/cybersource_rest_client/api/verification_api.rb +31 -31
- data/lib/cybersource_rest_client/api/void_api.rb +76 -76
- data/lib/cybersource_rest_client/api_client.rb +7 -8
- data/lib/cybersource_rest_client/models/create_adhoc_report_request.rb +2 -5
- data/lib/cybersource_rest_client/models/create_payment_request.rb +19 -1
- data/lib/cybersource_rest_client/models/pts_v2_payments_captures_post201_response_order_information_amount_details.rb +20 -4
- data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_processor_information.rb +36 -4
- data/lib/cybersource_rest_client/models/ptsv2payments_buyer_information.rb +33 -1
- data/lib/cybersource_rest_client/models/ptsv2payments_client_reference_information.rb +17 -1
- data/lib/cybersource_rest_client/models/ptsv2payments_device_information.rb +17 -1
- data/lib/cybersource_rest_client/models/ptsv2payments_invoice_details.rb +191 -0
- data/lib/cybersource_rest_client/models/ptsv2payments_merchant_information.rb +49 -1
- data/lib/cybersource_rest_client/models/ptsv2payments_order_information_amount_details.rb +17 -1
- data/lib/cybersource_rest_client/models/ptsv2payments_order_information_invoice_details.rb +20 -4
- data/lib/cybersource_rest_client/models/ptsv2payments_order_information_ship_to.rb +33 -1
- data/lib/cybersource_rest_client/models/ptsv2payments_payment_information.rb +13 -4
- data/lib/cybersource_rest_client/models/ptsv2payments_payment_information_bank.rb +14 -4
- data/lib/cybersource_rest_client/models/ptsv2payments_payment_information_e_wallet.rb +190 -0
- data/lib/cybersource_rest_client/models/ptsv2payments_processor_information.rb +191 -0
- data/lib/cybersource_rest_client/models/ptsv2paymentsidrefunds_payment_information.rb +14 -5
- data/lib/cybersource_rest_client/models/ptsv2paymentsidrefunds_payment_information_bank.rb +215 -0
- data/lib/cybersource_rest_client/models/reportingv3reports_report_filters.rb +218 -0
- data/lib/cybersource_rest_client/models/riskv1authenticationresults_payment_information_tokenized_card.rb +17 -1
- data/lib/cybersource_rest_client/models/riskv1authentications_payment_information_tokenized_card.rb +17 -1
- data/lib/cybersource_rest_client/models/riskv1decisions_payment_information_tokenized_card.rb +17 -1
- data/lib/cybersource_rest_client/models/tss_v2_transactions_get200_response_installment_information.rb +14 -4
- data/lib/cybersource_rest_client/models/tss_v2_transactions_get200_response_order_information_amount_details.rb +13 -4
- data/lib/cybersource_rest_client/utilities/flex/token_verification.rb +4 -4
- data/lib/cybersource_rest_client.rb +9 -2
- metadata +11 -4
- data/lib/AuthenticationSDK/core/Logger.rb +0 -26
- data/lib/AuthenticationSDK/util/ApiException.rb +0 -19
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1886b4add8b84bfbac736fe78a758ee265e3152d7101c178f00789b30ab9bfb1
|
|
4
|
+
data.tar.gz: 11ee54eae5380c12c771557a7e3f601692f2a290552d9e3ca2f826e08ec49099
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a1a9802d9b4e6235caf2ce686559421af96aa400c9caa799c830b0cdcb6df9f5e8e4fe549ec70c998a4e9144fefbd0234e222a143bdf102087a41aef97852ff3
|
|
7
|
+
data.tar.gz: 1ac08f343b72208a7294127ffb39817af640241ed8a7f135fa2e9bdf95232160a58e3cccd359b20107a41b0b5e23e8fb6605938a59b0cbc40b7e6835ef683a18
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
require_relative '../../util/Constants.rb'
|
|
2
2
|
require_relative '.././payloadDigest/digest.rb'
|
|
3
|
+
require_relative '../../logging/log_factory.rb'
|
|
3
4
|
require 'openssl'
|
|
4
5
|
# This function returns value for paramter Signature which is then passed to Signature header
|
|
5
6
|
# paramter 'Signature' is calucated based on below key values and then signed with SECRET KEY -
|
|
@@ -13,12 +14,17 @@ require 'openssl'
|
|
|
13
14
|
# v-c-merchant-id: set value to Cybersource Merchant ID
|
|
14
15
|
# This ID can be found on EBC portal*/
|
|
15
16
|
class SignatureParameter
|
|
16
|
-
|
|
17
|
+
@log_obj
|
|
18
|
+
def generateSignatureParameter(merchantconfig_obj, gmtdatetime)
|
|
19
|
+
@log_obj = Log.new merchantconfig_obj.log_config, "GetSignatureParameter"
|
|
20
|
+
|
|
17
21
|
request_type = merchantconfig_obj.requestType.upcase
|
|
18
22
|
merchantSecretKey = merchantconfig_obj.merchantSecretKey
|
|
23
|
+
|
|
19
24
|
signatureString = Constants::HOST + ': ' + merchantconfig_obj.requestHost
|
|
20
25
|
signatureString << "\n"+ Constants::DATE + ': ' + gmtdatetime
|
|
21
26
|
signatureString << "\n(request-target): "
|
|
27
|
+
|
|
22
28
|
if request_type == Constants::GET_REQUEST_TYPE || request_type == Constants::DELETE_REQUEST_TYPE
|
|
23
29
|
targetUrl=gettargetUrlForGetDelete(request_type,merchantconfig_obj)
|
|
24
30
|
signatureString << targetUrl + "\n"
|
|
@@ -26,7 +32,7 @@ require 'openssl'
|
|
|
26
32
|
targetUrl=gettargetUrlForPutPost(request_type,merchantconfig_obj)
|
|
27
33
|
signatureString << targetUrl + "\n"
|
|
28
34
|
payload = merchantconfig_obj.requestJsonData
|
|
29
|
-
digest = DigestGeneration.new.generateDigest(payload
|
|
35
|
+
digest = DigestGeneration.new.generateDigest(payload)
|
|
30
36
|
digest_payload = Constants::SHA256 + digest
|
|
31
37
|
signatureString << Constants::DIGEST + ': ' + digest_payload + "\n"
|
|
32
38
|
end
|
|
@@ -40,10 +46,11 @@ require 'openssl'
|
|
|
40
46
|
base64EncodedSignature = Base64.strict_encode64(OpenSSL::HMAC.digest('sha256', decodedKey, encodedSignatureString))
|
|
41
47
|
return base64EncodedSignature
|
|
42
48
|
rescue StandardError => err
|
|
43
|
-
log_obj.logger.error(err.message)
|
|
44
|
-
log_obj.logger.error(err.backtrace)
|
|
45
|
-
|
|
46
|
-
|
|
49
|
+
@log_obj.logger.error(err.message)
|
|
50
|
+
@log_obj.logger.error(err.backtrace)
|
|
51
|
+
raise err
|
|
52
|
+
# puts 'Check log for more details.'
|
|
53
|
+
# exit!
|
|
47
54
|
end
|
|
48
55
|
def gettargetUrlForGetDelete(request_type, merchantconfig_obj)
|
|
49
56
|
targetUrlForGetDelete = ''
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
require 'base64'
|
|
2
2
|
require_relative '../../core/ITokenGeneration.rb'
|
|
3
3
|
require_relative '../../util/Constants.rb'
|
|
4
|
-
require_relative '../../util/ApiException.rb'
|
|
5
4
|
require_relative '.././payloadDigest/digest.rb'
|
|
6
5
|
require_relative '.././http/GetSignatureParameter.rb'
|
|
6
|
+
require_relative '../../logging/log_factory.rb'
|
|
7
|
+
require_relative '../../util/ExceptionHandler.rb'
|
|
7
8
|
public
|
|
8
9
|
# SignatureHeader return SignatureHeader Value that contains following paramters
|
|
9
10
|
# * keyid -- Merchant ID obtained from EBC portal
|
|
@@ -15,23 +16,30 @@ public
|
|
|
15
16
|
# * signature -- Signature header has paramter called signature
|
|
16
17
|
# Paramter 'Signature' must contain all the paramters mentioned in header above in given order
|
|
17
18
|
class GenerateHttpSignature
|
|
19
|
+
@log_obj
|
|
18
20
|
# Generates Signature based on the requestType
|
|
19
|
-
def getToken(merchantconfig_obj, gmtdatetime
|
|
21
|
+
def getToken(merchantconfig_obj, gmtdatetime)
|
|
22
|
+
@log_obj = Log.new merchantconfig_obj.log_config, "GenerateHttpSignature"
|
|
23
|
+
|
|
20
24
|
request_type = merchantconfig_obj.requestType.upcase
|
|
21
25
|
signatureHeaderValue =''
|
|
22
26
|
signatureHeaderValue << Constants::KEY_ID + merchantconfig_obj.merchantKeyId + "\""
|
|
27
|
+
|
|
23
28
|
# Algorithm should be always HmacSHA256 for http signature
|
|
24
29
|
signatureHeaderValue << ', ' + Constants::ALGORITHM + Constants::SIGNATURE_ALGORITHM + "\""
|
|
30
|
+
|
|
25
31
|
# Headers - list is choosen based on HTTP method
|
|
26
32
|
signatureheader=getsignatureHeader(request_type)
|
|
27
33
|
signatureHeaderValue << ', ' + Constants::HEADERS_PARAM + signatureheader + "\""
|
|
34
|
+
|
|
28
35
|
# Get Value for parameter 'Signature' to be passed to Signature Header
|
|
29
|
-
signature_value = SignatureParameter.new.generateSignatureParameter(merchantconfig_obj, gmtdatetime
|
|
36
|
+
signature_value = SignatureParameter.new.generateSignatureParameter(merchantconfig_obj, gmtdatetime)
|
|
30
37
|
signatureHeaderValue << ', ' + Constants::SIGNATURE_PARAM + signature_value + "\""
|
|
31
38
|
return signatureHeaderValue
|
|
32
39
|
rescue StandardError => err
|
|
33
|
-
|
|
34
|
-
|
|
40
|
+
@log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
|
|
41
|
+
raise err
|
|
42
|
+
# exit!
|
|
35
43
|
end
|
|
36
44
|
def getsignatureHeader(request_type)
|
|
37
45
|
headers = ''
|
|
@@ -5,56 +5,71 @@ require 'json'
|
|
|
5
5
|
require 'active_support'
|
|
6
6
|
require_relative '../../core/ITokenGeneration.rb'
|
|
7
7
|
require_relative '../../util/Constants.rb'
|
|
8
|
-
require_relative '../../util/
|
|
8
|
+
require_relative '../../util/ExceptionHandler.rb'
|
|
9
9
|
require_relative '../../util/Cache.rb'
|
|
10
10
|
require_relative '../../authentication/payloadDigest/digest.rb'
|
|
11
|
+
require_relative '../../logging/log_factory.rb'
|
|
11
12
|
public
|
|
12
|
-
#JWT Token-generated based on the Request type
|
|
13
13
|
class GenerateJwtToken
|
|
14
|
-
|
|
14
|
+
@log_obj
|
|
15
|
+
|
|
16
|
+
#JWT Token-generated based on the Request type
|
|
17
|
+
def getToken(merchantconfig_obj,gmtDatetime)
|
|
18
|
+
@log_obj = Log.new merchantconfig_obj.log_config, "JwtToken"
|
|
19
|
+
|
|
15
20
|
jwtBody = ''
|
|
16
21
|
request_type = merchantconfig_obj.requestType.upcase
|
|
17
22
|
filePath = merchantconfig_obj.keysDirectory + '/' + merchantconfig_obj.keyFilename + '.p12'
|
|
23
|
+
|
|
18
24
|
if (!File.exist?(filePath))
|
|
19
25
|
raise Constants::ERROR_PREFIX + Constants::FILE_NOT_FOUND + File.expand_path(filePath)
|
|
20
26
|
end
|
|
27
|
+
|
|
21
28
|
p12File = File.binread(filePath)
|
|
22
|
-
jwtBody=getJwtBody(request_type, gmtDatetime, merchantconfig_obj
|
|
29
|
+
jwtBody=getJwtBody(request_type, gmtDatetime, merchantconfig_obj)
|
|
23
30
|
claimSet = JSON.parse(jwtBody)
|
|
24
31
|
p12FilePath = OpenSSL::PKCS12.new(p12File, merchantconfig_obj.keyPass)
|
|
32
|
+
|
|
25
33
|
# Generating certificate.
|
|
26
34
|
cacheObj = ActiveSupport::Cache::MemoryStore.new
|
|
27
35
|
x5Cert = Cache.new.fetchCachedCertificate(filePath, p12File, merchantconfig_obj.keyPass, cacheObj)
|
|
36
|
+
|
|
28
37
|
# Generating Public key.
|
|
29
38
|
publicKey = OpenSSL::PKey::RSA.new(p12FilePath.key.public_key)
|
|
39
|
+
|
|
30
40
|
#Generating Private Key
|
|
31
41
|
privateKey = OpenSSL::PKey::RSA.new(p12FilePath.key)
|
|
42
|
+
|
|
32
43
|
# JWT token-Generates using RS256 algorithm only
|
|
33
44
|
x5clist = [x5Cert]
|
|
34
45
|
customHeaders = {}
|
|
35
46
|
customHeaders['v-c-merchant-id'] = merchantconfig_obj.keyAlias
|
|
36
47
|
customHeaders['x5c'] = x5clist
|
|
48
|
+
|
|
37
49
|
# Generating JWT token
|
|
38
50
|
token = JWT.encode(claimSet, privateKey, 'RS256', customHeaders)
|
|
39
51
|
return token
|
|
40
52
|
rescue StandardError => err
|
|
41
53
|
if err.message.include? 'PKCS12_parse: mac verify failure'
|
|
42
|
-
|
|
43
|
-
exit!
|
|
54
|
+
@log_obj.logger.error(ExceptionHandler.new.new_custom_error Constants::ERROR_PREFIX + Constants::INCORRECT_KEY_PASS)
|
|
55
|
+
# exit!
|
|
44
56
|
else
|
|
45
|
-
|
|
46
|
-
exit!
|
|
57
|
+
@log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
|
|
58
|
+
# exit!
|
|
47
59
|
end
|
|
60
|
+
raise err
|
|
48
61
|
end
|
|
49
|
-
|
|
62
|
+
|
|
63
|
+
def getJwtBody(request_type, gmtDatetime, merchantconfig_obj)
|
|
50
64
|
if request_type == Constants::POST_REQUEST_TYPE || request_type == Constants::PUT_REQUEST_TYPE || request_type == Constants::PATCH_REQUEST_TYPE
|
|
51
65
|
payload = merchantconfig_obj.requestJsonData
|
|
66
|
+
|
|
52
67
|
# Note: Digest is not passed for GET calls
|
|
53
|
-
digest = DigestGeneration.new.generateDigest(payload
|
|
68
|
+
digest = DigestGeneration.new.generateDigest(payload)
|
|
54
69
|
jwtBody = "{\n \"digest\":\"" + digest + "\", \"digestAlgorithm\":\"SHA-256\", \"iat\":\"" + gmtDatetime + "\"}"
|
|
55
70
|
elsif request_type == Constants::GET_REQUEST_TYPE || request_type == Constants::DELETE_REQUEST_TYPE
|
|
56
71
|
jwtBody = "{\n \"iat\":\"" + gmtDatetime + "\"\n} \n\n"
|
|
57
|
-
else
|
|
72
|
+
else
|
|
58
73
|
raise StandardError.new(Constants::ERROR_PREFIX + Constants::INVALID_REQUEST_TYPE_METHOD)
|
|
59
74
|
end
|
|
60
75
|
end
|
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
require_relative '../../core/ITokenGeneration.rb'
|
|
2
2
|
require_relative '../../util/Constants.rb'
|
|
3
|
-
require_relative '../../util/
|
|
3
|
+
require_relative '../../util/ExceptionHandler.rb'
|
|
4
4
|
require_relative '../../util/Cache.rb'
|
|
5
|
+
require_relative '../../logging/log_factory.rb'
|
|
6
|
+
|
|
5
7
|
public
|
|
6
|
-
#JWT Token-generated based on the Request type
|
|
7
8
|
class GenerateOAuthToken
|
|
8
|
-
|
|
9
|
+
@log_obj
|
|
10
|
+
|
|
11
|
+
#JWT Token-generated based on the Request type
|
|
12
|
+
def getToken(merchantconfig_obj, gmtDatetime)
|
|
13
|
+
@log_obj = Log.new merchantconfig_obj.log_config, "OAuthToken"
|
|
9
14
|
token = merchantconfig_obj.accessToken
|
|
10
15
|
rescue StandardError => err
|
|
11
|
-
|
|
12
|
-
|
|
16
|
+
@log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
|
|
17
|
+
raise err
|
|
18
|
+
# exit!
|
|
13
19
|
end
|
|
14
20
|
implements TokenInterface
|
|
15
21
|
end
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
require 'digest'
|
|
2
2
|
public
|
|
3
|
-
# This method return Digest value which is SHA-256
|
|
3
|
+
# This method return Digest value which is SHA-256
|
|
4
4
|
# hash of payload that is BASE64 encoded
|
|
5
5
|
class DigestGeneration
|
|
6
|
-
def generateDigest(payload
|
|
6
|
+
def generateDigest(payload)
|
|
7
7
|
digest = Digest::SHA256.base64digest(payload)
|
|
8
8
|
return digest
|
|
9
9
|
end
|
|
@@ -2,26 +2,34 @@ require_relative '../authentication/http/HttpSignatureHeader.rb'
|
|
|
2
2
|
require_relative '../authentication/jwt/JwtToken.rb'
|
|
3
3
|
require_relative '../authentication/oauth/OAuthToken.rb'
|
|
4
4
|
require_relative '../util/Constants.rb'
|
|
5
|
-
require_relative '../util/
|
|
5
|
+
require_relative '../util/ExceptionHandler.rb'
|
|
6
|
+
require_relative '../logging/log_factory.rb'
|
|
6
7
|
public
|
|
7
8
|
# This function calls for the generation of Signature message depending on the authentication type.
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
9
|
+
class Authorization
|
|
10
|
+
@log_obj
|
|
11
|
+
def getToken(merchantconfig_obj, gmtdatetime)
|
|
12
|
+
@log_obj = Log.new merchantconfig_obj.log_config, "Authorization"
|
|
13
|
+
|
|
14
|
+
authenticationType = merchantconfig_obj.authenticationType.upcase
|
|
15
|
+
@log_obj.logger.info("Authentication Type: " + authenticationType)
|
|
16
|
+
|
|
17
|
+
if merchantconfig_obj.requestType.to_s.empty?
|
|
18
|
+
raise StandardError.new(Constants::ERROR_PREFIX + Constants::REQUEST_TYPE_EMPTY)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
if authenticationType == Constants::AUTH_TYPE_HTTP
|
|
22
|
+
token = GenerateHttpSignature.new.getToken(merchantconfig_obj, gmtdatetime)
|
|
23
|
+
elsif authenticationType == Constants::AUTH_TYPE_JWT
|
|
24
|
+
token = GenerateJwtToken.new.getToken(merchantconfig_obj, gmtdatetime)
|
|
25
|
+
elsif authenticationType == Constants::AUTH_TYPE_OAUTH
|
|
26
|
+
token = GenerateOAuthToken.new.getToken(merchantconfig_obj, gmtdatetime)
|
|
27
|
+
else
|
|
28
|
+
raise StandardError.ner(Constants::ERROR_PREFIX + Constants::AUTH_ERROR)
|
|
29
|
+
end
|
|
30
|
+
rescue StandardError => err
|
|
31
|
+
@log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
|
|
32
|
+
raise err
|
|
33
|
+
# exit!
|
|
34
|
+
end
|
|
26
35
|
end
|
|
27
|
-
end
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
require_relative './Logger.rb'
|
|
2
1
|
require_relative '../util/Constants.rb'
|
|
3
|
-
require_relative '../util/
|
|
2
|
+
require_relative '../util/ExceptionHandler.rb'
|
|
3
|
+
require_relative '../logging/log_factory.rb'
|
|
4
|
+
require_relative '../logging/log_configuration.rb'
|
|
5
|
+
|
|
4
6
|
public
|
|
5
7
|
# This fuction has all the merchantConfig properties getters and setters methods
|
|
6
8
|
class Merchantconfig
|
|
@@ -9,9 +11,6 @@ public
|
|
|
9
11
|
@merchantId = cybsPropertyObj['merchantID']
|
|
10
12
|
@runEnvironment = cybsPropertyObj['runEnvironment']
|
|
11
13
|
@authenticationType = cybsPropertyObj['authenticationType']
|
|
12
|
-
@logDirectory = cybsPropertyObj['logDirectory']
|
|
13
|
-
@logSize = cybsPropertyObj['logSize']
|
|
14
|
-
@enableLog = cybsPropertyObj['enableLog']
|
|
15
14
|
@proxyAddress = cybsPropertyObj['proxyAddress']
|
|
16
15
|
@proxyPort = cybsPropertyObj['proxyPort']
|
|
17
16
|
@getId = ''
|
|
@@ -28,7 +27,6 @@ public
|
|
|
28
27
|
@keyFilename = cybsPropertyObj['keyFilename']
|
|
29
28
|
@useMetaKey = cybsPropertyObj['useMetaKey']
|
|
30
29
|
@portfolioID = cybsPropertyObj['portfolioID']
|
|
31
|
-
@logFilename = cybsPropertyObj['logFilename']
|
|
32
30
|
@solutionId = cybsPropertyObj['solutionId']
|
|
33
31
|
# MutualAuth & OAuth Parameters
|
|
34
32
|
@enableClientCert = cybsPropertyObj['enableClientCert']
|
|
@@ -39,86 +37,75 @@ public
|
|
|
39
37
|
@clientId = cybsPropertyObj['clientId']
|
|
40
38
|
@clientSecret = cybsPropertyObj['clientSecret']
|
|
41
39
|
@accessToken = cybsPropertyObj['accessToken']
|
|
42
|
-
@refreshToken = cybsPropertyObj['refreshToken']
|
|
40
|
+
@refreshToken = cybsPropertyObj['refreshToken']
|
|
41
|
+
# LogConfiguration
|
|
42
|
+
@log_config = LogConfiguration.new(cybsPropertyObj['logConfiguration'])
|
|
43
43
|
validateMerchantDetails()
|
|
44
44
|
logAllProperties(cybsPropertyObj)
|
|
45
45
|
end
|
|
46
46
|
#fall back logic
|
|
47
47
|
def validateMerchantDetails()
|
|
48
48
|
logmessage=''
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
elsif @enableLog.instance_of? Integer
|
|
52
|
-
@enableLog = @enableLog.to_s
|
|
53
|
-
end
|
|
54
|
-
if @logSize.to_s.empty?
|
|
55
|
-
@logSize = Constants::DEFAULT_LOG_SIZE
|
|
56
|
-
elsif !@logSize.instance_of? Integer
|
|
57
|
-
@logSize=@logSize.to_i
|
|
58
|
-
end
|
|
59
|
-
if @logDirectory.to_s.empty? || !Dir.exist?(@logDirectory)
|
|
60
|
-
@logDirectory = Constants::DEFAULT_LOG_DIRECTORY
|
|
61
|
-
unless Dir.exist?(@logDirectory)
|
|
62
|
-
Dir.mkdir(Constants::DEFAULT_LOG_DIRECTORY)
|
|
63
|
-
end
|
|
64
|
-
logmessage = Constants::WARNING_PREFIX + Constants::INVALID_LOG_DIRECTORY + File.expand_path(@logDirectory)
|
|
65
|
-
end
|
|
66
|
-
if @logFilename.to_s.empty?
|
|
67
|
-
@logFilename = Constants::DEFAULT_LOGFILE_NAME
|
|
68
|
-
elsif !@logFilename.instance_of? String
|
|
69
|
-
@logFilename=@logFilename.to_s
|
|
70
|
-
end
|
|
71
|
-
@log_obj = Log.new @logDirectory,@logFilename,@logSize,@enableLog
|
|
49
|
+
@log_config.validate(logmessage)
|
|
50
|
+
@log_obj = Log.new @log_config, "MerchantConfig"
|
|
72
51
|
@log_obj.logger.info('START> =======================================')
|
|
73
52
|
if !logmessage.to_s.empty?
|
|
74
|
-
|
|
75
|
-
end
|
|
53
|
+
@log_obj.logger.warn(ExceptionHandler.new.new_api_warning logmessage)
|
|
54
|
+
end
|
|
76
55
|
if @authenticationType.to_s.empty?
|
|
77
|
-
err =
|
|
78
|
-
|
|
56
|
+
err = StandardError.new(Constants::ERROR_PREFIX + Constants::AUTH_TYPE_MANDATORY)
|
|
57
|
+
@log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
|
|
58
|
+
raise err
|
|
79
59
|
end
|
|
80
|
-
if !@authenticationType.instance_of? String
|
|
81
|
-
err =
|
|
82
|
-
|
|
60
|
+
if !@authenticationType.instance_of? String
|
|
61
|
+
err = StandardError.new(Constants::ERROR_PREFIX+ Constants::AUTH_ERROR)
|
|
62
|
+
@log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
|
|
63
|
+
raise err
|
|
83
64
|
end
|
|
84
65
|
if !@runEnvironment.to_s.empty?
|
|
85
66
|
if !@runEnvironment.instance_of? String
|
|
86
67
|
@requestHost = @runEnvironment.to_s
|
|
87
68
|
end
|
|
88
|
-
|
|
69
|
+
|
|
89
70
|
if Constants::OLD_RUN_ENVIRONMENT_CONSTANTS.include?(@runEnvironment.upcase)
|
|
90
|
-
err =
|
|
91
|
-
|
|
71
|
+
err = StandardError.new(Constants::ERROR_PREFIX + Constants::DEPRECATED_ENVIRONMENT)
|
|
72
|
+
@log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
|
|
73
|
+
raise err
|
|
92
74
|
else
|
|
93
75
|
@requestHost = @runEnvironment
|
|
94
76
|
end
|
|
95
77
|
elsif @runEnvironment.to_s.empty?
|
|
96
|
-
err =
|
|
97
|
-
|
|
78
|
+
err = StandardError.new(Constants::ERROR_PREFIX + Constants::RUN_ENVIRONMENT)
|
|
79
|
+
@log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
|
|
80
|
+
raise err
|
|
98
81
|
end
|
|
99
82
|
|
|
100
83
|
if !@enableClientCert.nil? && @enableClientCert
|
|
101
84
|
if @sslClientCert.to_s.empty?
|
|
102
|
-
err =
|
|
103
|
-
|
|
85
|
+
err = StandardError.new(Constants::ERROR_PREFIX + Constants::SSL_CLIENT_CERT_EMPTY)
|
|
86
|
+
@log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
|
|
87
|
+
raise err
|
|
104
88
|
elsif !@sslClientCert.instance_of? String
|
|
105
89
|
@sslClientCert=@sslClientCert.to_s
|
|
106
90
|
end
|
|
107
91
|
if @privateKey.to_s.empty?
|
|
108
|
-
err =
|
|
109
|
-
|
|
92
|
+
err = StandardError.new(Constants::ERROR_PREFIX + Constants::PRIVATE_KEY_EMPTY)
|
|
93
|
+
@log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
|
|
94
|
+
raise err
|
|
110
95
|
elsif !@privateKey.instance_of? String
|
|
111
96
|
@privateKey=@privateKey.to_s
|
|
112
97
|
end
|
|
113
98
|
if @sslKeyPassword.to_s.empty?
|
|
114
99
|
err = Constants::WARNING_PREFIX + Constants::SSL_KEY_PASSWORD_EMPTY
|
|
115
|
-
|
|
100
|
+
@log_obj.logger.warn(ExceptionHandler.new.new_api_warning err)
|
|
101
|
+
raise err
|
|
116
102
|
elsif !@sslKeyPassword.instance_of? String
|
|
117
103
|
@sslKeyPassword=@sslKeyPassword.to_s
|
|
118
104
|
end
|
|
119
105
|
if @clientCertDirectory.to_s.empty?
|
|
120
|
-
err =
|
|
121
|
-
|
|
106
|
+
err = StandardError.new(Constants::ERROR_PREFIX + Constants::CLIENT_CERT_DIR_EMPTY)
|
|
107
|
+
@log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
|
|
108
|
+
raise err
|
|
122
109
|
elsif !@clientCertDirectory.instance_of? String
|
|
123
110
|
@clientCertDirectory=@clientCertDirectory.to_s
|
|
124
111
|
end
|
|
@@ -126,90 +113,99 @@ public
|
|
|
126
113
|
|
|
127
114
|
if @authenticationType.upcase == Constants::AUTH_TYPE_JWT
|
|
128
115
|
if @merchantId.to_s.empty?
|
|
129
|
-
err =
|
|
130
|
-
|
|
116
|
+
err = StandardError.new(Constants::ERROR_PREFIX + Constants::MERCHANT_ID_NULL)
|
|
117
|
+
@log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
|
|
118
|
+
raise err
|
|
131
119
|
elsif !@merchantId.instance_of? String
|
|
132
120
|
@merchantId=@merchantId.to_s
|
|
133
121
|
end
|
|
134
122
|
if @keyAlias.to_s.empty?
|
|
135
123
|
@keyAlias = @merchantId
|
|
136
|
-
|
|
124
|
+
@log_obj.logger.warn(ExceptionHandler.new.new_api_warning Constants::WARNING_PREFIX + Constants::KEY_ALIAS_NULL_EMPTY)
|
|
137
125
|
elsif !@keyAlias.instance_of? String
|
|
138
126
|
@keyAlias=@keyAlias.to_s
|
|
139
127
|
elsif @keyAlias != @merchantId
|
|
140
128
|
@keyAlias = @merchantId
|
|
141
|
-
|
|
129
|
+
@log_obj.logger.warn(ExceptionHandler.new.new_api_warning Constants::WARNING_PREFIX + Constants::INCORRECT_KEY_ALIAS)
|
|
142
130
|
end
|
|
143
131
|
if @keyPass.to_s.empty?
|
|
144
132
|
@keyPass = @merchantId
|
|
145
|
-
|
|
133
|
+
@log_obj.logger.warn(ExceptionHandler.new.new_api_warning Constants::WARNING_PREFIX + Constants::KEY_PASS_NULL)
|
|
146
134
|
elsif !@keyPass.instance_of? String
|
|
147
135
|
@keyPass=@keyPass.to_s
|
|
148
136
|
end
|
|
149
137
|
if @keysDirectory.to_s.empty?
|
|
150
138
|
@keysDirectory = Constants::DEFAULT_KEY_DIRECTORY
|
|
151
|
-
|
|
139
|
+
@log_obj.logger.warn(ExceptionHandler.new.new_api_warning Constants::WARNING_PREFIX + Constants::KEY_DIRECTORY_EMPTY + @keysDirectory)
|
|
152
140
|
elsif !@keysDirectory.instance_of? String
|
|
153
141
|
@keysDirectory=@keysDirectory.to_s
|
|
154
142
|
end
|
|
155
143
|
if @keyFilename.to_s.empty?
|
|
156
144
|
@keyFilename = @merchantId
|
|
157
|
-
|
|
145
|
+
@log_obj.logger.warn(ExceptionHandler.new.new_api_warning Constants::WARNING_PREFIX + Constants::KEY_FILE_NAME_NULL_EMPTY)
|
|
158
146
|
elsif !@keyFilename.instance_of? String
|
|
159
147
|
@keyFilename=@keyFilename.to_s
|
|
160
148
|
end
|
|
161
149
|
end
|
|
162
150
|
if @authenticationType.upcase == Constants::AUTH_TYPE_MUTUAL_AUTH
|
|
163
151
|
if @clientId.to_s.empty?
|
|
164
|
-
err =
|
|
165
|
-
|
|
152
|
+
err = StandardError.new(Constants::ERROR_PREFIX + Constants::CLIENT_ID_EMPTY)
|
|
153
|
+
@log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
|
|
154
|
+
raise err
|
|
166
155
|
elsif !@clientId.instance_of? String
|
|
167
156
|
@clientId=@clientId.to_s
|
|
168
157
|
end
|
|
169
158
|
if @clientSecret.to_s.empty?
|
|
170
|
-
err =
|
|
171
|
-
|
|
159
|
+
err = StandardError.new(Constants::ERROR_PREFIX + Constants::CLIENT_SECRET_EMPTY)
|
|
160
|
+
@log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
|
|
161
|
+
raise err
|
|
172
162
|
elsif !@clientSecret.instance_of? String
|
|
173
163
|
@clientSecret=@clientSecret.to_s
|
|
174
164
|
end
|
|
175
165
|
end
|
|
176
166
|
if @authenticationType.upcase == Constants::AUTH_TYPE_OAUTH
|
|
177
167
|
if @accessToken.to_s.empty?
|
|
178
|
-
err =
|
|
179
|
-
|
|
168
|
+
err = StandardError.new(Constants::ERROR_PREFIX + Constants::ACCESS_TOKEN_EMPTY)
|
|
169
|
+
@log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
|
|
170
|
+
raise err
|
|
180
171
|
elsif !@accessToken.instance_of? String
|
|
181
172
|
@accessToken=@accessToken.to_s
|
|
182
173
|
end
|
|
183
174
|
if @refreshToken.to_s.empty?
|
|
184
|
-
err =
|
|
185
|
-
|
|
175
|
+
err = StandardError.new(Constants::ERROR_PREFIX + Constants::REFRESH_TOKEN_EMPTY)
|
|
176
|
+
@log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
|
|
177
|
+
raise err
|
|
186
178
|
elsif !@refreshToken.instance_of? String
|
|
187
179
|
@refreshToken=@refreshToken.to_s
|
|
188
180
|
end
|
|
189
181
|
end
|
|
190
182
|
if @authenticationType.upcase == Constants::AUTH_TYPE_HTTP
|
|
191
183
|
if @merchantId.to_s.empty?
|
|
192
|
-
err =
|
|
193
|
-
|
|
184
|
+
err = StandardError.new(Constants::ERROR_PREFIX + Constants::MERCHANT_ID_NULL)
|
|
185
|
+
@log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
|
|
186
|
+
raise err
|
|
194
187
|
elsif !@merchantId.instance_of? String
|
|
195
188
|
@merchantId=@merchantId.to_s
|
|
196
189
|
end
|
|
197
190
|
if @merchantKeyId.to_s.empty?
|
|
198
|
-
err =
|
|
199
|
-
|
|
191
|
+
err = StandardError.new(Constants::ERROR_PREFIX+ Constants::MERCHANT_KEY_ID_MANDATORY)
|
|
192
|
+
@log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
|
|
193
|
+
raise err
|
|
200
194
|
elsif !@merchantKeyId.instance_of? String
|
|
201
195
|
@merchantKeyId=@merchantKeyId.to_s
|
|
202
196
|
end
|
|
203
197
|
if @merchantSecretKey.to_s.empty?
|
|
204
|
-
err =
|
|
205
|
-
|
|
198
|
+
err = StandardError.new(Constants::ERROR_PREFIX+ Constants::MERCHANT_SECRET_KEY_MANDATORY)
|
|
199
|
+
@log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
|
|
200
|
+
raise err
|
|
206
201
|
elsif !@merchantSecretKey.instance_of? String
|
|
207
202
|
@merchantSecretKey=@merchantSecretKey.to_s
|
|
208
203
|
end
|
|
209
204
|
end
|
|
210
205
|
if @useMetaKey && @portfolioID.to_s.empty?
|
|
211
|
-
err =
|
|
212
|
-
|
|
206
|
+
err = StandardError.new(Constants::ERROR_PREFIX+ Constants::PORTFOLIO_ID_MANDATORY)
|
|
207
|
+
@log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
|
|
208
|
+
raise err
|
|
213
209
|
end
|
|
214
210
|
|
|
215
211
|
if !@proxyAddress.instance_of? String
|
|
@@ -219,6 +215,7 @@ public
|
|
|
219
215
|
@proxyPort=@proxyPort.to_s
|
|
220
216
|
end
|
|
221
217
|
end
|
|
218
|
+
|
|
222
219
|
def logAllProperties(propertyObj)
|
|
223
220
|
merchantConfig = ''
|
|
224
221
|
hiddenProperties = (Constants::HIDDEN_MERCHANT_PROPERTIES).split(',')
|
|
@@ -233,9 +230,9 @@ public
|
|
|
233
230
|
end
|
|
234
231
|
end
|
|
235
232
|
end
|
|
236
|
-
@log_obj.logger.info('
|
|
233
|
+
@log_obj.logger.info('Merchant Configuration :\n' + propertyObj.to_s)
|
|
237
234
|
end
|
|
238
|
-
|
|
235
|
+
|
|
239
236
|
# getter and setter methods
|
|
240
237
|
attr_accessor :merchantId
|
|
241
238
|
attr_accessor :merchantSecretKey
|
|
@@ -261,11 +258,8 @@ public
|
|
|
261
258
|
attr_accessor :requestUrl
|
|
262
259
|
attr_accessor :requestType
|
|
263
260
|
attr_accessor :getId
|
|
264
|
-
attr_accessor :logDirectory
|
|
265
|
-
attr_accessor :logFilename
|
|
266
|
-
attr_accessor :enableLog
|
|
267
|
-
attr_accessor :logSize
|
|
268
261
|
attr_accessor :logger
|
|
262
|
+
attr_accessor :log_config
|
|
269
263
|
attr_accessor :proxyAddress
|
|
270
264
|
attr_accessor :proxyPort
|
|
271
265
|
attr_accessor :requestTarget
|