]> git.openstreetmap.org Git - rails.git/commitdiff
Return an error when basic authentication is used and is disabled
authorTom Hughes <tom@compton.nu>
Wed, 7 Feb 2024 19:10:13 +0000 (19:10 +0000)
committerTom Hughes <tom@compton.nu>
Sun, 25 Feb 2024 08:53:44 +0000 (08:53 +0000)
app/controllers/api_controller.rb
config/locales/en.yml

index 75db7f73bc757ff600bb59b0d9608c4ccdadaebd..af4c0c4f3195d7b11808acf49524b21dd17aa70f 100644 (file)
@@ -107,7 +107,7 @@ class ApiController < ApplicationController
       self.current_user = User.find(doorkeeper_token.resource_owner_id)
     elsif Authenticator.new(self, [:token]).allow?
       # self.current_user setup by OAuth
-    elsif Settings.basic_auth_support
+    else
       username, passwd = auth_data # parse from headers
       # authenticate per-scheme
       self.current_user = if username.nil?
@@ -117,8 +117,14 @@ class ApiController < ApplicationController
                           else
                             User.authenticate(:username => username, :password => passwd) # basic auth
                           end
-      # log if we have authenticated using basic auth
-      logger.info "Authenticated as user #{current_user.id} using basic authentication" if current_user
+      if username && current_user
+        if Settings.basic_auth_support
+          # log if we have authenticated using basic auth
+          logger.info "Authenticated as user #{current_user.id} using basic authentication"
+        else
+          report_error t("application.basic_auth_disabled", :link => t("application.auth_disabled_link")), :forbidden
+        end
+      end
     end
 
     # have we identified the user?
index 775030638a64413d56313ac1b8d4c750b5f06db9..17cdff9bf3360b0acaa81d12580f2ded16f46f86 100644 (file)
@@ -2555,6 +2555,8 @@ en:
         other: "GPX file with %{count} points from %{user}"
       description_without_count: "GPX file from %{user}"
   application:
+    basic_auth_disabled: "HTTP Basic Authentication is disabled: %{link}"
+    auth_disabled_link: "https://wiki.openstreetmap.org/wiki/2024_authentication_update"
     permission_denied: You do not have permission to access that action
     require_cookies:
       cookies_needed: "You appear to have cookies disabled - please enable cookies in your browser before continuing."