Add block-unsupported-browser middleware

This commit is contained in:
Akira Tempaku 2024-04-22 00:46:28 +09:00
parent 7396051d37
commit 30aea33366
2 changed files with 17 additions and 1 deletions

View file

@ -31,7 +31,8 @@
(jg:install-middleware *app* mw:*public-files*)
(jg:install-middleware *app* mw:*recovery*)
(jg:install-middleware *app* mw:*normalize-path*)
(jg:install-middleware *app* mw:*accesslog*))
(jg:install-middleware *app* mw:*accesslog*)
(jg:install-middleware *app* mw:*block-unsupported-browser*))
(defun update ()
(stop)

View file

@ -0,0 +1,15 @@
(defpackage #:hp/middlewares/block-unsupported-browser
(:use #:cl)
(:local-nicknames (#:re #:cl-ppcre))
(:export #:*block-unsupported-browser*))
(in-package #:hp/middlewares/block-unsupported-browser)
(defparameter *block-unsupported-browser*
(lambda (app)
(lambda (env)
(let ((user-agent (gethash "user-agent" (getf env :headers))))
(if (re:scan "(Firefox|SamsungBrowser)" user-agent)
`(:400
(:content-type "text/plain")
("This site is not compatible with your browser. Please use Chrome, Edge, Safari, or another compatible browser."))
(funcall app env))))))