Sha256: 10685b8741cce5d400b666330b459cf677f30c5b2377f3158382a0dc6f7dcd4d
Contents?: true
Size: 1.91 KB
Versions: 3
Compression:
Stored size: 1.91 KB
Contents
# frozen_string_literal: true require 'proxes/services/logger' require 'proxes/request' require 'proxes/policies/request_policy' require 'proxes/helpers/pundit' require 'proxes/helpers/authentication' require 'proxes/services/logger' module ProxES class Security attr_reader :env, :logger include Helpers::Authentication include Helpers::Pundit def initialize(app, logger = nil) @app = app @logger = logger || Services::Logger.instance end def error(message, code = 500) [code, { 'Content-Type' => 'application/json' }, ['{"error":"' + message + '}']] end def call(env) @env = env request = Request.from_env(env) logger.debug '==========================BEFORE================================================' logger.debug '= ' + "Request: #{request.fullpath}".ljust(76) + ' =' logger.debug '= ' + "Endpoint: #{request.endpoint}".ljust(76) + ' =' logger.debug '================================================================================' begin check_basic authorize request rescue StandardError => e logger.debug "Access denied by security layer: #{e.message}" return error 'Forbidden', 403 end request.index = policy_scope(request) if request.indices? logger.debug '==========================AFTER=================================================' logger.debug '= ' + "Request: #{request.fullpath}".ljust(76) + ' =' logger.debug '= ' + "Endpoint: #{request.endpoint}".ljust(76) + ' =' logger.debug '================================================================================' begin @app.call request.env rescue Errno::EHOSTUNREACH error 'Could not reach Elasticsearch at ' + ENV['ELASTICSEARCH_URL'] rescue Errno::ECONNREFUSED error 'Elasticsearch not listening at ' + ENV['ELASTICSEARCH_URL'] end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
proxes-0.3.5 | lib/proxes/security.rb |
proxes-0.3.3 | lib/proxes/security.rb |
proxes-0.3.2 | lib/proxes/security.rb |