Skip to content

Commit

Permalink
fix(jans-pycloudlib): unwanted secrets pulled from google secrets man…
Browse files Browse the repository at this point in the history
…ager (#5900)
  • Loading branch information
iromli authored Aug 23, 2023
1 parent b799166 commit 36cd179
Showing 1 changed file with 15 additions and 9 deletions.
24 changes: 15 additions & 9 deletions jans-pycloudlib/jans/pycloudlib/secret/google_secret.py
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ def get_all(self) -> dict[str, _t.Any]:
resp = self.client.list_secrets(
request={
"parent": f"projects/{self.project_id}",
"filter": f"name:{self.google_secret_name}",
"filter": f"name:secrets/{self.google_secret_name}",
}
)

Expand All @@ -162,9 +162,9 @@ def get_all(self) -> dict[str, _t.Any]:
if not payload:
return {}

try:
data = self._maybe_legacy_payload(payload)
except lzma.LZMAError:
data = self._maybe_legacy_payload(payload)
if not data:
logger.warning("Unable to load payload with zlib/lzma format; trying to load using new format.")
data = json.loads(payload)

# decoded payload
Expand Down Expand Up @@ -310,17 +310,23 @@ def _prepare_secret_multipart(self, part: int) -> str:
return name

def _maybe_legacy_payload(self, payload: bytes) -> dict[str, _t.Any]:
try:
data = {}
payload_str = ""

with suppress(zlib.error):
# previously data is compressed using zlib
payload_str = zlib.decompress(payload).decode("UTF-8")
logger.warning("Decompressed legacy data.")
except zlib.error:
payload_str = lzma.decompress(payload).decode("UTF-8")

if not payload_str:
with suppress(lzma.LZMAError):
payload_str = lzma.decompress(payload).decode("UTF-8")

if not payload_str:
return data

try:
# previously data is double-encrypted
data: dict[str, _t.Any] = json.loads(self._decrypt(payload_str))
logger.warning("Loaded legacy data.")
except binascii.Error:
data = json.loads(payload_str)
return data

0 comments on commit 36cd179

Please # to comment.