Jeremy Lin
a314933557
Allow email changes for existing accounts even when signups are disabled
2020-05-24 14:38:19 -07:00
Daniel García
0807783388
Add ip on totp miss
2020-05-14 00:19:50 +02:00
Daniel García
aee1ea032b
Merge pull request #989 from theycallmesteve/update_responses
...
Update responses
2020-05-13 22:34:16 +02:00
theycallmesteve
5571a5d8ed
Update post_keys to return a keys response model
2020-05-08 13:38:49 -04:00
theycallmesteve
6a8c65493f
Rename collection_user_details to collection_read_only to reflect the response model
2020-05-08 13:37:40 -04:00
theycallmesteve
dfdf4473ea
Rename to_json_list to to_json_provder to reflect the response model
2020-05-08 13:36:35 -04:00
theycallmesteve
632f4d5453
Whitespace fixes
2020-05-07 18:02:37 -04:00
Daniel García
ec8028aef2
Merge pull request #979 from jjlin/admin-redirect
...
Use absolute URIs for admin page redirects
2020-05-03 22:27:09 +02:00
Daniel García
9cca64003a
Remove unused dependency and simple feature, update dependencies and fix some clippy lints
2020-05-03 17:24:51 +02:00
Jeremy Lin
819d5e2dc8
Use absolute URIs for admin page redirects
...
This is technically required per RFC 2616 (HTTP/1.1); some proxies will
rewrite a plain `/admin` path to an unexpected URL otherwise.
2020-05-01 00:31:47 -07:00
Daniel García
0de52c6c99
Merge pull request #957 from jjlin/domain-whitelist
...
Domain whitelist cleanup and fixes
2020-04-18 12:08:48 +02:00
Daniel García
e3b00b59a7
Initial support for soft deletes
2020-04-17 22:35:27 +02:00
Jeremy Lin
0a68de6c24
Warn on empty ADMIN_TOKEN
instead of bailing out
...
The admin page will still be disabled.
Fixes #849 .
2020-04-09 20:55:08 -07:00
Jeremy Lin
e4d08836e2
Make org owner invitations respect the email domain whitelist
...
This closes a loophole where org owners can invite new users from any domain.
2020-04-09 01:51:05 -07:00
Jeremy Lin
c2a324e5da
Clean up domain whitelist logic
...
* Make `SIGNUPS_DOMAINS_WHITELIST` override the `SIGNUPS_ALLOWED` setting.
Otherwise, a common pitfall is to set `SIGNUPS_DOMAINS_WHITELIST` without
realizing that `SIGNUPS_ALLOWED=false` must also be set.
* Whitespace is now accepted in `SIGNUPS_DOMAINS_WHITELIST`. That is,
`foo.com, bar.com` is now equivalent to `foo.com,bar.com`.
* Add validation on `SIGNUPS_DOMAINS_WHITELIST`. For example, `foo.com,`
is rejected as containing an empty token.
2020-04-09 01:42:27 -07:00
Jeremy Lin
6cd8512bbd
Fix Duo auth failure with non-lowercased email addresses
2020-04-07 20:40:51 -07:00
Jeremy Lin
7407b8326a
Fix attachment size limit calculation
...
The config values (in KB) need to be converted to bytes when comparing
against total attachment sizes.
2020-03-31 02:30:28 -07:00
Jeremy Lin
862d401077
Fix WebSocket notifications
...
Ignore a missing `id` query param; it's unclear what this ID represents,
but it wasn't being used in the existing bitwarden_rs code, and no longer
seems to be sent in the latest versions of the official clients.
2020-03-26 19:26:44 -07:00
Jeremy Lin
c06162b22f
Handle devicePushToken
...
Mobile push isn't currently supported, but this should get rid of spurious
`Detected unexpected parameter during login: devicepushtoken` warnings.
2020-03-22 15:04:25 -07:00
Daniel García
7a6a3e4160
Set the cargo version and allow changing it during build time with BWRS_VERSION.
...
Also renamed GIT_VERSION because that's not the only source anymore.
2020-03-22 16:13:34 +01:00
Daniel García
94341f9f3f
Fix token error while accepting invite
2020-03-20 10:51:17 +01:00
BlackDex
37b212427c
Updated jsonwebtoken
...
Updated to the latest version of jsonwebtoken.
Some small code changes to match the new versions.
2020-03-16 16:38:00 +01:00
Daniel García
2ee07ea1d8
Fix empty data when cloning cipher
2020-03-15 17:26:34 +01:00
BlackDex
1b4b40c95d
Updated reqwest to the latest version.
...
- Use the blocking client (no async).
- Disabled gzip.
- use_sys_proxy is now default.
2020-03-14 23:12:45 +01:00
Daniel García
a30d5f4cf9
Fix cloning issues
2020-03-14 14:08:57 +01:00
Daniel García
3fa78e7bb1
Initial version of policies
2020-03-14 13:32:28 +01:00
Daniel García
70f3ab8ec3
Migrate lazy_static to once_cell, less macro magic and slightly faster
2020-03-09 22:04:03 +01:00
BlackDex
5a974c7b94
Added SMTP test button in the admin gui
...
- Added a test button for checking the e-mail settings.
- Fixed a bug with the _post JavaScript function:
A function was overwriten with a variable and errors were not handled
correctly like a 500 for example.
2020-02-26 16:49:56 +01:00
Daniel García
2f4a9865e1
Use absolute paths in the admin page
2020-02-22 17:49:33 +01:00
Jeremy Lin
29a0795219
Add backend support for alternate base dir (subdir/subpath) hosting
...
To use this, include a path in the `DOMAIN` URL, e.g.:
* `DOMAIN=https://example.com/custom-path `
* `DOMAIN=https://example.com/multiple/levels/are/ok `
2020-02-18 21:27:00 -08:00
Daniel García
325039c316
Attachment size limits, per-user and per-organization
2020-02-17 22:56:26 +01:00
Miroslav Prasil
0a72c4b6db
Do not disable invitations via admin API
...
This was brought up today:
https://github.com/dani-garcia/bitwarden_rs/issues/752#issuecomment-586715073
I don't think it makes much sense in checking whether admin has the
right to send invitation as admin can change the setting anyway.
Removing the condition allows users to forbid regular users from
inviting new users to server while still preserving the option to do so
via the admin API.
2020-02-16 15:01:07 +00:00
Daniel García
8867626de8
Add option to change invitation org name, fixes #825
...
Add option to allow additional iframe ancestors, fixes #843
Sort the rocket routes before printing them
2020-02-04 22:14:50 +01:00
Daniel García
f5916ec396
Fix backwards indices
2020-01-30 22:33:50 +01:00
Daniel García
ebb36235a7
Cache icons in the clients
2020-01-30 22:30:57 +01:00
Daniel García
def174a517
Convert email domains to punycode
2020-01-30 22:11:53 +01:00
Daniel García
84ed185579
Update u2f to 0.2, which requires OpenSSL but also might solve the problems we've had with certificates.
...
The rust image doesn't need installing curl or tar, so removed. Also collapsed ENV lines.
2020-01-19 21:34:13 +01:00
Daniel García
8c229920ad
Protect websocket server against panics
2020-01-04 23:52:38 +01:00
Daniel García
e274af6e3d
Print current server time when failing TOTP, and use chrono as the rest of the server
2019-12-27 18:42:14 +01:00
Daniel García
a0ece3754b
Formatting
2019-12-27 18:37:14 +01:00
Daniel García
2545469713
Fix crash when page URL points to huge file
2019-12-19 00:37:16 +01:00
Daniel García
5cabf4d040
Fix IP not shown when failed login ( Fixes #761 )
2019-12-07 14:38:32 +01:00
Daniel García
8d1b72b951
Collapsed log messages from 3 lines per request to 2 and hidden the ones valued as less informative.
...
Use LOG_LEVEL debug or trace to recover them.
Removed LOG_MOUNTS and bundled it with LOG_LEVEL debug and trace.
Removed duplicate error messages
Made websocket not proxied message more prominent, but only print it once.
2019-12-06 22:46:12 +01:00
Daniel García
912e1f93b7
Fix some lints
2019-12-06 22:12:41 +01:00
Daniel García
adc443ea80
Add endpoint to delete specific U2F key
2019-12-01 21:41:46 +01:00
Daniel García
0d32179d07
Logout button in admin page
2019-12-01 21:15:14 +01:00
Daniel García
12928b832c
Fix broken tests
2019-11-30 23:30:35 +01:00
Daniel García
924ba153aa
Merge pull request #730 from tomuta/email_verification
...
Implement change-email, email-verification, account-recovery, and welcome notifications
2019-11-25 08:21:18 +01:00
tomuta
bd1e8be328
Implement change-email, email-verification, account-recovery, and welcome notifications
2019-11-24 22:28:49 -07:00
BlackDex
b209c1bc4d
Add an option to fetch and parse href="data:image"
...
Some sites are using base64 encoded inline images for favicons.
This will try to match those with some sane checks and return that.
These icons will have lower prio then the icons with a normal URL.
2019-11-22 13:16:12 +01:00
tomuta
64d6f72e6c
Add the ability to disable signups, but allow signups from a whitelist
...
This feature can be enabled by setting SIGNUPS_ALLOWED=false and
providing a comma-separated list of whitelisted domains in
SIGNUPS_DOMAINS_WHITELIST.
Fixes #727
2019-11-16 15:01:45 -07:00
BlackDex
3f6809bcdf
Fixed issue/request #705
...
Added a config option to disable time drifted totp codes.
Default is false, since this is what the RFC recommends.
2019-11-07 17:11:29 +01:00
BlackDex
2ffc3eac4d
Clippy fix
2019-11-06 20:34:52 +01:00
BlackDex
0ff7fd939e
Next attempt for issue #709 fix
...
Now creates icon cache directory at startup.
And it also creates the directory if it went missing during runtime.
Also modified the icon_save/mark_negcache to be one.
2019-11-06 20:21:47 +01:00
BlackDex
ca7c5129b2
Fixed issue #709 creating icon_cache directory.
...
When the icon_cache directory doesn't exists yet, and the first icon
catched is a miss this .miss file was not able to be created since the
directory was only created during a valid icon download.
2019-11-06 15:47:56 +01:00
Patrick Li
85dbf4e16c
Don't include excluded global equivalent domains during sync
...
Fixes #681
2019-11-05 21:29:04 +13:00
Daniel García
e449912f05
Generate recovery codes for email and duo
2019-11-02 18:31:50 +01:00
Daniel García
d29b6bee28
Remove unnecessary clones and other clippy fixes
2019-11-02 17:39:01 +01:00
Miro Prasil
00a11b1b78
Stop leaking usernames when SIGNUPS_ALLOWED=false
...
This fixes #691 - respond in less specific way to not leak the
fact that user is already registered on the server.
2019-11-01 22:34:42 +00:00
BlackDex
ee550be80c
Added http favicon url when response failed
2019-10-29 14:24:01 +01:00
Jellyfrog
ebc47dc161
Remove unneeded WS logging
2019-10-17 17:15:11 +02:00
vpl
2edecf34ff
Use user_uuid instead of mut twofactor
2019-10-15 21:20:19 +02:00
vpl
18bc8331f9
Send email when preparing 2FA JsonError
2019-10-15 21:19:49 +02:00
BlackDex
603a964579
Fixed issue #663 .
...
During the 2fa activation there is no twofactor record yet.
Changed the layout a bit so that it will generate a new twofactor record
when it does not exists yet. Else it will just update the already
existing record.
2019-10-14 00:32:44 +02:00
BlackDex
9466f02696
Recoded TOTP time drift validation
2019-10-12 15:28:28 +02:00
BlackDex
d989a19f76
Merge branch 'master' of https://github.com/dani-garcia/bitwarden_rs into totp-timedrift
2019-10-11 11:22:13 +02:00
Daniel García
d292269ea0
Make the blacklist logic be cached
2019-10-10 23:21:22 +02:00
BlackDex
ebf40099f2
Updated authenticator TOTP
...
- Added security check for previouse used codes
- Allow TOTP codes with 1 step back and forward when there is a time
drift. This means in total 3 codes could be valid. But only newer codes
then the previouse used codes are excepted after that.
2019-10-10 17:32:20 +02:00
BlackDex
edc482c8ea
Changed HIBP Error message.
...
- Moved the manual link to the check to the top.
- Clearified that hibp is a payed service.
- Changed error logo to hibp logo.
2019-10-08 22:29:12 +02:00
BlackDex
6e5c03cc78
Some modification when no HIBP API Key is set
...
- Added an URL with the useraccount for manual check.
- Added support for HTTP(S)_PROXY for hibp.
2019-10-08 21:39:11 +02:00
Daniel García
e6b763026e
Merge branch 'master' into icon-security
2019-10-05 16:45:36 +02:00
BlackDex
be2916333b
Fixed issue #565
...
Issue fixed by omitting the cookie header when cookie_str is empty
2019-10-05 15:45:09 +02:00
BlackDex
9124d8a3fb
Updated icon blacklisting.
...
- Blacklisting was not effective for redirects and rel href
- Able to blacklist non global IP's like RFC1918, multicast etc...
2019-10-05 14:48:15 +02:00
Miro Prasil
d6e9af909b
Remove the unnecessary check for sqlite
...
The binary we use is called `sqlite3` so no need to check for other
name variants as we won't use those anyways.
2019-10-01 10:40:22 +01:00
Miro Prasil
acdd42935b
Add sqlite binary into the docker images
...
This is done to enable backup functionality in the admin interface while
we're waiting for the libsqlite-sys 0.17 to bubble up in the upstream
dependencies. Then we can start using `VACUUM INTO`
This also extends the check for the sqlite binary to also try `sqlite3`
as this is the name of the binary in baseimage distributions we use.
2019-09-30 13:54:06 +01:00
Daniel García
4c07f05b3a
Remove Result<T, E: Debug> in preparation of deprecation as Rocket responder.
...
Removed unnecessary returns
2019-09-17 21:05:56 +02:00
Daniel García
df8114f8be
Updated client kdf iterations to 100000 and fixed some lints
2019-09-05 21:56:12 +02:00
Daniel García
e3404dd322
Use the local scripts instead of cloudflare, remove jquery and update config so disabling a master toggle doesn't remove the values
2019-08-31 17:47:52 +02:00
Daniel García
bfc517ee80
Remove unused warning
2019-08-31 17:26:16 +02:00
Daniel García
4a7d2a1e28
Rename static files endpoint
2019-08-31 17:25:31 +02:00
vpl
5d50b1ee3c
Merge remote-tracking branch 'upstream/master' into email-codes
2019-08-26 21:38:45 +02:00
vpl
c99df1c310
Compare token using crypto::ct_eq
2019-08-26 20:26:59 +02:00
vpl
591ae10144
Get token from single u64
2019-08-26 20:26:54 +02:00
Daniel García
026f9da035
Allow removing users two factors
2019-08-21 17:13:06 +02:00
Daniel García
515b87755a
Update HIBP to v3, requires paid API key, fixes #583
2019-08-20 20:07:12 +02:00
vpl
ee7837d022
Add option to require new device emails
2019-08-19 22:14:00 +02:00
Daniel García
07743e490b
Ignore error sending device email
2019-08-18 19:32:26 +02:00
BlackDex
e7b6238f43
Added reqwest proxy support
2019-08-12 17:24:32 +02:00
vpl
ad2225b6e5
Add configuration options for Email 2FA
2019-08-10 22:39:04 +02:00
vpl
5609103a97
Use ring to generate email token
2019-08-06 22:38:08 +02:00
vpl
6d460b44b0
Use saved token for email 2fa codes
2019-08-04 17:21:57 +02:00
vpl
efd8d9f528
Remove some unused imports, unneeded mut variables
2019-08-04 16:56:41 +02:00
vpl
29aedd388e
Add email code logic and move two_factor into separate modules
2019-08-04 16:56:41 +02:00
vpl
27e0e41835
Add email authenticator logic
2019-08-04 16:56:39 +02:00
Daniel García
c9c3f07171
Updated dependencies and fixed panic getting icons
2019-07-30 19:42:05 +02:00
vpl
df71f57d86
Move send device email to end of password login
...
Send new device email after two factor authentication.
2019-07-25 21:10:27 +02:00
vpl
60e39a9dd1
Move retrieve/new device from connData to separate function
2019-07-22 12:30:26 +02:00
vpl
bc6a53b847
Add new device email when user logs in
2019-07-22 08:26:24 +02:00
Daniel García
05a1137828
Move backend checks to build.rs to fail fast, and updated dependencies
2019-07-09 17:26:34 +02:00
Daniel García
5710703c50
Make sure the backup option only appears when using sqlite
2019-06-02 00:08:52 +02:00
Daniel García
1322b876e9
Merge pull request #493 from endyman/feature/initial_mysql_support
...
Initial support for mysql
2019-06-01 23:33:06 +02:00
Emil Madsen
e22e290f67
Fix key and type variable names for mysql
2019-05-20 21:24:29 +02:00
TheMardy
ef551f4cc6
Create Backup funcitonality
...
Added create backup functionality to the admin panel
2019-05-03 15:46:29 +02:00
Daniel García
5521a86693
Change path for served images to avoid collision with vault images
2019-05-01 16:19:22 +02:00
Daniel García
3160780549
Merge pull request #401 from TheMardy/master
...
Images in Email Templates
2019-04-30 17:52:10 +02:00
Daniel García
874f5c34bd
Formatting
2019-04-26 22:08:26 +02:00
Daniel García
253faaf023
Use users duo host when required, instead of always using the global one
2019-04-15 13:07:23 +02:00
Daniel García
3d843a6a51
Merge pull request #460 from janost/organization-vault-purge
...
Fixed purging organization vault
2019-04-14 22:30:51 +02:00
janost
03fdf36bf9
Fixed purging organization vault
2019-04-14 22:12:48 +02:00
Daniel García
fdcc32beda
Validate Duo credentials when custom
2019-04-14 22:05:05 +02:00
Daniel García
bf20355c5e
Merge branch 'duo'
2019-04-14 22:02:55 +02:00
Daniel García
2e12114350
Always create the user when inviting from admin panel
2019-04-12 23:44:49 +02:00
ViViDboarder
d3a8a278e6
Add new endpoint for retrieving all users
2019-04-11 11:24:53 -07:00
Daniel García
8d9827c55f
Implement selection between global config and user settings for duo keys.
2019-04-11 18:40:03 +02:00
Daniel García
cad63f9761
Auto generate akey
2019-04-11 16:08:26 +02:00
Daniel García
621f607297
Update dependencies and fix some warnings
2019-04-11 15:40:19 +02:00
Daniel García
754087b990
Add global duo config and document options in .env template
2019-04-07 18:58:15 +02:00
Daniel García
cfbeb56371
Implement user duo, initial version
...
TODO:
- At the moment each user needs to configure a DUO application and input the API keys, we need to check if multiple users can register with the same keys correctly and if so we could implement a global setting.
- Sometimes the Duo frame doesn't load correctly, but canceling, reloading the page and logging in again seems to fix it for me.
2019-04-05 22:09:53 +02:00
Daniel García
4b40cda910
Added domain blacklist regex for icons service and improved valid domain check.
...
Reorganized the icons code a bit.
2019-03-18 22:12:39 +01:00
Daniel García
61515160a7
Allow changing error codes and create an empty error.
...
Return 404 instead of 400 when no accounts breached.
2019-03-14 00:17:36 +01:00
Daniel García
43f9038325
Add option to force resync clients in admin panel
2019-03-07 21:08:33 +01:00
Daniel García
0718a090e1
Trim spaces from admin token during authentication and validate that the admin panel token is not empty
2019-03-07 20:21:50 +01:00
Daniel García
04922f6aa0
Some formatting and dependency updates
2019-03-03 16:11:55 +01:00
Daniel García
7d2bc9e162
Added option to force 2fa at logins and made some changes to two factor code.
...
Added newlines to config options to keep them a reasonable length.
2019-03-03 16:09:15 +01:00
Daniel García
10756b0920
Update dependencies and fix some lints
2019-02-27 17:21:04 +01:00
Дамјан Георгиевски
473f8b8e31
remove some unneeded mutability
2019-02-22 20:25:50 +01:00
Shane Faulkner
8b5b06c3d1
Allow the Admin token to be disabled in the advanced menu
2019-02-20 14:56:08 -06:00
Daniel García
5ee04e31e5
Updated dependencies, removed some unnecessary clones and fixed some lints
2019-02-20 17:54:18 +01:00
TheMardy
84fb6aaddb
Set correct MIME type
2019-02-17 01:08:24 +01:00
Daniel García
a744b9437a
Implemented multiple U2f keys, key names, and compromised checks
2019-02-16 23:07:48 +01:00
Daniel García
6027b969f5
Delete old devices when deauthorizing user sessions
2019-02-16 23:06:26 +01:00
Daniel García
93805a5d7b
Fix Yubikeys deleted on error
2019-02-16 21:30:55 +01:00
TheMardy
a79334ea4c
Added static email image routes
2019-02-16 03:44:30 +01:00
BlackDex
3b27dbb0aa
Added config option for icon download timeout
2019-02-12 21:56:28 +01:00
Daniel García
9636f33fdb
Implement constant time equal check for admin, 2fa recover and 2fa remember tokens
2019-02-11 23:45:55 +01:00
Daniel García
28d1588e73
Show version in admin panel
2019-02-10 16:02:46 +01:00
Daniel García
f3b1a5ff3e
Error when admin panel is disabled
2019-02-10 15:26:19 +01:00
Daniel García
820c8b0dce
Change use of deserialize_with for Option iterator
2019-02-08 19:12:08 +01:00
Daniel García
8b4a6f2a64
Fixed some clippy lints and changed update_uuid_revision to only use one db query
2019-02-08 18:45:07 +01:00
Daniel García
ef63342e20
Add reset user config button
2019-02-06 17:34:32 +01:00
Daniel García
3db815b969
Implemented config form and fixed config priority
2019-02-06 17:34:30 +01:00
Daniel García
ade293cf52
Save config
2019-02-06 17:34:29 +01:00
Daniel García
877408b808
Implement basic config loading and updating. No save to file yet.
2019-02-06 17:34:29 +01:00
Daniel García
86ed75bf7c
Config can now be serialized / deserialized
2019-02-06 17:34:29 +01:00
Daniel García
20d8d800f3
Updated dependencies
2019-02-06 17:34:29 +01:00
Miroslav Prasil
637f655b6f
Do not allocate uneccessary Vec
2019-02-05 14:16:07 +00:00
Miroslav Prasil
b3f7394c06
Do not update revision at the end, as we already did that
2019-02-05 14:09:59 +00:00
Miroslav Prasil
1a5ecd4d4a
cipher does not need to be mutable
2019-02-05 13:52:30 +00:00
Miroslav Prasil
bd65c4e312
Remove superfluous cipher.save() call
2019-02-05 13:49:30 +00:00
BlackDex
9026cc8d42
Fixed issue when the iconlist is smaller then 5
...
When the iconlist was smaller then 5 items, it would cause a panic.
Solved by using .truncate() on the iconlist.
2019-02-04 17:27:40 +01:00