cybersource_rest_client 0.0.37 → 0.0.38
Sign up to get free protection for your applications and to get access to all the features.
- 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
|