add union auth request handler

@liggitt I chose not to change behavior, but I don't see a reason why AuthenticationSuccessHandlers should be the exact same object as AuthenticationRequestHandlers.  If you agree that such a restriction is unnecessary, I'll turn getAuthenticationSuccessHandlers into a method that checks the configuration and creates the necessary handlers based on knowledge of both AuthenticationRequestHandler config and AuthenticationHandler config.
Yeah, you should only use a pointer to a slice if you intend to modify the slice.


> On Nov 21, 2014, at 3:56 PM, Jordan Liggitt <notifications@github.com> wrote:
> 
> In pkg/auth/authenticator/requesthandlers/union.go:
> 
> > +	"net/http"
> > +
> > +	kutil "github.com/GoogleCloudPlatform/kubernetes/pkg/util"
> > +
> > +	authapi "github.com/openshift/origin/pkg/auth/api"
> > +	"github.com/openshift/origin/pkg/auth/authenticator"
> > +)
> > +
> > +type unionAuthRequestHandler []authenticator.Request
> > +
> > +func NewUnionAuthentication(authRequestHandlers []authenticator.Request) authenticator.Request {
> > +	ret := unionAuthRequestHandler(authRequestHandlers)
> > +	return &ret
> > +}
> > +
> > +func (authHandler *unionAuthRequestHandler) AuthenticateRequest(req *http.Request) (authapi.UserInfo, bool, error) {
> I don't think a pointer receiver gets you much here... slices are as efficient as pointers already, and you have to deref it to range over it...
> 
> —
> Reply to this email directly or view it on GitHub.
>