Loading bridgedb/configure.py +5 −2 Original line number Diff line number Diff line Loading @@ -165,11 +165,14 @@ def loadConfig(configFile=None, configCls=None): if os.path.isfile(config.MOAT_SHIM_TOKEN_FILE): with open(config.MOAT_SHIM_TOKEN_FILE) as f: setattr(config, "MOAT_SHIM_TOKEN", f.read()) tokens = f.read().split("\n") while "" in tokens: tokens.remove("") setattr(config, "MOAT_SHIM_TOKENS", tokens) if not os.path.isfile(config.MOAT_DUMMY_BRIDGES_FILE): logging.warning("The dummy bridges file '%s' doesn't exist" % (config.MOAT_DUMMY_BRIDGES_FILE,)) else: config.MOAT_SHIM_TOKEN = None config.MOAT_SHIM_TOKENS = [] logging.info("No shim-token provided, moat will answer each request with bridge authority bridges.") return config Loading bridgedb/distributors/moat/server.py +6 −6 Original line number Diff line number Diff line Loading @@ -493,7 +493,7 @@ class CaptchaCheckResource(CaptchaResource): def __init__(self, distributor, schedule, N=1, hmacKey=None, publicKey=None, secretKey=None, useForwardedHeader=True, skipInvalid=False, shim_token=None): shim_tokens=None): """Create a new resource for checking CAPTCHA solutions and returning bridges to a client. Loading @@ -508,7 +508,7 @@ class CaptchaCheckResource(CaptchaResource): X-Forwarded-For header instead of the source IP address. :param bool skipInvalid: Skip invalid (e.g., loopback, private) addresses when parsing the X-Forwarded-For header. :param bytes shim_token: the token that should be included on the header :param bytes shim_tokens: a list of tokens that should be included on the header 'shim-token' on each request or dummy bridges will be provided. """ CaptchaResource.__init__(self, hmacKey, publicKey, secretKey, Loading @@ -517,7 +517,7 @@ class CaptchaCheckResource(CaptchaResource): self.schedule = schedule self.nBridgesToGive = N self.useForwardedHeader = useForwardedHeader self.shim_token = shim_token self.shim_tokens = shim_tokens def createBridgeRequest(self, ip, data): """Create an appropriate :class:`MoatBridgeRequest` from the ``data`` Loading Loading @@ -763,7 +763,7 @@ class CaptchaCheckResource(CaptchaResource): qrcode = None bridgeRequest = self.createBridgeRequest(clientIP, client_data) bridges = [] dummyBridges = self.shim_token and request.getHeader('shim-token') == self.shim_token dummyBridges = self.shim_tokens and request.getHeader('shim-token') in self.shim_tokens bridges = self.getBridges(bridgeRequest, dummyBridges) bridgeLines = self.getBridgeLines(bridgeRequest, bridges) moatMetrix.recordValidMoatRequest(request) Loading Loading @@ -837,7 +837,7 @@ def addMoatServer(config, distributor): fwdHeaders = config.MOAT_USE_IP_FROM_FORWARDED_HEADER numBridges = config.MOAT_BRIDGES_PER_ANSWER skipInvalid = config.MOAT_SKIP_LOOPBACK_ADDRESSES shim_token = config.MOAT_SHIM_TOKEN shim_tokens = config.MOAT_SHIM_TOKENS logging.info("Starting moat servers...") Loading Loading @@ -868,7 +868,7 @@ def addMoatServer(config, distributor): check = CaptchaCheckResource(distributor, sched, numBridges, hmacKey, publicKey, secretKey, fwdHeaders, skipInvalid, shim_token) shim_tokens) moat.putChild(b"fetch", fetch) moat.putChild(b"check", check) Loading bridgedb/test/moat_helpers.py +1 −1 Original line number Diff line number Diff line Loading @@ -69,7 +69,7 @@ MOAT_N_IP_CLUSTERS = %r MOAT_ROTATION_PERIOD = %r MOAT_GIMP_CAPTCHA_HMAC_KEYFILE = %r MOAT_GIMP_CAPTCHA_RSA_KEYFILE = %r MOAT_SHIM_TOKEN = "" MOAT_SHIM_TOKENS = "" """ % (GIMP_CAPTCHA_DIR, SERVER_PUBLIC_FQDN, SUPPORTED_TRANSPORTS, Loading Loading
bridgedb/configure.py +5 −2 Original line number Diff line number Diff line Loading @@ -165,11 +165,14 @@ def loadConfig(configFile=None, configCls=None): if os.path.isfile(config.MOAT_SHIM_TOKEN_FILE): with open(config.MOAT_SHIM_TOKEN_FILE) as f: setattr(config, "MOAT_SHIM_TOKEN", f.read()) tokens = f.read().split("\n") while "" in tokens: tokens.remove("") setattr(config, "MOAT_SHIM_TOKENS", tokens) if not os.path.isfile(config.MOAT_DUMMY_BRIDGES_FILE): logging.warning("The dummy bridges file '%s' doesn't exist" % (config.MOAT_DUMMY_BRIDGES_FILE,)) else: config.MOAT_SHIM_TOKEN = None config.MOAT_SHIM_TOKENS = [] logging.info("No shim-token provided, moat will answer each request with bridge authority bridges.") return config Loading
bridgedb/distributors/moat/server.py +6 −6 Original line number Diff line number Diff line Loading @@ -493,7 +493,7 @@ class CaptchaCheckResource(CaptchaResource): def __init__(self, distributor, schedule, N=1, hmacKey=None, publicKey=None, secretKey=None, useForwardedHeader=True, skipInvalid=False, shim_token=None): shim_tokens=None): """Create a new resource for checking CAPTCHA solutions and returning bridges to a client. Loading @@ -508,7 +508,7 @@ class CaptchaCheckResource(CaptchaResource): X-Forwarded-For header instead of the source IP address. :param bool skipInvalid: Skip invalid (e.g., loopback, private) addresses when parsing the X-Forwarded-For header. :param bytes shim_token: the token that should be included on the header :param bytes shim_tokens: a list of tokens that should be included on the header 'shim-token' on each request or dummy bridges will be provided. """ CaptchaResource.__init__(self, hmacKey, publicKey, secretKey, Loading @@ -517,7 +517,7 @@ class CaptchaCheckResource(CaptchaResource): self.schedule = schedule self.nBridgesToGive = N self.useForwardedHeader = useForwardedHeader self.shim_token = shim_token self.shim_tokens = shim_tokens def createBridgeRequest(self, ip, data): """Create an appropriate :class:`MoatBridgeRequest` from the ``data`` Loading Loading @@ -763,7 +763,7 @@ class CaptchaCheckResource(CaptchaResource): qrcode = None bridgeRequest = self.createBridgeRequest(clientIP, client_data) bridges = [] dummyBridges = self.shim_token and request.getHeader('shim-token') == self.shim_token dummyBridges = self.shim_tokens and request.getHeader('shim-token') in self.shim_tokens bridges = self.getBridges(bridgeRequest, dummyBridges) bridgeLines = self.getBridgeLines(bridgeRequest, bridges) moatMetrix.recordValidMoatRequest(request) Loading Loading @@ -837,7 +837,7 @@ def addMoatServer(config, distributor): fwdHeaders = config.MOAT_USE_IP_FROM_FORWARDED_HEADER numBridges = config.MOAT_BRIDGES_PER_ANSWER skipInvalid = config.MOAT_SKIP_LOOPBACK_ADDRESSES shim_token = config.MOAT_SHIM_TOKEN shim_tokens = config.MOAT_SHIM_TOKENS logging.info("Starting moat servers...") Loading Loading @@ -868,7 +868,7 @@ def addMoatServer(config, distributor): check = CaptchaCheckResource(distributor, sched, numBridges, hmacKey, publicKey, secretKey, fwdHeaders, skipInvalid, shim_token) shim_tokens) moat.putChild(b"fetch", fetch) moat.putChild(b"check", check) Loading
bridgedb/test/moat_helpers.py +1 −1 Original line number Diff line number Diff line Loading @@ -69,7 +69,7 @@ MOAT_N_IP_CLUSTERS = %r MOAT_ROTATION_PERIOD = %r MOAT_GIMP_CAPTCHA_HMAC_KEYFILE = %r MOAT_GIMP_CAPTCHA_RSA_KEYFILE = %r MOAT_SHIM_TOKEN = "" MOAT_SHIM_TOKENS = "" """ % (GIMP_CAPTCHA_DIR, SERVER_PUBLIC_FQDN, SUPPORTED_TRANSPORTS, Loading