Rather than have a REST controller where within each method I take different actions depending on whether the current user is authenticated I'd like to delegate to completely different controller implementations depending on the authenticated status of the user.
I.e. I'd provide an interface containing a set of method signatures, each with a @RequestMapping annotation, and then provide one implementation of this interface to be used for authenticated users and another implementation for non-authenticated users. Some logic would then choose the appropriate implementation for the current user and dispatch to it.