Skip to content

Commit 439e845

Browse files
committed
Basic authentication removal
1 parent 888e35b commit 439e845

25 files changed

+64
-640
lines changed

.github/workflows/codeql.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040
sudo apt-get install -y gcc g++ make autoconf automake libtool \
4141
libfcgi-dev libxml2-dev libmemcached-dev \
4242
libboost-program-options-dev libcrypto++-dev libyajl-dev \
43-
libpqxx-dev zlib1g-dev libargon2-dev libfmt-dev
43+
libpqxx-dev zlib1g-dev libfmt-dev
4444
4545
- name: Autobuild
4646
uses: github/codeql-action/autobuild@v3

CMakeLists.txt

-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,6 @@ find_package(Threads REQUIRED)
8181
find_package(PQXX 6.0 REQUIRED)
8282
find_package(LibXml2 2.6.31 REQUIRED)
8383
find_package(Libmemcached REQUIRED)
84-
find_package(Argon2 REQUIRED)
8584

8685
find_package(Boost 1.43 REQUIRED COMPONENTS program_options)
8786
target_compile_definitions(cgimap_common_compiler_options INTERFACE

cmake/FindArgon2.cmake

-47
This file was deleted.

docker/debian/Dockerfile_bookworm

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ RUN apt-get update -qq && \
77
apt-get install -y gcc g++ make cmake \
88
libfcgi-dev libxml2-dev libmemcached-dev \
99
libboost-program-options-dev libcrypto++-dev libyajl-dev \
10-
libpqxx-dev zlib1g-dev libargon2-dev libfmt-dev \
10+
libpqxx-dev zlib1g-dev libfmt-dev \
1111
postgresql-15 postgresql-server-dev-all \
1212
--no-install-recommends && \
1313
apt-get clean && \
@@ -31,7 +31,7 @@ FROM debian:bookworm-slim
3131
RUN apt-get update -qq && \
3232
apt-get install -y \
3333
libfcgi-bin libmemcached11 libboost-program-options1.74.0 \
34-
libxml2 libcrypto++8 libyajl2 libpqxx-6.4 zlib1g libargon2-1 argon2 libfmt9 \
34+
libxml2 libcrypto++8 libyajl2 libpqxx-6.4 zlib1g libfmt9 \
3535
--no-install-recommends && \
3636
apt-get clean && \
3737
rm -rf /var/lib/apt/lists/*

docker/debian/Dockerfile_trixie

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ RUN apt-get update -qq && \
77
apt-get install -y gcc g++ make cmake \
88
libfcgi-dev libxml2-dev libmemcached-dev \
99
libboost-program-options-dev libcrypto++-dev libyajl-dev \
10-
libpqxx-dev zlib1g-dev libargon2-dev libfmt-dev \
10+
libpqxx-dev zlib1g-dev libfmt-dev \
1111
postgresql-16 postgresql-server-dev-all \
1212
--no-install-recommends && \
1313
apt-get clean && \
@@ -31,7 +31,7 @@ FROM debian:trixie
3131
RUN apt-get update -qq && \
3232
apt-get install -y \
3333
libfcgi-bin libmemcached11 libboost-program-options1.74.0 \
34-
libxml2 libcrypto++8 libyajl2 libpqxx-7.8 zlib1g libargon2-1 argon2 libfmt9 \
34+
libxml2 libcrypto++8 libyajl2 libpqxx-7.8 zlib1g libfmt9 \
3535
--no-install-recommends && \
3636
apt-get clean && \
3737
rm -rf /var/lib/apt/lists/*

docker/ubuntu/Dockerfile

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ RUN apt-get update -qq && \
88
libfcgi-dev libxml2-dev libmemcached-dev \
99
libboost-program-options-dev \
1010
libcrypto++-dev libyajl-dev \
11-
libpqxx-dev zlib1g-dev libargon2-dev libfmt-dev \
11+
libpqxx-dev zlib1g-dev libfmt-dev \
1212
postgresql-12 postgresql-server-dev-all \
1313
--no-install-recommends && \
1414
apt-get clean && \
@@ -33,7 +33,7 @@ FROM ubuntu:20.04
3333
RUN apt-get update -qq && \
3434
apt-get install -y \
3535
libfcgi-bin libmemcached11 libboost-locale1.71.0 libboost-program-options1.71.0 \
36-
libxml2 libcrypto++6 libyajl2 libpqxx-6.4 zlib1g libargon2-1 \
36+
libxml2 libcrypto++6 libyajl2 libpqxx-6.4 zlib1g \
3737
--no-install-recommends && \
3838
apt-get clean && \
3939
rm -rf /var/lib/apt/lists/*

docker/ubuntu/Dockerfile2204

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ RUN apt-get update -qq && \
77
apt-get install -y gcc g++ make cmake \
88
libfcgi-dev libxml2-dev libmemcached-dev \
99
libboost-program-options-dev libcrypto++-dev libyajl-dev \
10-
libpqxx-dev zlib1g-dev libargon2-dev libfmt-dev \
10+
libpqxx-dev zlib1g-dev libfmt-dev \
1111
postgresql-14 postgresql-server-dev-all \
1212
--no-install-recommends && \
1313
apt-get clean && \
@@ -31,7 +31,7 @@ FROM ubuntu:22.04
3131
RUN apt-get update -qq && \
3232
apt-get install -y \
3333
libfcgi-bin libmemcached11 libboost-program-options1.74.0 \
34-
libxml2 libcrypto++8 libyajl2 libpqxx-6.4 zlib1g libargon2-1 argon2 libfmt8 \
34+
libxml2 libcrypto++8 libyajl2 libpqxx-6.4 zlib1g libfmt8 \
3535
--no-install-recommends && \
3636
apt-get clean && \
3737
rm -rf /var/lib/apt/lists/*

include/cgimap/backend/apidb/readonly_pgsql_selection.hpp

-1
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,6 @@ class readonly_pgsql_selection : public data_selection {
7474

7575
bool supports_user_details() const override;
7676
bool is_user_blocked(const osm_user_id_t) override;
77-
bool get_user_id_pass(const std::string&, osm_user_id_t &, std::string &, std::string &) override;
7877
std::set< osm_user_role_t > get_roles_for_user(osm_user_id_t id) override;
7978
std::optional< osm_user_id_t > get_user_id_for_oauth2_token(
8079
const std::string &token_id, bool &expired, bool &revoked,

include/cgimap/basicauth.hpp

-45
This file was deleted.

include/cgimap/data_selection.hpp

-5
Original file line numberDiff line numberDiff line change
@@ -172,11 +172,6 @@ class data_selection {
172172
// is user currently blocked?
173173
virtual bool is_user_blocked(const osm_user_id_t) = 0;
174174

175-
virtual bool get_user_id_pass(const std::string& display_name,
176-
osm_user_id_t &,
177-
std::string & pass_crypt,
178-
std::string & pass_salt) = 0;
179-
180175
virtual std::set<osm_user_role_t> get_roles_for_user(osm_user_id_t id) = 0;
181176

182177
virtual std::optional< osm_user_id_t > get_user_id_for_oauth2_token(

include/cgimap/options.hpp

-14
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ class global_settings_base {
3232
virtual int64_t get_scale() const = 0;
3333
virtual std::optional<uint32_t> get_relation_max_members() const = 0;
3434
virtual std::optional<uint32_t> get_element_max_tags() const = 0;
35-
virtual bool get_basic_auth_support() const = 0;
3635
virtual uint32_t get_ratelimiter_ratelimit(bool) const = 0;
3736
virtual uint32_t get_ratelimiter_maxdebt(bool) const = 0;
3837
virtual bool get_ratelimiter_upload() const = 0;
@@ -81,10 +80,6 @@ class global_settings_default : public global_settings_base {
8180
return {}; // default: unlimited
8281
}
8382

84-
bool get_basic_auth_support() const override {
85-
return true;
86-
}
87-
8883
uint32_t get_ratelimiter_ratelimit(bool moderator) const override {
8984
if (moderator) {
9085
return 1024 * 1024; // 1MB/s
@@ -162,10 +157,6 @@ class global_settings_via_options : public global_settings_base {
162157
return m_element_max_tags;
163158
}
164159

165-
bool get_basic_auth_support() const override {
166-
return m_basic_auth_support;
167-
}
168-
169160
uint32_t get_ratelimiter_ratelimit(bool moderator) const override {
170161
if (moderator) {
171162
return m_moderator_ratelimiter_ratelimit;
@@ -197,7 +188,6 @@ class global_settings_via_options : public global_settings_base {
197188
void set_scale(const po::variables_map &options);
198189
void set_relation_max_members(const po::variables_map &options);
199190
void set_element_max_tags(const po::variables_map &options);
200-
void set_basic_auth_support(const po::variables_map &options);
201191
void set_ratelimiter_ratelimit(const po::variables_map &options);
202192
void set_ratelimiter_maxdebt(const po::variables_map &options);
203193
void set_ratelimiter_upload(const po::variables_map &options);
@@ -213,7 +203,6 @@ class global_settings_via_options : public global_settings_base {
213203
int64_t m_scale;
214204
std::optional<uint32_t> m_relation_max_members;
215205
std::optional<uint32_t> m_element_max_tags;
216-
bool m_basic_auth_support;
217206
uint32_t m_ratelimiter_ratelimit;
218207
uint32_t m_moderator_ratelimiter_ratelimit;
219208
uint32_t m_ratelimiter_maxdebt;
@@ -258,9 +247,6 @@ class global_settings final {
258247
// Maximum number of tags for an OSM object (may be unlimited)
259248
static std::optional<uint32_t> get_element_max_tags() { return settings->get_element_max_tags(); }
260249

261-
// Enable HTTP basic authentication support
262-
static bool get_basic_auth_support() { return settings->get_basic_auth_support(); }
263-
264250
// average number of bytes/s to allow each client/moderator
265251
static uint32_t get_ratelimiter_ratelimit(bool moderator) { return settings->get_ratelimiter_ratelimit(moderator); }
266252

include/cgimap/process_request.hpp

-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
#include "cgimap/data_update.hpp"
1616
#include "cgimap/data_selection.hpp"
1717
#include "cgimap/routes.hpp"
18-
#include "cgimap/basicauth.hpp"
1918
#include "cgimap/oauth2.hpp"
2019
#include <string>
2120

src/CMakeLists.txt

-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ target_sources(cgimap_core PRIVATE
1515
http.cpp
1616
logger.cpp
1717
mime_types.cpp
18-
basicauth.cpp
1918
oauth2.cpp
2019
options.cpp
2120
osm_responder.cpp
@@ -76,7 +75,6 @@ target_link_libraries(cgimap_core
7675
ZLIB::ZLIB
7776
CryptoPP::CryptoPP
7877
Libmemcached::Libmemcached
79-
Argon2::Argon2
8078
$<$<BOOL:${ENABLE_YAJL}>:YAJL::YAJL>
8179
PQXX::PQXX)
8280

src/backend/apidb/readonly_pgsql_selection.cpp

-36
Original file line numberDiff line numberDiff line change
@@ -789,42 +789,6 @@ bool readonly_pgsql_selection::is_user_blocked(const osm_user_id_t id) {
789789
return !res.empty();
790790
}
791791

792-
bool readonly_pgsql_selection::get_user_id_pass(const std::string& user_name, osm_user_id_t & id,
793-
std::string & pass_crypt, std::string & pass_salt) {
794-
795-
std::string email = boost::algorithm::trim_copy(user_name);
796-
797-
m.prepare("get_user_id_pass",
798-
R"(SELECT id, pass_crypt, COALESCE(pass_salt, '') as pass_salt FROM users
799-
WHERE (email = $1 OR display_name = $2)
800-
AND (status = 'active' or status = 'confirmed') LIMIT 1
801-
)");
802-
803-
m.prepare("get_user_id_pass_case_insensitive",
804-
R"(SELECT id, pass_crypt, COALESCE(pass_salt, '') as pass_salt FROM users
805-
WHERE (LOWER(email) = LOWER($1) OR LOWER(display_name) = LOWER($2))
806-
AND (status = 'active' or status = 'confirmed')
807-
)");
808-
809-
810-
auto res = m.exec_prepared("get_user_id_pass", email, user_name);
811-
812-
if (res.empty()) {
813-
// try case insensitive query
814-
res = m.exec_prepared("get_user_id_pass_case_insensitive", email, user_name);
815-
// failure, in case no entries or multiple entries were found
816-
if (res.size() != 1)
817-
return false;
818-
}
819-
820-
auto row = res[0];
821-
id = row["id"].as<osm_user_id_t>();
822-
pass_crypt = row["pass_crypt"].as<std::string>();
823-
pass_salt = row["pass_salt"].as<std::string>();
824-
825-
return true;
826-
}
827-
828792
std::set< osm_user_role_t > readonly_pgsql_selection::get_roles_for_user(osm_user_id_t id)
829793
{
830794
std::set<osm_user_role_t> roles;

0 commit comments

Comments
 (0)