diff options
author | dakkar <dakkar@thenautilus.net> | 2017-12-16 18:43:31 +0000 |
---|---|---|
committer | dakkar <dakkar@thenautilus.net> | 2017-12-16 18:44:04 +0000 |
commit | c2a6e16bc2c8ea03acdf64dfed9d16721ad717f4 (patch) | |
tree | 1b9cc6f466d161d17241b640b03210ebd36b65b8 /lib | |
parent | authentication middleware (diff) | |
download | Ultramarine-c2a6e16bc2c8ea03acdf64dfed9d16721ad717f4.tar.gz Ultramarine-c2a6e16bc2c8ea03acdf64dfed9d16721ad717f4.tar.bz2 Ultramarine-c2a6e16bc2c8ea03acdf64dfed9d16721ad717f4.zip |
authorisation middleware
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Ultramarine/Middleware/Authorisation.pm | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/Ultramarine/Middleware/Authorisation.pm b/lib/Ultramarine/Middleware/Authorisation.pm new file mode 100644 index 0000000..0ddacf6 --- /dev/null +++ b/lib/Ultramarine/Middleware/Authorisation.pm @@ -0,0 +1,18 @@ +use v6.d.PREVIEW; +use Cro::HTTP::Middleware; +use Ultramarine::Middleware::Authentication; + +class Ultramarine::Middleware::Authorisation + does Cro::HTTP::Middleware::Conditional { + method process(Supply:D $request-stream) { + supply whenever $request-stream -> $request { + if ($request ~~ Ultramarine::Request::Authed) { + # here we could also add some access control + emit $request; + } + else { + emit Cro::HTTP::Response.new(:status<403>); + } + } + } +} |