diff --git a/app/models/license.rb b/app/models/license.rb index 4a63ba78..97ac5657 100755 --- a/app/models/license.rb +++ b/app/models/license.rb @@ -32,7 +32,7 @@ class License aes_key, aes_iv = aes.export_to_file(lookup) ##Check from local redis - if available load local otherwise get from remote - cache_key = "#{lookup}:license:#{aes_key}:hostname" + cache_key = "#{lookup}:license:#{aes_key}:#{aes_iv}:hostname" cache_license = nil diff --git a/config/initializers/action_controller.rb b/config/initializers/action_controller.rb index b550f395..518f046c 100644 --- a/config/initializers/action_controller.rb +++ b/config/initializers/action_controller.rb @@ -14,7 +14,7 @@ class ActionController::Base private def lookup_domain - if ENV["SERVER_MODE"] == "cloud" && request.subdomains.last && request.subdomains.last != "www" + if ENV["SERVER_MODE"] == "cloud" && request.subdomains.first && request.subdomains.first != "www" if license = cache_license # request.subdomain.downcase logger.info "Location - " + license.dbschema ActiveRecord::Base.establish_connection(website_connection(license)) @@ -23,7 +23,7 @@ class ActionController::Base logger.info 'License is nil' not_found end - elsif ENV["SERVER_MODE"] == "application" || request.subdomains.last && request.subdomains.last != "www" + elsif ENV["SERVER_MODE"] == "application" || request.subdomains.first && request.subdomains.first != "www" # check for license file if !current_license.exists? redirect_to activate_path @@ -31,7 +31,14 @@ class ActionController::Base redirect_to review_license_path end else - not_found + if ENV["SERVER_MODE"] == "cloud" && (request.remote_ip == "127.0.0.1" || request.remote_ip == "::1") + respond_to do |format| + format.html { render plain: "OK", status: :ok } + format.json { render json: { status: "ok" } } + end + else + not_found + end end end @@ -96,7 +103,7 @@ class ActionController::API private def lookup_domain - if ENV["SERVER_MODE"] == "cloud" && request.subdomains.last && request.subdomains.last != "www" + if ENV["SERVER_MODE"] == "cloud" && request.subdomains.first && request.subdomains.first != "www" if license = cache_license # request.subdomain.downcase logger.info "Location - " + license.dbschema ActiveRecord::Base.establish_connection(website_connection(license)) @@ -105,10 +112,17 @@ class ActionController::API logger.info 'License is nil' not_found end - elsif ENV["SERVER_MODE"] == "application" || (request.subdomains.last && request.subdomains.last != "www") + elsif ENV["SERVER_MODE"] == "application" || (request.subdomains.first && request.subdomains.first != "www") not_found unless current_license.exists? && !current_license.expired? else - not_found + if ENV["SERVER_MODE"] == "cloud" && (request.remote_ip == "127.0.0.1" || request.remote_ip == "::1") + respond_to do |format| + format.html { render plain: "OK", status: :ok } + format.json { render json: { status: "ok" } } + end + else + not_found + end end end