From 6e3b7ff132c526d459d35a63524be2c8d0e9ead9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AD=A3=E6=B1=B0?= Date: Fri, 23 Feb 2024 02:47:47 +0800 Subject: [PATCH] Fix the esi problem for Serenity when setting --- service/esiAccess.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/service/esiAccess.py b/service/esiAccess.py index aa5a507fb..1181c176d 100644 --- a/service/esiAccess.py +++ b/service/esiAccess.py @@ -1,6 +1,7 @@ # noinspection PyPackageRequirements from collections import namedtuple +import requests from logbook import Logger import uuid import time @@ -72,6 +73,8 @@ class EsiAccess: self._session.headers.update(self._basicHeaders) self._session.proxies = NetworkSettings.getInstance().getProxySettingsInRequestsFormat() + self.mem_cached_session = {} + # Set up cached session. This is only used for SSO meta data for now, but can be expanded to actually handle # various ESI caching (using ETag, for example) in the future self.cached_session = CachedSession( @@ -88,11 +91,20 @@ class EsiAccess: def init(self, server_base): self.server_base: config.ApiServer = server_base self.server_name = self.server_base.name - meta_call = self.cached_session.get("https://%s/.well-known/oauth-authorization-server" % self.server_base.sso) + try: + meta_call = self.cached_session.get("https://%s/.well-known/oauth-authorization-server" % self.server_base.sso) + except: + # The http data of expire_after in evepc.163.com is -1 + meta_call = requests.get("https://%s/.well-known/oauth-authorization-server" % self.server_base.sso) + meta_call.raise_for_status() self.server_meta = meta_call.json() - jwks_call = self.cached_session.get(self.server_meta["jwks_uri"]) + try: + jwks_call = self.cached_session.get(self.server_meta["jwks_uri"]) + except: + jwks_call = requests.get(self.server_meta["jwks_uri"]) + jwks_call.raise_for_status() self.jwks = jwks_call.json()