This PR adds an option to define the timeout for the refresh token. The token is default set to 30 days.
If the user interacts with Duplicati (i.e., loads the page) the refresh token is regenerated, meaning that the user is not asked to log in again unless the refresh token has expired fully.
With this PR it is possible to configure this duration to be a shorter period, but not longer than the 30 days.
This adds support for providing a custom defined token instead of using the JWT tokens.
The intended use is for deployments where the authentication is provide by a different layer (a proxy service).
* Fixed nullability warnings in `Utility.cs`
* Fixed a number of nullability issues and warnings
* More nullable fixes
* Fixed the overwrite issue
* Fixed additional nullability issues
* Removed additional nullability issues
* More nullability fixes and added some xmldoc
* Added more xmldocs and removed an unused argument
* Removed more warnings
* Implemented support for emitting intermediate certificates from pfx files
* Added certificate check to crash earlier
* Fixed loading certificate on Windows
This fixes a case where the update checker keeps an old reference to the previous updated version, despite running a newer version.
It also removes some use of `Assembly.GetExecutingAssembly().GetName().Version` with the information from `UpdaterManager.SelfVersion.Version` as that should follow the update info.
This fixes#5698
This fixes#5252
This adds a manually implemented hostname check that is applied as an endpoint filter.
With the implemented filter, the validation rules are similar to those before Kestrel was introduced.
This fixes#5469
Added auth requirement on all endpoints.
Added SignIn-, Access- and Refresh-Tokens based on JWT.
Upgraded stored password to be based on PBKDF2.
Added default password assignment.
Updated logic to support auth-header and re-sign-in for tray-icon and web-ui.
Re-implemented everything using ASP.NET.
Changed some requests to use JSON instead of FORM data.
Some work towards deleting the FIXMEGlobal instance.
Auth is missing, XSRF does not work correctly.