Module: PxModule

Defined in:
lib/perimeter_x.rb,
lib/perimeterx/version.rb,
lib/perimeterx/configuration.rb,
lib/perimeterx/utils/px_logger.rb,
lib/perimeterx/utils/px_constants.rb,
lib/perimeterx/utils/px_http_client.rb,
lib/perimeterx/utils/px_template_factory.rb,
lib/perimeterx/internal/perimeter_x_cookie.rb,
lib/perimeterx/internal/perimeter_x_context.rb,
lib/perimeterx/internal/perimeter_x_cookie_v1.rb,
lib/perimeterx/internal/perimeter_x_cookie_v3.rb,
lib/perimeterx/internal/clients/perimeter_x_risk_client.rb,
lib/perimeterx/internal/clients/perimeter_x_activity_client.rb,
lib/perimeterx/internal/validators/perimeter_x_s2s_validator.rb,
lib/perimeterx/internal/validators/perimeter_x_cookie_validator.rb,
lib/perimeterx/internal/validators/perimeter_x_captcha_validator.rb

Defined Under Namespace

Modules: PxTemplateFactory Classes: Configuration, PerimeterX, PerimeterXContext, PerimeterxActivitiesClient, PerimeterxCaptchaValidator, PerimeterxCookie, PerimeterxCookieV1, PerimeterxCookieV3, PerimeterxCookieValidator, PerimeterxRiskClient, PerimeterxS2SValidator, PxHttpClient, PxLogger

Constant Summary collapse

VERSION =
'1.0.5'
MONITOR_MODE =

Misc

1
ACTIVE_MODE =
2
RISK_MODE_ACTIVE =
"active_blocking"
RISK_MODE_MONITOR =
"monitor"
SDK_NAME =
"RUBY SDK v#{PxModule::VERSION}"
API_V1_S2S =

Routes

"/api/v1/collector/s2s"
API_V1_CAPTCHA =
"/api/v1/risk/captcha"
API_V2_RISK =
"/api/v2/risk"
BLOCK_ACTIVITY =

Activity Types

"block"
PAGE_REQUESTED_ACTIVITY =
"page_requested"
"no_cookie"
"invalid_cookie"
"cookie_expired"
"cookie_high_score"
"cookie_validation_failed"
"cookie_decryption_failed"
BLOCK_TEMPLATE =

Templates

"block.mustache"
CAPTCHA_TEMPLATE =
"captcha.mustache"
PROP_REF_ID =

Tempalte Props

:refId
PROP_APP_ID =
:appId
PROP_VID =
:vid
PROP_UUID =
:uuid
PROP_LOGO_VISIBILITY =
:logoVisibility
PROP_CUSTOM_LOGO =
:customLogo
PROP_CSS_REF =
:cssRef
PROP_JS_REF =
:jsRef
VISIBLE =
'visible'
HIDDEN =
'hidden'

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.configure(params) ⇒ Object



39
40
41
# File 'lib/perimeter_x.rb', line 39

def self.configure(params)
  @px_instance = PerimeterX.configure(params)
end

Instance Method Details

#px_verify_requestObject

Module expose API



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/perimeter_x.rb', line 15

def px_verify_request
  verified, px_ctx = PerimeterX.instance.verify(env)

  # Invalidate _pxCaptcha, can be done only on the controller level
  cookies[:_pxCaptcha] = { value: "", expires: -1.minutes.from_now }

  if (!verified)
    # In case custon block handler exists
    if (PerimeterX.instance.px_config.key?(:custom_block_handler))
      PerimeterX.instance.px_config[:logger].debug("PxModule[px_verify_request]: custom_block_handler triggered")
      return instance_exec(px_ctx, &PerimeterX.instance.px_config[:custom_block_handler])
    else
      # Generate template
      PerimeterX.instance.px_config[:logger].debug("PxModule[px_verify_request]: sending default block page")
      html = PxTemplateFactory.get_template(px_ctx, PerimeterX.instance.px_config)
      response.headers["Content-Type"] = "text/html"
      response.status = 403
      render :html => html
    end
  end

  return verified
end