コード例 #1
0
def configure(rules = None, responses = None, apikey = None, proxy = None, authview = None, validview = None):
    try:
        IPV_AUTH.configure(apikey = apikey, proxy = proxy, rules = rules, responses = responses, authview = authview(), validview = validview)
    except:
        global IPV_AUTH
        IPV_AUTH = ipvAuthorizer()
        IPV_AUTH.configure(apikey = apikey, proxy = proxy, rules = rules, responses = responses, authview = authview(), validview = validview)
コード例 #2
0
def configure(rules=None,
              responses=None,
              apikey=None,
              proxy=None,
              authview=None,
              validview=None):
    try:
        IPV_AUTH.configure(apikey=apikey,
                           proxy=proxy,
                           rules=rules,
                           responses=responses,
                           authview=authview(),
                           validview=validview)
    except:
        global IPV_AUTH
        IPV_AUTH = ipvAuthorizer()
        IPV_AUTH.configure(apikey=apikey,
                           proxy=proxy,
                           rules=rules,
                           responses=responses,
                           authview=authview(),
                           validview=validview)
コード例 #3
0
"""This module contains the ipvAuth instance to handle authentications"""
import ipviking_api_python.helpers.constants as ipv_consts
from ipviking_api_python.auth.objects import ipvAuthorizer

APIKEY = ipv_consts.SANDBOX_APIKEY
PROXY = ipv_consts.PROXIES['SANDBOX']    
IPV_AUTH = ipvAuthorizer().configure(apikey = APIKEY, proxy = PROXY)

def configure(rules = None, responses = None, apikey = None, proxy = None, authview = None, validview = None):
    try:
        IPV_AUTH.configure(apikey = apikey, proxy = proxy, rules = rules, responses = responses, authview = authview(), validview = validview)
    except:
        global IPV_AUTH
        IPV_AUTH = ipvAuthorizer()
        IPV_AUTH.configure(apikey = apikey, proxy = proxy, rules = rules, responses = responses, authview = authview(), validview = validview)

def validate(request):
    """Runs the IPV_AUTH's validator"""
    orig_path = request.path
    if request.session.get('ipviking'):
        return None
    else:
        ip = request.get_host().split(':')[0]
        if ip == '127.0.0.1':
            ip = '208.74.76.5'
        valid, request, level, context = IPV_AUTH.validate_request(request, ip)
        if valid:
            #if it's valid, we'll return the validview (redirect to request.path)
            request.session['ipviking'] = level
            return IPV_AUTH.validview(request, orig_path)
        else:
コード例 #4
0
"""This will be our IPViking authorizer"""
from ipviking_api_python.helpers.constants import SANDBOX_APIKEY, PROXIES
from ipviking_api_python.auth.objects import IPV_Rule, IPV_Response, ipvAuthorizer

#Here, we're setting up our authentication rules and the authorizer object
rf75 = IPV_Rule(['risk_factor'], lambda rf: rf > 75, "suspicious traffic", 2)
us = IPV_Rule(['geoloc', 'country'], lambda country: country != 'US',
              'us not takin too kindly to Americans', 2)

block = IPV_Response("You been done blocked on account of %s", "{%state%}", {})

rules = [rf75, us]
responses = {2: block}

IPV = ipvAuthorizer()
IPV.configure(rules=rules,
              responses=responses,
              apikey=SANDBOX_APIKEY,
              proxy=PROXIES['SANDBOX'])


def validate(request):
    """Method to validate a request and return blocked if they fail"""
    if not request.session.get('ipviking'):
        #we need to validate them
        ip = request.remote_addr
        if ip == '127.0.0.1':
            ip = '208.74.76.5'  #the API doesn't like localhost, so we'll use the sandbox suggestion
        valid, request, level, context = IPV.validate_request(request, ip)
        if valid:
            return True, level, ''
コード例 #5
0
"""This will be our IPViking authorizer"""
from ipviking_api_python.helpers.constants import SANDBOX_APIKEY, PROXIES
from ipviking_api_python.auth.objects import IPV_Rule, IPV_Response, ipvAuthorizer


# Here, we're setting up our authentication rules and the authorizer object
rf75 = IPV_Rule(["risk_factor"], lambda rf: rf > 75, "suspicious traffic", 2)
us = IPV_Rule(["geoloc", "country"], lambda country: country != "US", "us not takin too kindly to Americans", 2)

block = IPV_Response("You been done blocked on account of %s", "{%state%}", {})

rules = [rf75, us]
responses = {2: block}

IPV = ipvAuthorizer()
IPV.configure(rules=rules, responses=responses, apikey=SANDBOX_APIKEY, proxy=PROXIES["SANDBOX"])


def validate(request):
    """Method to validate a request and return blocked if they fail"""
    if not request.session.get("ipviking"):
        # we need to validate them
        ip = request.remote_addr
        if ip == "127.0.0.1":
            ip = "208.74.76.5"  # the API doesn't like localhost, so we'll use the sandbox suggestion
        valid, request, level, context = IPV.validate_request(request, ip)
        if valid:
            return True, level, ""
        else:
            return False, 0, context["state"]
    else:
コード例 #6
0
"""This module contains the ipvAuth instance to handle authentications"""
import ipviking_api_python.helpers.constants as ipv_consts
from ipviking_api_python.auth.objects import ipvAuthorizer

APIKEY = ipv_consts.SANDBOX_APIKEY
PROXY = ipv_consts.PROXIES['SANDBOX']
IPV_AUTH = ipvAuthorizer().configure(apikey=APIKEY, proxy=PROXY)


def configure(rules=None,
              responses=None,
              apikey=None,
              proxy=None,
              authview=None,
              validview=None):
    try:
        IPV_AUTH.configure(apikey=apikey,
                           proxy=proxy,
                           rules=rules,
                           responses=responses,
                           authview=authview(),
                           validview=validview)
    except:
        global IPV_AUTH
        IPV_AUTH = ipvAuthorizer()
        IPV_AUTH.configure(apikey=apikey,
                           proxy=proxy,
                           rules=rules,
                           responses=responses,
                           authview=authview(),
                           validview=validview)
コード例 #7
0
"""This module contains the ipvAuth class, which handles authentications"""
import ipviking_api_python.helpers.constants as ipv_consts
from ipviking_api_python.auth.objects import ipvAuthorizer

APIKEY = ipv_consts.SANDBOX_APIKEY
PROXY = ipv_consts.PROXIES['SANDBOX']
IPV_AUTH = ipvAuthorizer().configure({'apikey': APIKEY, 'proxy': PROXY})


def configure(self,
              authview=None,
              validview=None,
              apikey=None,
              proxy=None,
              rules=None,
              responses=None):
    try:
        IPV_AUTH.configure(apikey=apikey,
                           proxy=proxy,
                           rules=rules,
                           responses=responses,
                           authview=authview,
                           validview=validview)
    except:
        global IPV_AUTH
        IPV_AUTH = ipvAuthorizer()
        IPV_AUTH.configure(apikey=apikey,
                           proxy=proxy,
                           rules=rules,
                           responses=responses,
                           authview=authview,