# This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. # # This Source Code Form is "Incompatible With Secondary Licenses", as # defined by the Mozilla Public License, v. 2.0. package Bugzilla::Quantum::Plugin::BasicAuth; use 5.10.1; use Mojo::Base qw(Mojolicious::Plugin); use Bugzilla::Logging; use Carp; sub register { my ($self, $app, $conf) = @_; $app->renderer->add_helper( basic_auth => sub { my ($c, $realm, $auth_user, $auth_pass) = @_; my $req = $c->req; my ($user, $password) = $req->url->to_abs->userinfo =~ /^([^:]+):(.*)/; unless ($realm && $auth_user && $auth_pass) { croak 'basic_auth() called with missing parameters.'; } unless ($user eq $auth_user && $password eq $auth_pass) { WARN('username and password do not match'); $c->res->headers->www_authenticate("Basic realm=\"$realm\""); $c->res->code(401); $c->rendered; return 0; } return 1; } ); } 1;