• Leigh Stoller's avatar
    Implement a cross machine login so that user is automatically logged · 9310dedb
    Leigh Stoller authored
    into the Wiki when clicking on the My Wiki's link. Works like this:
    
    * The My Wiki's link points to new page, gotowiki.php3, on boss.
    
    * The gotowiki page looks for a new cookie in the user's browser
      which holds a key (the usual random data run through md5).
    
    * If the key does not exist, generate it and store it in the user
      browser (expires when browser is closed or emulab login times out).
      Also invoke backend script wikixlogin, which will send the key over
      to the wiki server (via ssh), which will write the key into a file
      named by the user account.
    
    * The user's browser is redirected to the wiki server's login script
      (twiki/bin/newlogon), but instead of username and password, we send
      over username and key (as well as redurl= parameter which is the
      page on the wiki server to redirect to later).
    
    * The new login script looks for this case, and opens the file named
      by the user and compares the key it gets with what is in the file.
      If they match, the user login succeeds and the browser is once again
      redirected, but this time to the page it wants on the wiki server.
      If the key does not match, the browser is redirected to the login
      page (so user can enter username password normally). The redurl
      parameter is passed along as well.
    
    * Subsequent clicks on My Wiki's will not need to invoke the backend
      script, since the cookie will be in the browser.
    9310dedb
Name
Last commit
Last update
account Loading commit data...
apache Loading commit data...
assign Loading commit data...
autoconf Loading commit data...
capture Loading commit data...
cdrom Loading commit data...
db Loading commit data...
delay/linux Loading commit data...
dhcpd Loading commit data...
discvr Loading commit data...
doc Loading commit data...
event Loading commit data...
firewall Loading commit data...
hw_config Loading commit data...
hyperviewer Loading commit data...
install Loading commit data...
ipod Loading commit data...
lib Loading commit data...
mote Loading commit data...
named Loading commit data...
os Loading commit data...
patches Loading commit data...
pxe Loading commit data...
rc.d Loading commit data...
robots Loading commit data...
rpms Loading commit data...
security Loading commit data...
sensors Loading commit data...
sql Loading commit data...
ssl Loading commit data...
sysadmin Loading commit data...
tbsetup Loading commit data...
testsuite Loading commit data...
tip Loading commit data...
tmcd Loading commit data...
tools Loading commit data...
utils Loading commit data...
vis Loading commit data...
wiki Loading commit data...
www Loading commit data...
xmlrpc Loading commit data...
BUGS Loading commit data...
GNUmakefile.in Loading commit data...
GNUmakerules Loading commit data...
GPL-COPYING Loading commit data...
LGPL-COPYING Loading commit data...
LICENSE Loading commit data...
Makeconf.in Loading commit data...
README Loading commit data...
TODO Loading commit data...
TODO.plab Loading commit data...
config.h.in Loading commit data...
configure Loading commit data...
configure.in Loading commit data...
defs-aerolab Loading commit data...
defs-calfeld-emulab Loading commit data...
defs-davidand-emulab Loading commit data...
defs-default Loading commit data...
defs-duerig-emulab Loading commit data...
defs-elabinelab Loading commit data...
defs-example Loading commit data...
defs-fish-emulab Loading commit data...
defs-gatech Loading commit data...
defs-kwebb-emulab Loading commit data...
defs-newbold-emulab Loading commit data...
defs-newbold-macdb Loading commit data...
defs-ricci-emulab Loading commit data...
defs-shash-emulab Loading commit data...
defs-stoller-emulab Loading commit data...
defs-stoller-home Loading commit data...
defs-stoller-lbsdb Loading commit data...
defs-uky Loading commit data...
defs-wide Loading commit data...