Parameterize authentication credentials.

Commit
9338724460b3a86eefdd0085c43bd0b75e73a4e2
Author
Marius Peter <dev@marius-peter.com>
Author date
Committer
Marius Peter <dev@marius-peter.com>
Committer date
authentication.rkt
index 9e9400b5..9a159768 100644..100644
@@ -1,27 +1,33 @@
1 1 #lang racket
2 2
3 Removed: (provide make-auth-dispatch)
3 Added: (provide authentication-credentials-defined?
4 Added: make-auth-dispatch)
4 5
5 6 (require web-server/http
6 7 web-server/http/basic-auth)
7 8
8 Removed: (define ferti-user
9 Removed: (or (getenv "FERTI_USER") (error 'authentication "FERTI_USER environment variable is not set")))
10 Removed: (define ferti-pass
11 Removed: (or (getenv "FERTI_PASS") (error 'authentication "FERTI_PASS environment variable is not set")))
9 Added: (define ferti-user (make-parameter (getenv "FERTI_USER")))
10 Added: (define ferti-pass (make-parameter (getenv "FERTI_PASS")))
12 11
12 Added: (define (authentication-credentials-defined?)
13 Added: (and (ferti-user) (ferti-pass)))
14 Added:
13 15 (define (make-auth-dispatch handler)
14 Removed: (lambda (req)
15 Removed: (if (authorized? req)
16 Removed: (handler req)
17 Removed: (unauthorized-response))))
16 Added: (if (authentication-credentials-defined?)
17 Added: (lambda (req)
18 Added: (if (authorized? req)
19 Added: (handler req)
20 Added: (unauthorized-response)))
21 Added: (error
22 Added: 'authentication
23 Added: "Undefined authentication credentials (FERTI_USER and FERTI_PASS environment variables)")))
18 24
19 25 (define (authorized? req)
20 26 (match (request->basic-credentials req)
21 27 [(cons user-b pass-b)
22 28 (define user (bytes->string/utf-8 user-b))
23 29 (define pass (bytes->string/utf-8 pass-b))
24 Removed: (and (string=? user ferti-user) (string=? pass ferti-pass))]
30 Added: (and (string=? user (ferti-user)) (string=? pass (ferti-pass)))]
25 31 [_ #f]))
26 32
27 33 (define (unauthorized-response)