From 9b1d5e260aab6f691fa3e2b39704334364a53fa3 Mon Sep 17 00:00:00 2001 From: Matthias Andreas Benkard Date: Sun, 20 Nov 2011 16:17:57 +0100 Subject: Make Wiki editable. --- src/mulk/benki/auth.clj | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'src/mulk/benki/auth.clj') diff --git a/src/mulk/benki/auth.clj b/src/mulk/benki/auth.clj index 6dbce8d..d9b9d3e 100644 --- a/src/mulk/benki/auth.clj +++ b/src/mulk/benki/auth.clj @@ -19,12 +19,15 @@ (defonce manager (ConsumerManager.)) +(defn redirect [x] + {:status 302, :headers {"Location" x}, :body ""}) + + (defpartial return-from-openid-provider [] (let [parlist (ParameterList. (:query-params (request/ring-request))) discovered (session/get :discovered) ;; Does the following work for POST requests? - request-uri (str "http://localhost:3001/login/return" - ;;(resolve-uri "/login/return") + request-uri (str (resolve-uri "/login/return") (let [query-string (:query-string (request/ring-request))] (if query-string (str "?" query-string) @@ -43,7 +46,9 @@ nil))] (if user-id (do (session/put! :user user-id) - (layout "Authenticated!" [:p "Welcome back, " (:first_name user) "!"])) + (if-let [return-uri (session/flash-get)] + (redirect return-uri) + (layout "Authenticated!" [:p "Welcome back, " (:first_name user) "!"]))) (layout "Authentication Failed" [:p "Did not recognize OpenID."])))) (layout "Authentication Failed" [:p "OpenID authentication failed."])))) @@ -57,11 +62,9 @@ (defpage "/login/authenticate" {openid :openid} (let [discoveries (.discover manager openid) discovered (.associate manager discoveries) - authreq (.authenticate manager discovered ;;(resolve-uri "/login/return") - "http://localhost:3001/login/return" - )] + authreq (.authenticate manager discovered (resolve-uri "/login/return"))] (session/put! :discovered discovered) - (response/redirect (.getDestinationUrl authreq true)))) + (redirect (.getDestinationUrl authreq true)))) (defpage "/login" [] (layout "Benki Login" -- cgit v1.2.3