func (mw *AuthBasicMiddleware) MiddlewareFunc(handler HandlerFunc) HandlerFunc {

	if mw.Realm == "" {
		log.Fatal("Realm is required")
	}

	if mw.Authenticator == nil {
		log.Fatal("Authenticator is required")
	}

	if mw.Authorizator == nil {
		mw.Authorizator = func(userId string, request *Request) bool {
			return true
		}
	}

	return func(writer ResponseWriter, request *Request) {

		authHeader := request.Header.Get("Authorization")
		if authHeader == "" {
			mw.unauthorized(writer)
			return
		}

		providedUserId, providedPassword, err := mw.decodeBasicAuthHeader(authHeader)

		if err != nil {
			Error(writer, "Invalid authentication", http.StatusBadRequest)
			return
		}

		if !mw.Authenticator(providedUserId, providedPassword) {
			mw.unauthorized(writer)
			return
		}

		if !mw.Authorizator(providedUserId, request) {
			mw.unauthorized(writer)
			return
		}

		request.Env["REMOTE_USER"] = providedUserId

		handler(writer, request)
	}
}
func (mw *AuthBasicMiddleware) MiddlewareFunc(handler HandlerFunc) HandlerFunc {

	if mw.Realm == "" {
		log.Fatal("Realm is required")
	}

	if mw.Authenticator == nil {
		log.Fatal("Authenticator is required")
	}

	if mw.Authorizator == nil {
		mw.Authorizator = func(userId string, request *Request) bool {
			return true
		}
	}

	return func(writer ResponseWriter, request *Request) {

		authHeader := request.Header.Get("Authorization")
		if authHeader == "" {
			mw.unauthorized(writer)
			return
		}

		providedUserId, providedPassword, err := mw.decodeBasicAuthHeader(authHeader)

		if err != nil {
			Error(writer, "Invalid authentication", http.StatusBadRequest)
			return
		}

		if !mw.Authenticator(providedUserId, providedPassword) {
			mw.unauthorized(writer)
			return
		}

		if !mw.Authorizator(providedUserId, request) {
			mw.unauthorized(writer)
			return
		}

		request.Env["REMOTE_USER"] = providedUserId

		handler(writer, request)
	}
}
func ( mw * AuthBasicMiddleware ) MiddlewareFunc ( handler HandlerFunc ) HandlerFunc { if mw . Realm == " " { log . Fatal ( " " ) } if mw . Authenticator == nil { log . Fatal ( " " ) } if mw . Authorizator == nil { mw . Authorizator = func ( userId string , request * Request ) bool { return true } } return func ( writer ResponseWriter , request * Request ) { authHeader := request . Header . Get ( " " ) if authHeader == " " { mw . unauthorized ( writer ) return } providedUserId , providedPassword , err := mw . decodeBasicAuthHeader ( authHeader ) if err != nil { Error ( writer , " " , http . StatusBadRequest ) return } if ! mw . Authenticator ( providedUserId , providedPassword ) { mw . unauthorized ( writer ) return } if ! mw . Authorizator ( providedUserId , request ) { mw . unauthorized ( writer ) return } request . Env [ " " ] = providedUserId handler ( writer , request ) } }
// MiddlewareFunc makes AuthBasicMiddleware implement the Middleware interface.
MiddlewareFunc makes AuthBasicMiddleware implement the Middleware interface .