code: func AuthorizeClientBearerToken(loopback *restclient.Config, authn *AuthenticationInfo, authz *AuthorizationInfo) {
  	if loopback == nil || len(loopback.BearerToken) == 0 {
  		return
  	}
  	if authn == nil || authz == nil {
  		// prevent nil pointer panic
  	}
  	if authn.Authenticator == nil || authz.Authorizer == nil {
  		// authenticator or authorizer might be nil if we want to bypass authz/authn
  		// and we also do nothing in this case.
  		return
  	}
  
  	privilegedLoopbackToken := loopback.BearerToken
  	var uid = uuid.NewRandom().String()
  	tokens := make(map[string]*user.DefaultInfo)
  	tokens[privilegedLoopbackToken] = &user.DefaultInfo{
  		Name:   user.APIServerUser,
  		UID:    uid,
  		Groups: []string{user.SystemPrivilegedGroup},
  	}
  
  	tokenAuthenticator := authenticatorfactory.NewFromTokens(tokens)
  	authn.Authenticator = authenticatorunion.New(tokenAuthenticator, authn.Authenticator)
  
  	tokenAuthorizer := authorizerfactory.NewPrivilegedGroups(user.SystemPrivilegedGroup)
  	authz.Authorizer = authorizerunion.New(tokenAuthorizer, authz.Authorizer)
  }
docs: // AuthorizeClientBearerToken wraps the authenticator and authorizer in loopback authentication logic
  // if the loopback client config is specified AND it has a bearer token. Note that if either authn or
  // authz is nil, this function won't add a token authenticator or authorizer.