Decorate existing auth features

The built-in AuthFeature doesn’t use hard-coded [Route] attributes, it instead dynamically Registers Services with IAppHost.RegisterService, i.e:

    foreach (var registerService in ServiceRoutes)
    {
        appHost.RegisterService(registerService.Key, registerService.Value);
    }

You can override RegisterService in your AppHost to modify how the AuthenticateService gets registered, i.e:

public override void RegisterService(Type serviceType, params string[] atRestPaths)
{
    if (serviceType != typeof(AuthenticateService)) 
    {
        base.RegisterService(serviceType, atRestPaths);
        return;
    }

    string verbs = "POST";
    string summary = "...";
    string notes = "...";

    ServiceController.RegisterService(serviceType);
    foreach (var atRestPath in atRestPaths)
    {
        if (atRestPath == null) continue;
        this.Routes.Add(typeof(Authenticate), atRestPath, verbs, summary, notes);
    }
}