]> source.dussan.org Git - redmine.git/commitdiff
Rescue back_url param parsing on redirect.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Fri, 12 Dec 2008 16:03:57 +0000 (16:03 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Fri, 12 Dec 2008 16:03:57 +0000 (16:03 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2126 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/application.rb

index 36123ba4757e92cf7b185beb69b48f83e7056520..494e3a26a4a1d5eeedf295a8f4bd44ba284c67ac 100644 (file)
@@ -126,13 +126,20 @@ class ApplicationController < ActionController::Base
   def redirect_back_or_default(default)
     back_url = CGI.unescape(params[:back_url].to_s)
     if !back_url.blank?
-      uri = URI.parse(back_url)
-      # do not redirect user to another host or to the login or register page
-      if (uri.relative? || (uri.host == request.host)) && !uri.path.match(%r{/(login|account/register)})
-        redirect_to(back_url) and return
+      begin
+        uri = URI.parse(back_url)
+        # do not redirect user to another host or to the login or register page
+        if (uri.relative? || (uri.host == request.host)) && !uri.path.match(%r{/(login|account/register)})
+          redirect_to(back_url) and return
+        end
+      rescue URI::InvalidURIError
+        # redirect to default
       end
     end
     redirect_to default
+  rescue 
+    
+    
   end
   
   def render_403