#encoding: utf-8
module Client
class UserOmniauthCallbacksController < Devise::OmniauthCallbacksController
def cas
puts "+"*12
end
def failure
puts "-"*12
redirect_to after_omniauth_failure_path
end
end
end
路由: /user/auth/:action/callback(.:format) {:controller=>"client/user_omniauth_callbacks", :action=>/cas/} 想单点登录系统发送请求,获取 ticket https://xxxx.com/login?service_key=xxxxxxxx&callback_url=http://xxxxxx:3000/user/auth/cas/callback?url=http://xxxxxxx:3000 单点登录系统调用 callback http://xxxxxx:3000/user/auth/cas/callback?url=http://xxxxxxx:3000&ticket=yyyyyyyyyyyyyyyyyyyyyy
正常的 流程应该是进到 cas 中,向单点登录系统发送验证 ticket 的请求,并获取用户信息,如果验证失败, 执行 failure, 但是我们这里不会走到 cas 方法里,直接就进入到 failure 中了,求解
log
19:37:53 action_controller Redirected to https://xxxxx.com/login?service_key=xxxxxxxxx&callback_url=http://xxxxxxxxx:3000/user/auth/cas/callback?url=http://xxxxxxxxx:3000
19:37:53 action_controller Completed 302 Found in 544ms
------------
19:37:53 Started GET "/user/auth/cas/callback?url=http://xxxxxxxxxx:3000&ticket=ST-xxxxxxxxxxxxxx" for 192.168.214.1 at Thu May 29 19:37:53 -0700 2014
19:37:55 action_controller Processing by Client::UserOmniauthCallbacksController#failure as HTML
19:37:55 Parameters: {"url"=>"http://xxxxxxxx:3000", "ticket"=>"ST-xxxxxxxxxxxxxx"}