diff options
author | Max Kanat-Alexander <mkanat@bugzilla.org> | 2010-03-24 00:08:48 +0100 |
---|---|---|
committer | Max Kanat-Alexander <mkanat@bugzilla.org> | 2010-03-24 00:08:48 +0100 |
commit | ccb36aaa7adc9d07d74dd5c2e64763cc8749cf4c (patch) | |
tree | ea393c1908bee42b801e1a4cbd7df7ea64ee7263 /Bugzilla | |
parent | 9e572adb765cfb7d814b38ba1bf7f23c9ac47980 (diff) | |
download | bugzilla-ccb36aaa7adc9d07d74dd5c2e64763cc8749cf4c.tar.gz bugzilla-ccb36aaa7adc9d07d74dd5c2e64763cc8749cf4c.tar.xz |
Bug 553770: Make the JSON-RPC WebService throw a proper error when you don't
provide login credentials on a LOGIN_REQUIRED page. (Before this, it was
attempting to display the HTML login page to JSON-RPC clients.)
r=dkl, a=mkanat
Diffstat (limited to 'Bugzilla')
-rw-r--r-- | Bugzilla/Auth/Login/CGI.pm | 6 | ||||
-rw-r--r-- | Bugzilla/WebService/Constants.pm | 5 |
2 files changed, 5 insertions, 6 deletions
diff --git a/Bugzilla/Auth/Login/CGI.pm b/Bugzilla/Auth/Login/CGI.pm index 407582af4..8e877b951 100644 --- a/Bugzilla/Auth/Login/CGI.pm +++ b/Bugzilla/Auth/Login/CGI.pm @@ -57,10 +57,8 @@ sub fail_nodata { my $cgi = Bugzilla->cgi; my $template = Bugzilla->template; - if (Bugzilla->error_mode == Bugzilla::Constants::ERROR_MODE_DIE_SOAP_FAULT) { - die SOAP::Fault - ->faultcode(ERROR_AUTH_NODATA) - ->faultstring('Login Required'); + if (Bugzilla->usage_mode != USAGE_MODE_BROWSER) { + ThrowUserError('login_required'); } print $cgi->header(); diff --git a/Bugzilla/WebService/Constants.pm b/Bugzilla/WebService/Constants.pm index a51389faa..c7c52fece 100644 --- a/Bugzilla/WebService/Constants.pm +++ b/Bugzilla/WebService/Constants.pm @@ -24,7 +24,6 @@ our @EXPORT = qw( WS_ERROR_CODE ERROR_UNKNOWN_FATAL ERROR_UNKNOWN_TRANSIENT - ERROR_AUTH_NODATA WS_DISPATCH ); @@ -99,6 +98,9 @@ use constant WS_ERROR_CODE => { extern_id_conflict => -303, auth_failure => 304, + # Except, historically, AUTH_NODATA, which is 410. + login_required => 410, + # User errors are 500-600. account_exists => 500, illegal_email_address => 501, @@ -120,7 +122,6 @@ use constant WS_ERROR_CODE => { use constant ERROR_UNKNOWN_FATAL => -32000; use constant ERROR_UNKNOWN_TRANSIENT => 32000; -use constant ERROR_AUTH_NODATA => 410; use constant ERROR_GENERAL => 999; sub WS_DISPATCH { |