Class: PxModule::PerimeterX
- Inherits:
-
Object
- Object
- PxModule::PerimeterX
- Defined in:
- lib/perimeter_x.rb
Overview
PerimeterX Module
Instance Attribute Summary collapse
-
#px_activity_client ⇒ Object
Returns the value of attribute px_activity_client.
-
#px_config ⇒ Object
readonly
Returns the value of attribute px_config.
-
#px_http_client ⇒ Object
Returns the value of attribute px_http_client.
Class Method Summary collapse
-
.set_basic_config(basic_config) ⇒ Object
Static methods.
Instance Method Summary collapse
-
#initialize(request_config) ⇒ PerimeterX
constructor
A new instance of PerimeterX.
-
#verify(env) ⇒ Object
Instance Methods.
Constructor Details
#initialize(request_config) ⇒ PerimeterX
Returns a new instance of PerimeterX.
172 173 174 175 176 177 178 179 180 181 182 183 |
# File 'lib/perimeter_x.rb', line 172 def initialize(request_config) @px_config = Configuration.new(request_config).configuration @logger = @px_config[:logger] @px_http_client = PxHttpClient.new(@px_config) @px_activity_client = PerimeterxActivitiesClient.new(@px_config, @px_http_client) = PerimeterxCookieValidator.new(@px_config) @px_s2s_validator = PerimeterxS2SValidator.new(@px_config, @px_http_client) @logger.debug('PerimeterX[initialize]') end |
Instance Attribute Details
#px_activity_client ⇒ Object
Returns the value of attribute px_activity_client.
123 124 125 |
# File 'lib/perimeter_x.rb', line 123 def px_activity_client @px_activity_client end |
#px_config ⇒ Object (readonly)
Returns the value of attribute px_config.
121 122 123 |
# File 'lib/perimeter_x.rb', line 121 def px_config @px_config end |
#px_http_client ⇒ Object
Returns the value of attribute px_http_client.
122 123 124 |
# File 'lib/perimeter_x.rb', line 122 def px_http_client @px_http_client end |
Class Method Details
.set_basic_config(basic_config) ⇒ Object
Static methods
126 127 128 |
# File 'lib/perimeter_x.rb', line 126 def self.set_basic_config(basic_config) Configuration.set_basic_config(basic_config) end |
Instance Method Details
#verify(env) ⇒ Object
Instance Methods
131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 |
# File 'lib/perimeter_x.rb', line 131 def verify(env) begin # check module_enabled @logger.debug('PerimeterX[pxVerify]') if !@px_config[:module_enabled] @logger.warn('Module is disabled') return nil end req = ActionDispatch::Request.new(env) # filter whitelist routes url_path = URI.parse(req.original_url).path if url_path && !url_path.empty? if check_whitelist_routes(px_config[:whitelist_routes], url_path) @logger.debug("PerimeterX[pxVerify]: whitelist route: #{url_path}") return nil end end # create context px_ctx = PerimeterXContext.new(@px_config, req) # Cookie phase , px_ctx = .verify(px_ctx) if ! if !px_ctx.context[:mobile_error].nil? px_ctx.context[:s2s_call_reason] = "mobile_error_#{px_ctx.context[:mobile_error]}" end @px_s2s_validator.verify(px_ctx) end return handle_verification(px_ctx) rescue Exception => e @logger.error("#{e.backtrace.first}: #{e.message} (#{e.class})") e.backtrace.drop(1).map {|s| @logger.error("\t#{s}")} return nil end end |