A lot of style tools will warn about a class with the same name as its superclass.  (eg in some circumstances you might see the classname without the package name, so it probably is better for classnames to be unambiguous.)  How about HTMLNegotiationAuthenticator?  Or simply CustomNegotiationAuthenticator?