vw_small

Hardened fork of Vaultwarden (https://github.com/dani-garcia/vaultwarden) with fewer features.
git clone https://git.philomathiclife.com/repos/vw_small
Log | Files | Refs | README

commit 881c1978eb8e2eaea2467e6b3bf79d2d91196ec1
parent 662bc2752345ef37cb394b2dd709b269dab86fd1
Author: Daniel GarcĂ­a <dani-garcia@users.noreply.github.com>
Date:   Tue,  8 Oct 2019 19:34:47 +0200

Error when the URL scheme doesn't match the database type

Diffstat:
Msrc/config.rs | 20++++++++++++++++++++
1 file changed, 20 insertions(+), 0 deletions(-)

diff --git a/src/config.rs b/src/config.rs @@ -366,6 +366,26 @@ make_config! { } fn validate_config(cfg: &ConfigItems) -> Result<(), Error> { + let db_url = cfg.database_url.to_lowercase(); + + if cfg!(feature = "sqlite") { + if db_url.starts_with("mysql:") || db_url.starts_with("postgresql:") { + err!("`DATABASE_URL` is meant for MySQL or Postgres, while this server is meant for SQLite") + } + } + + if cfg!(feature = "mysql") { + if !db_url.starts_with("mysql:") { + err!("`DATABASE_URL` should start with mysql: when using the MySQL server") + } + } + + if cfg!(feature = "postgresql") { + if !db_url.starts_with("postgresql:") { + err!("`DATABASE_URL` should start with postgresql: when using the PostgreSQL server") + } + } + if let Some(ref token) = cfg.admin_token { if token.trim().is_empty() { err!("`ADMIN_TOKEN` is enabled but has an empty value. To enable the admin page without token, use `DISABLE_ADMIN_TOKEN`")