Skip to content

Commit 65674f8

Browse files
fix: mdstore: fix exception handler in InMemoryMetaData.parse
The exception handler in InMemoryMetaData.parse was failing for subclasses other then `MetaDataFile` with: AttributeError: 'MetaDataExtern' object has no attribute 'filename' - because `self.filename` is only defined for MetaDataFile but not MetaDataExtern The handler was essentially expecting it would only be invoked for MetaDataFile and not other subclasses of InMemoryMetaData. Provide useful descriptive messages for MetaDataFile and MetaDataExtern subclassses - and fall back to a generic (but safe) message otherwise.
1 parent a084c8f commit 65674f8

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

src/saml2/mdstore.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -618,7 +618,10 @@ def parse(self, xmlstr):
618618
try:
619619
self.entities_descr = md.entities_descriptor_from_string(xmlstr)
620620
except Exception as e:
621-
raise SAMLError(f'Failed to parse metadata file: {self.filename}') from e
621+
_md_desc = (f'metadata file: {self.filename}' if isinstance(self,MetaDataFile) else
622+
f'remote metadata: {self.url}' if isinstance(self, MetaDataExtern) else
623+
'metadata')
624+
raise SAMLError(f'Failed to parse {_md_desc}') from e
622625

623626
if not self.entities_descr:
624627
self.entity_descr = md.entity_descriptor_from_string(xmlstr)

0 commit comments

Comments
 (0)