X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Ftrust%2Fcredential.py;h=d9368c4a54c109579da16ac06093ce1bb26a947e;hb=1cc8e9613cab8b5b22478de369f259e591c54e6d;hp=34cc7e41ba083bbad8040f38bacca8df39900edd;hpb=9fe1cc1bbb72921e1fe94e9a7997cd387073d863;p=sfa.git diff --git a/sfa/trust/credential.py b/sfa/trust/credential.py index 34cc7e41..d9368c4a 100644 --- a/sfa/trust/credential.py +++ b/sfa/trust/credential.py @@ -256,6 +256,8 @@ class Credential(object): if cred: if isinstance(cred, StringTypes): string = cred + self.type = 'geni_sfa' + self.version = '1.0' elif isinstance(cred, dict): string = cred['geni_value'] self.type = cred['geni_type'] @@ -285,9 +287,12 @@ class Credential(object): break def get_subject(self): + subject = "" if not self.gidObject: self.decode() - return self.gidObject.get_printable_subject() + if self.gidObject: + subject = self.gidObject.get_printable_subject() + return subject # sounds like this should be __repr__ instead ?? def get_summary_tostring(self): @@ -691,6 +696,12 @@ class Credential(object): def decode(self): if not self.xml: return + + doc = None + try: + doc = parseString(self.xml) + except ExpatError,e: + raise CredentialNotVerifiable("Malformed credential") doc = parseString(self.xml) sigs = [] signed_cred = doc.getElementsByTagName("signed-credential") @@ -1051,7 +1062,11 @@ class Credential(object): result += "CREDENTIAL %s\n" % self.get_subject() filename=self.get_filename() if filename: result += "Filename %s\n"%filename - result += " privs: %s\n" % self.get_privileges().save_to_string() + privileges = self.get_privileges() + if privileges: + result += " privs: %s\n" % privileges.save_to_string() + else: + result += " privs: \n" gidCaller = self.get_gid_caller() if gidCaller: result += " gidCaller:\n" @@ -1061,6 +1076,9 @@ class Credential(object): print " gidIssuer:" self.get_signature().get_issuer_gid().dump(8, dump_parents) + if self.expiration: + print " expiration:", self.expiration.isoformat() + gidObject = self.get_gid_object() if gidObject: result += " gidObject:\n"