[ballrace-developer] superuser-action
Status: Pre-Alpha
Brought to you by:
magrokosmos
|
From: martin g. <mar...@ba...> - 2003-12-06 09:44:42
|
hello, wegen der frage ob es moeglich ist eine "superuser"-action fuer reseller zu bauen damit die sich als customer einloggen koennen hier mal ein unproofed concept: 1 reseller klickt bei einem seiner kunden "su", der request geht auf eine "SuperUserAction" welche versch. informationen zu reseller und kunde speichert und weiterleitet auf eine ressource die explizit nur fuer customer zugaenglich ist. 2 tomcat leitet weiter an login-"page" (/login.do) und speichert sich den pfad der urspruenglich gewuenschten ressource. 3 in der login.do-action wissen wir dass gerade ein reseller eine superuser-action ausfuehren will, bauen einen wrapper fuer den HttpServletRequest (implementiert auch HttpServletRequest und bekommt im konstruktor den HttpServletRequest von tomcat, an den er die "standard"-operationen delegiert). der wrapper bekommt dann von uns die authentifizierungsinformationen fuer den customer (was sonst im formular eingegeben werden wuerde), dann wird nach /j_security_check weitergeleitet (ist die url auf der tomcat die authentication durchfuehrt) 4 tomcat fragt auf /j_security_check benutzername und passwort ab (j_username, j_password), das nimmt er aus dem HttpServletRequest den er bekommt, was hier dann unser wrapper ist, der ihm also die richtigen auth-infos geben kann. 5 auth erfolgreich -> tomcat leitet weiter zu der urspruenglich gewuenschten ressource (die er sich gespeichert hatte), das waere dann die homepage vom customer-interface. offen noch: - evtl ist es nicht moeglich beide sessions (reseller + customer) parallel laufen zu lassen, also auch explizit eine neue session zu erzeugen ohne die "alte" zu zerstoeren, dann muesste man sich einen workaround bauen der wenigstens dann sowas wie "exit to reseller" in der su-umgebung zur verfuegung stellt soweit die ueberlegung, man muesste das mal implementieren zur ueberpruefung, da kommen bestimmt noch ein, zwei sachen die nicht bedacht sind. cheers, martin |