How do I use IVirtualPageController in combination with ootb public access / 404?

Using Umbraco 13 latest

I have a project which I would like to route using IVirtualPageController, because I have routes like this:

/topics/{slug-of-my-topic}

I want to find my custom content in the database by slug and then render it on a template from a contentpage in Umbraco. All of this on a single domain in a multi-domain setup

However, the entire site is also protected with public access and I found out that public access is ignored when using the IVirtualPageController.

Is there a way to leverage IVirtualPageController for custom routing, while also keeping the benefits of public access configuration in the backoffice?

I kind of want the benefits of a ContentFinder, but with the convenience of an IVirtualPageController for defining the route, because at the moment I’m using a custom ContentFinder and the routing is getting really out of hand. It’s not maintainable.

Alternatively, is there a better way to define routes for custom content while still leveraging as much as possible of Umbraco’s routing and domain mapping etc

Maybe you can decorate your controller with the ‘UmbracoMemberAuthorize’ attribute?

[UmbracoMemberAuthorize]
public class MyController : IVirtualPageController
{        
    public IPublishedContent? FindContent(ActionExecutingContext actionExecutingContext)
    {
        throw new NotImplementedException();
    }
}