anchor.diff:  
   ;;; Authenticate stuffs go here.
   
  -(defvar *user-list* (list (cons "5571432021"
  +(defparameter *user-list* (list (cons "5571432021"
                                   (list :password "1234"
                                         :role "student"
  +                                      :vm-name "cirros-0.3.4-x86_64-uec"
                                         :realname "Smith Dhumbumroong")))
     "An ad-hoc list of user credentials.")
   
  
positive.code:   "Given a user credential, returns the real name of that user."
    (getf user-credential :realname))
  
  (defun verify-user-credential (username password &key (user-list *user-list*))
    (let ((user-credential (get-user-credential username user-list)))
      (when (and (not (null user-credential))
  
negative.code:            (hunchentoot:start-session)
             (setf (hunchentoot:session-value :username) username)
             (setf (hunchentoot:session-value :realname) (get-realname user-credential))
             (setf (hunchentoot:session-value :role) (get-role user-credential))
             (setf (hunchentoot:session-value :vm-name) (get-vm-name user-credential))
             (setf (hunchentoot:session-value :auth-token) "true")
             (hunchentoot:redirect success-target))
            (t
  