rubycas-server bug
測試版本是 0.7.1.1, 準備著手開始 patch?
等會就去找他們的 issue tracker
*
我確認是 rubycas-server 的 bug 了,見:
lib/casserver/cas.rb: 300, CASServer::CAS#clean_service_url
clean_service = dirty_service.dup
['service', 'ticket', 'gateway', 'renew'].each do |p|
clean_service.sub!(Regexp.new("#{p}=[^&]*"), '')
end
他會把:
http://google.com/?abc=123&ticket=456
變成:
http://google.com/?abc=123&
因此 service url 就改變了,當初取得 ticket 時應該是:
http://google.com/?abc=123
才對。結果 rubycas-server 以 service 不同為由,redirect 回去。
接著就能看到 redirect loop, 因為登入一直被踢回原本網址,
而且後面不斷接上 &, 最後就會看到 &&&&&&&& 一堆在屁股...
我不知道那為什麼一開始 service url 後面沒有多的 and?
或許是因為他用不同的方式做 url clean up 吧?有待追查。
0 retries:
Post a Comment
Note: Only a member of this blog may post a comment.