Commit Graph

169 Commits

Author SHA1 Message Date
Shannon
2f9e92eee7 Make BackOfficeClaimsPrincipalFactory not be generic, doesn't need to be, cleans up code as per rules 2020-12-03 20:30:35 +11:00
Shannon
372674abde re-adds test scheme for test authn/authz 2020-12-02 13:32:14 +11:00
Shannon
4f7c87d1d2 Fix build issues after merge 2020-12-02 13:19:08 +11:00
Shannon
0f0c50b56e Merge remote-tracking branch 'origin/netcore/netcore' into netcore/feature/2FAuth
# Conflicts:
#	src/Umbraco.Tests.Integration/TestServerTest/TestAuthHandler.cs
#	src/Umbraco.Web.BackOffice/Controllers/AuthenticationController.cs
#	src/Umbraco.Web.BackOffice/Controllers/BackOfficeController.cs
#	src/Umbraco.Web.BackOffice/Controllers/ContentController.cs
#	src/Umbraco.Web.BackOffice/Controllers/ContentTypeController.cs
#	src/Umbraco.Web.BackOffice/Controllers/MediaTypeController.cs
#	src/Umbraco.Web.BackOffice/Controllers/UsersController.cs
#	src/Umbraco.Web.BackOffice/Filters/DenyLocalLoginAuthorizationAttribute.cs
#	src/Umbraco.Web.BackOffice/Filters/OverrideAuthorizationFilterProvider.cs
#	src/Umbraco.Web.Common/Filters/UmbracoBackOfficeAuthorizeAttribute.cs
#	src/Umbraco.Web.Common/Filters/UmbracoBackOfficeAuthorizeFilter.cs
2020-12-02 13:14:47 +11:00
Shannon
37cf0d3d16 clean up TODOs 2020-12-02 13:04:02 +11:00
James Jackson-South
0369375d8e Merge branch 'netcore/netcore' into netcore/feature/9397 2020-12-01 12:44:10 +00:00
James Jackson-South
748cbb1f7b Normalize builder namespace 2020-12-01 12:42:14 +00:00
Shannon
4671d9d23b moves the back office user auditing logic 2020-12-01 17:51:52 +11:00
Shannon
20b4f55664 Fixes up a bunch of TODOs moves user manager to the back office project so we have acess to necessary services, splits apart files, removes old code, starts implementing the 2fa stuff 2020-12-01 17:24:23 +11:00
Shannon
efff96f711 Creates IBackOfficeSignInManager interface 2020-11-30 22:46:05 +11:00
Shannon
36b3a2b62a fixes media authz resource policies 2020-11-30 19:38:55 +11:00
Shannon
76cbd76f32 Fixes content resource authz 2020-11-30 19:09:14 +11:00
Bjarke Berg
a098b956a6 Revert "Revert "Ensures that all back office controllers are authenticated under the back office scheme""
Signed-off-by: Bjarke Berg <mail@bergmania.dk>
2020-11-27 13:35:22 +01:00
Bjarke Berg
88c1259d84 Revert "Revert "Moves some files, adds notes, starts poc for back office login providers""
Signed-off-by: Bjarke Berg <mail@bergmania.dk>
2020-11-27 13:33:01 +01:00
Bjarke Berg
3b0d33a84c Revert "Moves some files, adds notes, starts poc for back office login providers"
Signed-off-by: Bjarke Berg <mail@bergmania.dk>
2020-11-27 13:17:58 +01:00
Bjarke Berg
7d61020214 Revert "Ensures that all back office controllers are authenticated under the back office scheme"
Signed-off-by: Bjarke Berg <mail@bergmania.dk>
2020-11-27 13:16:50 +01:00
Shannon
313a2e6f7c Ensures that all back office controllers are authenticated under the back office scheme 2020-11-27 13:32:41 +11:00
Shannon
e01abf2802 Moves some files, adds notes, starts poc for back office login providers 2020-11-26 19:24:55 +11:00
Shannon
8e15e265fd Adds TODOs, puts back UmbracoRequireHttpsAttribute but in a nicer way, ensures test classes initialize the authz policies with the test scheme 2020-11-26 16:52:03 +11:00
Shannon
e0665973e3 Merge remote-tracking branch 'origin/netcore/netcore' into netcore/task/6666-auth-policies
# Conflicts:
#	src/Umbraco.Infrastructure/Runtime/CoreInitialComposer.cs
#	src/Umbraco.Web.BackOffice/Extensions/BackOfficeServiceCollectionExtensions.cs
#	src/Umbraco.Web.Common/Filters/UmbracoBackOfficeAuthorizeFilter.cs
#	src/Umbraco.Web.Common/Runtime/AspNetCoreComposer.cs
2020-11-25 11:55:16 +11:00
Paul Johnson
5268f9d7f0 Resolve review comments 2020-11-24 09:37:52 +00:00
Shannon
f313a4f583 some cleanup of handlers that check multiple query strings 2020-11-24 11:56:53 +11:00
Shannon
bde025f661 streamlines the naming of the content/media permissions handlers 2020-11-24 00:42:52 +11:00
Shannon
4dbfe5867b migrates the custom content persmission helper and media permissions helper checks to authz policies and cleans up that code/class/namespaces 2020-11-24 00:37:26 +11:00
Shannon
c34540cb06 Migrates EnsureUserPermissionForContentAttribute to authz policies 2020-11-23 22:43:41 +11:00
Paul Johnson
0241649f7f Cleanup AddUmbraco & AddUmbracoCore 2020-11-21 15:22:24 +00:00
Shannon
7757447244 Migrates UmbracoBackOfficeAuthorizeAttribute to authz policies and adds notes/questions 2020-11-20 15:32:36 +11:00
Shannon
84c2f75a27 Adds notes, only run back office authz policies on the back office scheme 2020-11-20 14:59:08 +11:00
Shannon
e7b4c5a811 Converts FeatureAuthorize to authz policy 2020-11-20 12:40:29 +11:00
Shannon
f32399292e Migrates UserGroupAuthorizationAttribute to authz policies 2020-11-20 12:23:09 +11:00
Shannon
6a995127b1 Migrates AdminUsersAuthorizeAttribute and DenyLocalLoginAuthorizationAttribute to authz policies 2020-11-19 23:53:04 +11:00
Shannon
63fceebca0 Removes UmbracoApplicationAuthorizeAttribute and migrates usages to authz policies 2020-11-19 22:17:42 +11:00
Paul Johnson
48b61ec4c4 Simplify UmbracoBuilder setup 2020-11-19 09:12:39 +00:00
Shannon
daaade185e Removes UmbracoTreeAuthorizeAttribute and migrates usages to authz policies 2020-11-19 19:23:41 +11:00
Paul Johnson
aec25d5007 Replace Composition with UmbracoBuilder 2020-11-18 17:41:57 +00:00
Shannon
99247d7fbe Merge remote-tracking branch 'origin/netcore/netcore' into netcore/task/6973-migrating-authenticationcontroller
# Conflicts:
#	src/Umbraco.Infrastructure/PropertyEditors/PropertyEditorsComposer.cs
2020-11-18 16:02:51 +11:00
Paul Johnson
d498c1a2cd Netcore: Turn container validation back on (#9401)
* Remove RuntimeLevelAttribute & disable filtering

* Remove RuntimeLevelAttribute usage on Composers

* Fix broken tests

* Resolve UserManager registration issues.

* Turn container validation back on.

* Resolve lifetime issue post install backoffice.

* Remove final TODO: MSDI
2020-11-17 08:56:04 +01:00
Bjarke Berg
e46a248832 Merge remote-tracking branch 'origin/netcore/netcore' into netcore/task/6973-migrating-authenticationcontroller-merge
# Conflicts:
#	src/Umbraco.Infrastructure/HostedServices/ScheduledPublishing.cs
#	src/Umbraco.Infrastructure/Runtime/CoreInitialComposer.cs
#	src/Umbraco.Infrastructure/Scheduling/SchedulerComponent.cs
#	src/Umbraco.Infrastructure/Scheduling/SchedulerComposer.cs
#	src/Umbraco.Tests.Integration/Testing/UmbracoIntegrationTest.cs
#	src/Umbraco.Tests/Testing/UmbracoTestBase.cs
#	src/Umbraco.Web.BackOffice/Extensions/BackOfficeApplicationBuilderExtensions.cs
#	src/Umbraco.Web.BackOffice/Runtime/BackOfficeComposer.cs
#	src/Umbraco.Web.Common/Runtime/AspNetCoreComposer.cs
#	src/Umbraco.Web.Common/UmbracoContext/UmbracoContext.cs
#	src/Umbraco.Web.UI.NetCore/appsettings.json
#	src/Umbraco.Web/Editors/BackOfficeController.cs
#	src/Umbraco.Web/Runtime/WebInitialComponent.cs
2020-11-12 13:10:19 +01:00
Paul Johnson
7561bb5244 No need to register controllers into container, DefaultControllerActivator works fine. 2020-11-11 19:15:30 +00:00
Paul Johnson
3f5f85880e NetCore: MSDI refactor split CoreRuntime & Remove Current (#9356)
* Split Bootstrap code from CoreRuntime

* Make ContentService method signatures match interface
prevents need to hide the concrete class in tests

* Remove Current

Only bit that bugs me is TreeNode for IconFilePath
I get the feeling it's dead code, but can just use a setter in cs or work out path in js if required.

* Fix tests, remember to terminate IRuntime
2020-11-10 09:50:47 +01:00
Andy Butland
0351a3eed4 Merge branch 'netcore/netcore' into feature/avoid-sync-io-exception-on-image-render
# Conflicts:
#	src/Umbraco.Web.BackOffice/Extensions/BackOfficeServiceCollectionExtensions.cs
2020-11-06 15:16:51 +01:00
Andy Butland
9cb59239d1 Migrated KeepAlive recurring task to hosted service. 2020-10-30 17:19:01 +01:00
Andy Butland
bdb8f34da3 Netcore: Health check notifier hosted service (#9295)
* Implemented health check notifier as a hosted service.
Added validation to health check settings.

* Registered health check notifier as a hosted service.
Modified health check nested settings to use concrete classes to align with other configuration models.

* Resolved issues with email sending using development server.

* PR review comments and fixed failing unit test.

* Changed period and delay millisecond and hourly values to TimeSpans.
Changed configuration of first run time for health check notifications to use H:mm format.

* Set up SecureSocketOptions as a locally defined enum.

* Tightened up time format validation to verify input is an actual time (with hours and minutes only) and not a timespan.

* Aligned naming and namespace of health check configuration related classes with other configuration classes.

* Created constants for hex colors used in formatting health check results as HTML.

* Revert "Tightened up time format validation to verify input is an actual time (with hours and minutes only) and not a timespan."

This reverts commit f9bb8a7a825bcb58146879f18b47922e09453e2d.

* Renamed method to be clear validation is of a TimeSpan and not a time.

Co-authored-by: Bjarke Berg <mail@bergmania.dk>
2020-10-30 13:56:13 +01:00
Paul Johnson
ec66990e72 NetCore: MSDI refactor phase 2 (#9280)
* Moved adapters from Infra -> Core

* Allow Composition to accept a service collection instead of an IRegister

* Composition no longer takes IRegister as constructor arg

all tests passing

* Composition no longer implements IRegister

* Lose _uniques in Composition

* lose Composition OnCreatingFactory actions

* Clean up UmbracoCoreServiceCollectionExtensions & Composition

Less IFactory

* LightInject gone where TFW == netstandard2.0 || TFW == netcoreapp3.1

* Resolve dead code issues

* Rename IFactory methods to match IServiceProvider so they can be trivially swapped later.

* Rename IFactory methods to match IServiceProvider so they can be trivially swapped later (continued)

Thought the counts were low, it's mostly extension method usage
2020-10-27 11:53:01 +01:00
Bjarke Berg
715071a33f Merge remote-tracking branch 'origin/netcore/task/6973-migrating-authenticationcontroller' into netcore/task/6973-migrating-authenticationcontroller-merge
# Conflicts:
#	src/Umbraco.Web.BackOffice/Controllers/BackOfficeServerVariables.cs
#	src/Umbraco.Web.BackOffice/Extensions/BackOfficeApplicationBuilderExtensions.cs
#	src/Umbraco.Web/Logging/WebProfilerComponent.cs
#	src/Umbraco.Web/Logging/WebProfilerComposer.cs
2020-10-26 14:37:56 +01:00
Mole
9cd752c2f8 Netcore: Align Namespaces in Tests and Web.BackOffice (#9274)
* Align namespaces in integration tests

* Align namespaces in unit tests

* Align namespaces in Backoffice.Filters

* Align namespaces in Backoffice.ActionResults

* Align namespaces in Backoffice.Mapping

* Align namespaces in Backoffice.PorpertyEditors and SignalR

* Align namespaces in Backoffice.Trees

* Align unit tests after migration
2020-10-26 13:34:08 +01:00
Paul Johnson
a99f625f6a Netcore: Alternate approach for MSDI refactor (#9247)
* Doesn't make much sense to have Concrete on IRegister, only on IFactory

* Handle FilesTreeController requires IFileSystem of type PhysicalFileSystem

* Handle registration of default MediaFileSystem without using RegisterUniqueFor

* Remove RegisterFor / RegisterUniqueFor from IRegister

* Switch over from LightInject to wrappers around MSDI

* Made mapper dependencies more explicit

* Remove registration for AngularJsonMediaTypeFormatter

It's dependencies aren't registered so container validation fails

* Resolve lifetime issue for EnsureValidSessionId by service locating

else resolve scoped in singleton

* Make registration more explicit for backoffice UserManager

* Make install step registrations more explicit

* Disable service provider validation so site can launch

Maybe this is a problem maybe not, we build about 8000 service providers so maybe everything is fine later...

* Further cleanup of IFactory interface

* Further cleanup of IRegister interface

* Revert "Make registration more explicit for backoffice UserManager"

This reverts commit 7215fe836103c597cd0873c66737a79b91ed4c49.

* Resolve issue where NewInstallStep would fail to reset password for "SuperUser"

Before MSDI, somehow BackOfficeIdentityOptions would be configured with token provider map from IdentityBuilder.AddDefaultTokenProviders.
After switchover those config actions are lost.

Subclass IdentityBuilder to ensure BackOfficeIdentityOptions doesn't miss config setup upstream.

* Initialize current.

* Add todo to turn container validation back on.

* Migrated ScopeFileSystemsTests to integration tests

Signed-off-by: Bjarke Berg <mail@bergmania.dk>

* Resolve issue where MediaFileSystem was skipping ShadowFileSystem

* Attempt to fix ScopeFileSystemsTests on azure devops

Signed-off-by: Bjarke Berg <mail@bergmania.dk>

* Be interesting to know what the actual full path is in pipeline.

* Clarify intent of CreateMediaTest

Doesn't help resolve weird UnauthorizedAccessException but it cuts so much cognitive overhead for the future.

* Use ILoggerfactory rather than mock for the manually constructed file PhysicalFileSystem

* Maybe resolve failing test on azure pipeline.

Co-authored-by: Bjarke Berg <mail@bergmania.dk>
2020-10-26 11:47:14 +01:00
Shannon
e7d22e24db ensures middleware is registered and the external cookie auth is registered. 2020-10-23 14:57:35 +11:00
Shannon
64d8b56eca It builds! 2020-10-23 14:18:53 +11:00
Shannon
1400a02798 Merge branch 'netcore/dev' into netcore/task/6973-migrating-authenticationcontroller
# Conflicts:
#	src/Umbraco.Core/Constants-Security.cs
#	src/Umbraco.Infrastructure/BackOffice/BackOfficeClaimsPrincipalFactory.cs
#	src/Umbraco.Infrastructure/BackOffice/BackOfficeUserManager.cs
#	src/Umbraco.Infrastructure/Migrations/Upgrade/UmbracoPlan.cs
#	src/Umbraco.Tests.AcceptanceTest/cypress/integration/Tour/backofficeTour.ts
#	src/Umbraco.Web.BackOffice/Controllers/BackOfficeServerVariables.cs
#	src/Umbraco.Web.BackOffice/Controllers/DenyLocalLoginAuthorizationAttribute.cs
#	src/Umbraco.Web.BackOffice/Controllers/UsersController.cs
#	src/Umbraco.Web.BackOffice/Extensions/HtmlHelperBackOfficeExtensions.cs
#	src/Umbraco.Web.BackOffice/Services/IconService.cs
#	src/Umbraco.Web.Common/Security/ExternalSignInAutoLinkOptions.cs
#	src/Umbraco.Web.UI.Client/src/common/interceptors/_module.js
#	src/Umbraco.Web.UI.Client/src/common/interceptors/requiredheaders.interceptor.js
#	src/Umbraco.Web.UI.Client/src/views/common/overlays/user/user.controller.js
#	src/Umbraco.Web.UI.NetCore/umbraco/UmbracoBackOffice/Default.cshtml
#	src/Umbraco.Web.UI.NetCore/umbraco/config/lang/da.xml
#	src/Umbraco.Web.UI.NetCore/umbraco/config/lang/en.xml
#	src/Umbraco.Web.UI.NetCore/umbraco/config/lang/en_us.xml
#	src/Umbraco.Web.UI/Umbraco/Views/AuthorizeUpgrade.cshtml
#	src/Umbraco.Web/Editors/AuthenticationController.cs
#	src/Umbraco.Web/Editors/BackOfficeController.cs
#	src/Umbraco.Web/Editors/Filters/IsCurrentUserModelFilterAttribute.cs
#	src/Umbraco.Web/Security/AppBuilderExtensions.cs
#	src/Umbraco.Web/Security/AuthenticationOptionsExtensions.cs
#	src/Umbraco.Web/UmbracoDefaultOwinStartup.cs
2020-10-23 10:10:02 +11:00