def _verify(self, environ, start_response):
logger = self.config['logger']
ctx = px_context.build_context(environ, self.config)
if ctx.get('module_mode') == 'inactive' or is_static_file(ctx):
logger.debug('Filter static file request. uri: ' + ctx.get('uri'))
return self.app(environ, start_response)
cookies = Cookie.SimpleCookie(environ.get('HTTP_COOKIE'))
if self.config.get('captcha_enabled') and cookies.get('_pxCaptcha') and cookies.get('_pxCaptcha').value:
pxCaptcha = cookies.get('_pxCaptcha').value
if px_captcha.verify(ctx, self.config, pxCaptcha):
logger.debug('User passed captcha verification. user ip: ' + ctx.get('socket_ip'))
return self.app(environ, start_response)
# PX Cookie verification
if not px_cookie.verify(ctx, self.config) and self.config.get('server_calls_enabled', True):
# Server-to-Server verification fallback
if not px_api.verify(ctx, self.config):
return self.app(environ, start_response)
return self.handle_verification(ctx, self.config, environ, start_response)
评论列表
文章目录