Add option to disable homeserver SSL verification

This commit is contained in:
Tulir Asokan
2018-03-07 21:18:44 +02:00
parent 30768d0a06
commit 6ff89d1fe4
4 changed files with 11 additions and 3 deletions
+1
View File
@@ -2,6 +2,7 @@
homeserver: homeserver:
address: https://matrix.org address: https://matrix.org
domain: matrix.org domain: matrix.org
verify_ssl: true
# Application service host/registration related details # Application service host/registration related details
# Changing these values requires regeneration of the registration. # Changing these values requires regeneration of the registration.
+6 -2
View File
@@ -28,9 +28,10 @@ from .state_store import StateStore
class AppService: class AppService:
def __init__(self, server, domain, as_token, hs_token, bot_localpart, loop=None, log=None, def __init__(self, server, domain, as_token, hs_token, bot_localpart, loop=None, log=None,
query_user=None, query_alias=None): verify_ssl=True, query_user=None, query_alias=None):
self.server = server self.server = server
self.domain = domain self.domain = domain
self.verify_ssl = verify_ssl
self.as_token = as_token self.as_token = as_token
self.hs_token = hs_token self.hs_token = hs_token
self.bot_mxid = f"@{bot_localpart}:{domain}" self.bot_mxid = f"@{bot_localpart}:{domain}"
@@ -80,7 +81,10 @@ class AppService:
@contextmanager @contextmanager
def run(self, host="127.0.0.1", port=8080): def run(self, host="127.0.0.1", port=8080):
self._http_session = aiohttp.ClientSession(loop=self.loop) connector = None
if self.server.startswith("https://") and not self.verify_ssl:
connector = aiohttp.TCPConnector(verify_ssl=False)
self._http_session = aiohttp.ClientSession(loop=self.loop, connector=connector)
self._intent = HTTPAPI(base_url=self.server, domain=self.domain, bot_mxid=self.bot_mxid, self._intent = HTTPAPI(base_url=self.server, domain=self.domain, bot_mxid=self.bot_mxid,
token=self.as_token, log=self.log, state_store=self.state_store, token=self.as_token, log=self.log, state_store=self.state_store,
client_session=self._http_session).bot_intent() client_session=self._http_session).bot_intent()
+2 -1
View File
@@ -85,7 +85,8 @@ loop = asyncio.get_event_loop()
appserv = AppService(config["homeserver.address"], config["homeserver.domain"], appserv = AppService(config["homeserver.address"], config["homeserver.domain"],
config["appservice.as_token"], config["appservice.hs_token"], config["appservice.as_token"], config["appservice.hs_token"],
config["appservice.bot_username"], log="mau.as", loop=loop) config["appservice.bot_username"], log="mau.as", loop=loop,
verify_ssl=config["homeserver.verify_ssl"])
context = Context(appserv, db_session, config, loop, None, None, telethon_session_container) context = Context(appserv, db_session, config, loop, None, None, telethon_session_container)
+2
View File
@@ -183,6 +183,8 @@ class Config(DictWithRecursion):
"Use inline images instead of m.image to make rich captions possible.\n" "Use inline images instead of m.image to make rich captions possible.\n"
"N.B. Inline images are not supported on all clients (e.g. Riot iOS).") "N.B. Inline images are not supported on all clients (e.g. Riot iOS).")
self.comment_newline("bridge.inline_images") self.comment_newline("bridge.inline_images")
if "homeserver.verify_ssl" not in self:
self["homeserver.verify_ssl"] = True
self["version"] = 2 self["version"] = 2
return self["version"] return self["version"]