API
  • 28 Mar 2024
  • Dark
    Light

API

  • Dark
    Light

Article Summary

BuildPXConfig()

A function that accepts a configuration in the form of a map and returns a PxConfig struct.

func BuildPXConfig(config map[string]interface{}) (*PxConfig, error)
  • Parameters
    • map[string]interface{} - A map representing the desired enforcer configuration
  • Returns
    • *PxConfig - A pointer to a HUMAN Security configuration struct required for initializing the enforcer
    • error - An error that occurred, if any, when building the PxConfig struct

GetPxConfigFromJson()

A function that accepts a string representing the path to a JSON file that contains the enforcer configuration and returns a PxConfig struct.

func GetPxConfigFromJson(fileName string) (*PxConfig, error)
  • Parameters
    • string - The path to the configuration JSON file
  • Returns
    • *PxConfig - A pointer to a HUMAN Security configuration struct required for initializing the enforcer
    • error - An error that occurred, if any, when building the PxConfig struct

NewPXConfigBuilder()

A function that returns a new PXConfigBuilder that can be used to build a new PxConfig struct. Once all the desired configurations are set, call Build() to return a pointer to the created PxConfig struct.

func NewPXConfigBuilder(configFile map[string]interface{}) *PXConfigBuilder
  • Parameters
    • map[string]interface{} - A map containing only the px_app_id, px_auth_token, and px_cookie_secret required to initialize the PXConfigBuilder
  • Returns
    • *PXConfigBuilder - A pointer to a struct with dedicated setter functions for each configuration value and a Build() function that returns the PxConfig struct

CreateDefaultHumanSecurityMiddleware()

A function that returns a middleware that can be applied to route handlers. The returned function should be used as a wrapper for HTTP handler functions, applying the HUMAN enforcement logic prior to invoking the handler.

func CreateDefaultHumanSecurityMiddleware(pxConfig *PxConfig, runtime Runtime) func (http.HandlerFunc) http.HandlerFunc
  • Parameters
    • *PxConfig - A HUMAN Security configuration struct required for initializing the enforcer
    • Runtime - An implementation of the Runtime interface
  • Returns
    • func (http.HandlerFunc) http.HandlerFunc - A middleware function that accepts a handler function and returns the same handler function with HUMAN enforcement applied to it

NewHumanSecurityEnforcer()

Creates a new instance of the HumanSecurityEnforcer struct with the provided configuration.

func NewHumanSecurityEnforcer(config *PxConfig, runtime Runtime) *HumanSecurityEnforcer
  • Parameters
    • *PxConfig - A pointer to a HUMAN Security configuration struct required for initializing the enforcer
    • Runtime - An implementation of the Runtime interface
  • Returns
    • *HumanSecurityEnforcer - A pointer to a HUMAN Security enforcer struct required for performing enforcement

HumanSecurityEnforcer

The entity responsible for performing HUMAN enforcement.

Enforce()

Executes the enforcement functionality. It returns a response, a context, and an error, which dictate how to handle the request.

func (humanSecurityEnforcer *HumanSecurityEnforcer) Enforce(req *http.Request, runtime Runtime) (*http.Response, *PxContext, error)
  • Parameters
    • *http.Request - A pointer to the incoming HTTP request to be evaluated
    • Runtime - An implementation of the Runtime interface
  • Returns
    • *http.Response - A pointer to an HTTP response that should be returned to the client (may be either a first-party or a block response)
    • *PxContext - A pointer to a context struct that contains metadata pertaining to the request and the HUMAN decision (e.g., Score, DataEnrichment, etc.)
    • error - An error that occurred, if any, while performing HUMAN enforcement

PostEnforce()

This function is required only for the Credential Intelligence product.

Parses the response to identify if the login request was successful or not, and sends the additional_s2s activity to HUMAN.

func (humanSecurityEnforcer *HumanSecurityEnforcer) PostEnforce(response ResponseWriterWrapper, context *PxContext, runtime Runtime)
  • Parameters
    • ResponseWriterWrapper - A wrapper for the http.ResponseWriter that saves the response body in memory for parsing
    • *PxContext - A pointer to a context struct that contains metadata pertaining to the request and the HUMAN decision (e.g., Score, DataEnrichment, etc.)
    • Runtime - An implementation of the Runtime interface
  • Returns nothing

ShouldSetPxhd()

A utility function that indicates whether or not the PXHD cookie should be set on the response.

func ShouldSetPxhd(context *PxContext) bool
  • Parameters
    • *PxContext - A pointer to a context struct that contains metadata pertaining to the request and the HUMAN decision (e.g., Score, DataEnrichment, etc.)
  • Returns
    • bool - Whether the PXHD cookie should be added as a Set-Cookie header on the HTTP response

GetPxhdCookie()

Returns the PXHD cookie that should be added to the HTTP response. Should only be called if ShouldSetPxhd() returns true.

func GetPxhdCookie(context *PxContext) http.Cookie
  • Parameters
    • *PxContext - A pointer to a context struct that contains metadata pertaining to the request and the HUMAN decision (e.g., Score, DataEnrichment, etc.)
  • Returns
    • http.Cookie - The PXHD cookie as an http.Cookie struct

NewResponseWriterWrapper()

Wraps the provided http.ResponseWriter in a struct that stores the response data in-memory so it can be queried by the PostEnforce() function after the response has been returned to the client.

func NewResponseWriterWrapper(w http.ResponseWriter) ResponseWriterWrapper
  • Parameters
    • http.ResponseWriter - The entity used by the HTTP handler to construct a response
  • Returns
    • ResponseWriterWrapper - A struct that implements the http.ResponseWriter interface and preserves the response data

Was this article helpful?

What's Next