diff --git a/.gitignore b/.gitignore index 6e0c5583..4f0ac524 100755 --- a/.gitignore +++ b/.gitignore @@ -37,6 +37,7 @@ pickle-email-*.html .rbenv-version config/deploy/config/* config/puma.rb +config/shops.json !/log/.keep !/tmp/.keep .ruby-version diff --git a/app/models/license.rb b/app/models/license.rb index b800f7ea..f6b29820 100755 --- a/app/models/license.rb +++ b/app/models/license.rb @@ -24,7 +24,9 @@ class License end def detail_with_local_cache(lookup) - + + aes = MyAesCrypt.new + aes_key, aes_iv = aes.export_to_file(lookup) # flag = ENV["AES_IV"] # # Check Exists IV # if flag == "<%= ENV['AES_IV'] %>" @@ -36,8 +38,8 @@ class License # aes_iv = ENV["AES_IV"] # end ##Check from local redis - if available load local otherwise get from remote - cache_key = "#{lookup}:license:#{key}:hostname" - + cache_key = "#{lookup}:license:#{aes_key}:hostname" + byebug # No Needs for current # @secret = key @@ -54,7 +56,7 @@ class License if cache_license.nil? ##change the d/e key # @options = { query: {device: "SXlite", lookup: lookup, skey: @secret, token: SECRETS_CONFIG['provision_key']} } - @params = { query: { lookup_type: self.server_mode, lookup: lookup, iv_key: iv} } + @params = { query: { lookup_type: self.server_mode, lookup: lookup, iv_key: aes_iv} } response = self.class.get("/subdomain", @params) @license = response.parsed_response diff --git a/app/models/my_aes_crypt.rb b/app/models/my_aes_crypt.rb index 1473da45..b5a69400 100644 --- a/app/models/my_aes_crypt.rb +++ b/app/models/my_aes_crypt.rb @@ -31,15 +31,35 @@ class MyAesCrypt file_path = "config/shops.json" aes_key, aes_iv = export_key(passphrase) tmpHash = { - "lookup" => passphrase, - "key" => aes_key, - "iv" => aes_iv + "lookup" => passphrase = { + "key" => aes_key, + "iv" => aes_iv + } } - File.open(file_path, "w") { |io| - io.write(tmpHash.to_json) - } + shop_data = File.read(file_path) + if shop_data != "" + shop_json = JSON.parse(shop_data) + byebug + shop_json.each do |j| + if j == passphrase + j.each do |k| + return k["key"], k["iv"] + end + end + end + shop_json << tmpHash + + File.open(file_path, "w") { |io| + io.puts JSON.pretty_generate(shop_json) + } + else + File.open(file_path, "w") { |io| + io.write(tmpHash.to_json) + } + end + return aes_key, aes_iv end private diff --git a/config/secrets.yml b/config/secrets.yml index af242402..23c287ba 100755 --- a/config/secrets.yml +++ b/config/secrets.yml @@ -13,7 +13,7 @@ development: secret_key_base: b61d85f8ed2a1a9e0eeece3443b3e8f838d002cc1d9f32115d8e93db920e2957adfedc57501d44741211538f3108b742cdeada87d5bfae796c53da1f90a3cd61 sx_provision_url: 192.168.1.147:3002/api #connect.smartsales.asia/api #provision.zsai.ws/api - server_mode: application + server_mode: cloud cipher_type: AES-256-CBC sx_key: Wh@t1$C2L aes_key: <%= ENV['AES_KEY'] %>