<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>On Jan 9, 2013, at 9:26 AM, Peter Westlake &lt;<a href="mailto:peter.westlake@pobox.com">peter.westlake@pobox.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><blockquote type="cite" style="font-family: Menlo; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; ">I am not an expert in Twisted, but from my understanding, the "string"<br>requirement is there to provide a plugable interface. So that you can<br>have generic credentials checkers, working with generic realms.<br>Having simple "strings" could also help with AvatarId serialization,<br>in case you have the CredentialsChecker on one computer and the you<br>will pass them over network/socket to a remote Realm.<br></blockquote><br style="font-family: Menlo; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span style="font-family: Menlo; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; display: inline !important; float: none; ">Those are both good points! I'll leave it this way until there's</span><br style="font-family: Menlo; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span style="font-family: Menlo; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; display: inline !important; float: none; ">a more official way of doing it.</span><br style="font-family: Menlo; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "></blockquote></div><br><div>I hope it's clear that just hard-coding your avatars and realms to work only with each other is a sub-optimal solution :).</div><div><br></div><div>The architecture of cred is supposed to be that you can plug realms and checkers together so that a change to your authentication backend doesn't completely change your application. &nbsp;Of course, that architecture is flawed in the sense that a string is a bit too narrow of a communication channel to get information about the authenticated user from one to the other, especially in cases where the application needs information from a directory service to function.</div><div><br></div><div>If you're interested in an improved, official way to deal with this use-case, the best way to do that would be to get involved and actively try to specify what you need. &nbsp;I've got similar use-cases at work, as you can see here: &lt;<a href="http://trac.calendarserver.org/browser/CalendarServer/trunk/twistedcaldav/directory/idirectory.py">http://trac.calendarserver.org/browser/CalendarServer/trunk/twistedcaldav/directory/idirectory.py</a>&gt; so I'd be happy to talk to you about some ideas.</div><div><br></div><div>The best way to predict the future is to invent it. :)</div><div><br></div><div>-glyph</div></body></html>