summaryrefslogtreecommitdiff
path: root/src/mulk/benki/auth.clj
diff options
context:
space:
mode:
authorMatthias Andreas Benkard <code@mail.matthias.benkard.de>2011-11-20 16:17:57 +0100
committerMatthias Andreas Benkard <code@mail.matthias.benkard.de>2011-11-20 16:17:57 +0100
commit9b1d5e260aab6f691fa3e2b39704334364a53fa3 (patch)
tree182133694cdef3eabac1d6bcb3346d44459f276d /src/mulk/benki/auth.clj
parentbbb70dee15c88612ddc35565af6b2b9940357e8d (diff)
Make Wiki editable.
Diffstat (limited to 'src/mulk/benki/auth.clj')
-rw-r--r--src/mulk/benki/auth.clj17
1 files changed, 10 insertions, 7 deletions
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"