In the event that Knox users wish to have a 3rd-party authentication plugin, simplify the code such that users can set a custom principal implementation but still be able to use built-in decorators (e.g. the Logging decorator, which embeds user identity in the logs)