]> source.dussan.org Git - redmine.git/commitdiff
Fixed: API 401 response does not include WWW-Authenticate header (#5322).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 17 Apr 2010 12:45:23 +0000 (12:45 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 17 Apr 2010 12:45:23 +0000 (12:45 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3679 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/application_controller.rb
test/integration/http_basic_login_test.rb

index f788c179d1c24b4db0f16814d9a37db4aea2398b..5e2ab7ed9c71680859a7d08c756005f6df7f46bb 100644 (file)
@@ -128,8 +128,8 @@ class ApplicationController < ActionController::Base
       respond_to do |format|
         format.html { redirect_to :controller => "account", :action => "login", :back_url => url }
         format.atom { redirect_to :controller => "account", :action => "login", :back_url => url }
-        format.xml { head :unauthorized }
-        format.json { head :unauthorized }
+        format.xml  { head :unauthorized, 'WWW-Authenticate' => 'Basic realm="Redmine API"' }
+        format.json { head :unauthorized, 'WWW-Authenticate' => 'Basic realm="Redmine API"' }
       end
       return false
     end
index 7f5c15c7d0e288c956d1f724af0228475a0c817d..9ec69a8c922755cbb317e21333b97289f10bfc7e 100644 (file)
@@ -44,6 +44,18 @@ class HttpBasicLoginTest < ActionController::IntegrationTest
           assert_equal User.anonymous, User.current
         end
       end
+      
+      context "without credentials" do
+        setup do
+          get "/projects/onlinestore/news.xml"
+        end
+
+        should_respond_with :unauthorized
+        should_respond_with_content_type :xml
+        should "include_www_authenticate_header" do
+          assert @controller.response.headers.has_key?('WWW-Authenticate')
+        end
+      end
     end
 
     context "in :json format" do
@@ -76,5 +88,16 @@ class HttpBasicLoginTest < ActionController::IntegrationTest
       end
     end
     
+    context "without credentials" do
+      setup do
+        get "/projects/onlinestore/news.json"
+      end
+
+      should_respond_with :unauthorized
+      should_respond_with_content_type :json
+      should "include_www_authenticate_header" do
+        assert @controller.response.headers.has_key?('WWW-Authenticate')
+      end
+    end
   end
 end