]> source.dussan.org Git - redmine.git/commitdiff
Fixed that OpenID authentication fails with 422 error due to token verification ...
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 21 Dec 2013 12:04:38 +0000 (12:04 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 21 Dec 2013 12:04:38 +0000 (12:04 +0000)
git-svn-id: http://svn.redmine.org/redmine/trunk@12438 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/account_controller.rb
test/functional/account_controller_openid_test.rb

index d39fc2ace6703e0f667d98c477f54d5e63b7ef8c..a3768d40383f2038546b9570eca407005cb45b5b 100644 (file)
@@ -22,6 +22,14 @@ class AccountController < ApplicationController
   # prevents login action to be filtered by check_if_login_required application scope filter
   skip_before_filter :check_if_login_required, :check_password_change
 
+  # Overrides ApplicationController#verify_authenticity_token to disable
+  # token verification on openid callbacks
+  def verify_authenticity_token
+    unless using_open_id?
+      super
+    end
+  end
+
   # Login request and validation
   def login
     if request.get?
index d99becc8ed8b49f54909890d819e3bd458a8a0a5..e6c72c145f725a609eda3bf28bb3816fddb43600 100644 (file)
@@ -131,6 +131,16 @@ class AccountControllerOpenidTest < ActionController::TestCase
       assert_select 'input[name=?][value=?]', 'user[identity_url]', 'http://openid.example.com/good_blank_user'
     end
 
+    def test_post_login_should_not_verify_token_when_using_open_id
+      ActionController::Base.allow_forgery_protection = true
+      AccountController.any_instance.stubs(:using_open_id?).returns(true)
+      AccountController.any_instance.stubs(:authenticate_with_open_id).returns(true)
+      post :login
+      assert_response 200
+    ensure
+      ActionController::Base.allow_forgery_protection = false
+    end
+
     def test_register_after_login_failure_should_not_require_user_to_enter_a_password
       Setting.self_registration = '3'