From 374087e115ab51b7ecfc74c561047800effdd597 Mon Sep 17 00:00:00 2001
From: "CTFang@WireLab" <ctfang.cs12@nycu.edu.tw>
Date: Thu, 9 Nov 2023 06:50:50 +0000
Subject: [PATCH] Refactor: refactor after openapi refactor

---
 internal/sbi/consumer/nf_accesstoken.go       |  10 +-
 internal/sbi/producer/generate_auth_data.go   |  23 ++-
 internal/sbi/producer/parameter_provision.go  |   9 +-
 .../producer/subscriber_data_management.go    | 144 +++++++++++++-----
 .../sbi/producer/ue_context_management.go     |  61 +++++---
 internal/util/nf_authorization.go             |  12 +-
 pkg/factory/config.go                         |  25 ---
 7 files changed, 178 insertions(+), 106 deletions(-)

diff --git a/internal/sbi/consumer/nf_accesstoken.go b/internal/sbi/consumer/nf_accesstoken.go
index 3e85f30..9e0b225 100644
--- a/internal/sbi/consumer/nf_accesstoken.go
+++ b/internal/sbi/consumer/nf_accesstoken.go
@@ -3,19 +3,17 @@ package consumer
 import (
 	"context"
 
-	udm_context "github.com/free5gc/udm/internal/context"
-
-	"github.com/free5gc/udm/pkg/factory"
-
 	"github.com/free5gc/openapi"
-	"github.com/free5gc/openapi/Send_util"
 	"github.com/free5gc/openapi/models"
+	"github.com/free5gc/openapi/oauth"
+	udm_context "github.com/free5gc/udm/internal/context"
+	"github.com/free5gc/udm/pkg/factory"
 )
 
 func GetTokenCtx(scope, targetNF string) (context.Context, *models.ProblemDetails, error) {
 	if factory.UdmConfig.GetOAuth() {
 		udmSelf := udm_context.Getself()
-		tok, pd, err := Send_util.SendAccTokenReq(udmSelf.NfId, models.NfType_UDM, scope, targetNF, udmSelf.NrfUri)
+		tok, pd, err := oauth.SendAccTokenReq(udmSelf.NfId, models.NfType_UDM, scope, targetNF, udmSelf.NrfUri)
 		if err != nil {
 			return nil, pd, err
 		}
diff --git a/internal/sbi/producer/generate_auth_data.go b/internal/sbi/producer/generate_auth_data.go
index c8a38fd..fe20f75 100644
--- a/internal/sbi/producer/generate_auth_data.go
+++ b/internal/sbi/producer/generate_auth_data.go
@@ -1,7 +1,6 @@
 package producer
 
 import (
-	"context"
 	cryptoRand "crypto/rand"
 	"encoding/hex"
 	"fmt"
@@ -20,6 +19,7 @@ import (
 	"github.com/free5gc/openapi/models"
 	udm_context "github.com/free5gc/udm/internal/context"
 	"github.com/free5gc/udm/internal/logger"
+	udm_consumer "github.com/free5gc/udm/internal/sbi/consumer"
 	"github.com/free5gc/udm/pkg/suci"
 	"github.com/free5gc/util/httpwrapper"
 	"github.com/free5gc/util/milenage"
@@ -127,9 +127,12 @@ func ConfirmAuthDataProcedure(authEvent models.AuthEvent, supi string) (problemD
 	if err != nil {
 		return openapi.ProblemDetailsSystemFailure(err.Error())
 	}
-	// TODO: [OAUTH2] should call GetTokenCtx("nudr-dr", "UDR")
+	ctx, pd, err := udm_consumer.GetTokenCtx("nudr-dr", "UDR")
+	if err != nil {
+		return pd
+	}
 	resp, err := client.AuthenticationStatusDocumentApi.CreateAuthenticationStatus(
-		context.Background(), supi, &createAuthParam)
+		ctx, supi, &createAuthParam)
 	if err != nil {
 		problemDetails = &models.ProblemDetails{
 			Status: int32(resp.StatusCode),
@@ -174,8 +177,11 @@ func GenerateAuthDataProcedure(authInfoRequest models.AuthenticationInfoRequest,
 	if err != nil {
 		return nil, openapi.ProblemDetailsSystemFailure(err.Error())
 	}
-	// TODO: [OAUTH2] should call GetTokenCtx("nudr-dr", "UDR")
-	authSubs, res, err := client.AuthenticationDataDocumentApi.QueryAuthSubsData(context.Background(), supi, nil)
+	ctx, pd, err := udm_consumer.GetTokenCtx("nudr-dr", "UDR")
+	if err != nil {
+		return nil, pd
+	}
+	authSubs, res, err := client.AuthenticationDataDocumentApi.QueryAuthSubsData(ctx, supi, nil)
 	if err != nil {
 		problemDetails = &models.ProblemDetails{
 			Status: http.StatusForbidden,
@@ -463,9 +469,12 @@ func GenerateAuthDataProcedure(authInfoRequest models.AuthenticationInfoRequest,
 	}
 
 	var rsp *http.Response
-	// TODO: [OAUTH2] should call GetTokenCtx("nudr-dr", "UDR")
+	ctx, pd, err = udm_consumer.GetTokenCtx("nudr-dr", "UDR")
+	if err != nil {
+		return nil, pd
+	}
 	rsp, err = client.AuthenticationDataDocumentApi.ModifyAuthentication(
-		context.Background(), supi, patchItemArray)
+		ctx, supi, patchItemArray)
 	if err != nil {
 		problemDetails = &models.ProblemDetails{
 			Status: http.StatusForbidden,
diff --git a/internal/sbi/producer/parameter_provision.go b/internal/sbi/producer/parameter_provision.go
index 2fc906e..dbdac65 100644
--- a/internal/sbi/producer/parameter_provision.go
+++ b/internal/sbi/producer/parameter_provision.go
@@ -1,12 +1,12 @@
 package producer
 
 import (
-	"context"
 	"net/http"
 
 	"github.com/free5gc/openapi"
 	"github.com/free5gc/openapi/models"
 	"github.com/free5gc/udm/internal/logger"
+	udm_consumer "github.com/free5gc/udm/internal/sbi/consumer"
 	"github.com/free5gc/util/httpwrapper"
 )
 
@@ -34,8 +34,11 @@ func UpdateProcedure(updateRequest models.PpData, gpsi string) (problemDetails *
 	if err != nil {
 		return openapi.ProblemDetailsSystemFailure(err.Error())
 	}
-	// TODO: [OAUTH2] should call GetTokenCtx("nudr-dr", "UDR")
-	res, err := clientAPI.ProvisionedParameterDataDocumentApi.ModifyPpData(context.Background(), gpsi, nil)
+	ctx, pd, err := udm_consumer.GetTokenCtx("nudr-dr", "UDR")
+	if err != nil {
+		return pd
+	}
+	res, err := clientAPI.ProvisionedParameterDataDocumentApi.ModifyPpData(ctx, gpsi, nil)
 	if err != nil {
 		problemDetails = &models.ProblemDetails{
 			Status: int32(res.StatusCode),
diff --git a/internal/sbi/producer/subscriber_data_management.go b/internal/sbi/producer/subscriber_data_management.go
index 82fe075..5967ae5 100644
--- a/internal/sbi/producer/subscriber_data_management.go
+++ b/internal/sbi/producer/subscriber_data_management.go
@@ -1,7 +1,6 @@
 package producer
 
 import (
-	"context"
 	"encoding/json"
 	"net/http"
 	"net/url"
@@ -16,6 +15,7 @@ import (
 	"github.com/free5gc/openapi/models"
 	udm_context "github.com/free5gc/udm/internal/context"
 	"github.com/free5gc/udm/internal/logger"
+	udm_consumer "github.com/free5gc/udm/internal/sbi/consumer"
 	"github.com/free5gc/util/httpwrapper"
 )
 
@@ -62,9 +62,12 @@ func getAmDataProcedure(supi string, plmnID string, supportedFeatures string) (
 		return nil, openapi.ProblemDetailsSystemFailure(err.Error())
 	}
 
-	// TODO: [OAUTH2] should call GetTokenCtx("nudr-dr", "UDR")
+	ctx, pd, err := udm_consumer.GetTokenCtx("nudr-dr", "UDR")
+	if err != nil {
+		return nil, pd
+	}
 	accessAndMobilitySubscriptionDataResp, res, err := clientAPI.AccessAndMobilitySubscriptionDataDocumentApi.
-		QueryAmData(context.Background(), supi, plmnID, &queryAmDataParamOpts)
+		QueryAmData(ctx, supi, plmnID, &queryAmDataParamOpts)
 	if err != nil {
 		if res == nil {
 			logger.SdmLog.Errorf(err.Error())
@@ -138,9 +141,12 @@ func getIdTranslationResultProcedure(gpsi string) (response *models.IdTranslatio
 		return nil, openapi.ProblemDetailsSystemFailure(err.Error())
 	}
 
-	// TODO: [OAUTH2] should call GetTokenCtx("nudr-dr", "UDR")
+	ctx, pd, err := udm_consumer.GetTokenCtx("nudr-dr", "UDR")
+	if err != nil {
+		return nil, pd
+	}
 	idTranslationResultResp, res, err := clientAPI.QueryIdentityDataBySUPIOrGPSIDocumentApi.GetIdentityData(
-		context.Background(), gpsi, &getIdentityDataParamOpts)
+		ctx, gpsi, &getIdentityDataParamOpts)
 	if err != nil {
 		if res == nil {
 			logger.SdmLog.Errorf(err.Error())
@@ -255,9 +261,13 @@ func getSupiProcedure(supi string, plmnID string, dataSetNames []string, support
 	if containDataSetName(dataSetNames, string(models.DataSetName_AM)) {
 		var body models.AccessAndMobilitySubscriptionData
 		udm_context.Getself().CreateAccessMobilitySubsDataForUe(supi, body)
-		// TODO: [OAUTH2] should call GetTokenCtx("nudr-dr", "UDR")
+
+		ctx, pd, err := udm_consumer.GetTokenCtx("nudr-dr", "UDR")
+		if err != nil {
+			return nil, pd
+		}
 		amData, res, err := clientAPI.AccessAndMobilitySubscriptionDataDocumentApi.QueryAmData(
-			context.Background(), supi, plmnID, &queryAmDataParamOpts)
+			ctx, supi, plmnID, &queryAmDataParamOpts)
 		if err != nil {
 			if res == nil {
 				logger.SdmLog.Errorf(err.Error())
@@ -298,8 +308,12 @@ func getSupiProcedure(supi string, plmnID string, dataSetNames []string, support
 	if containDataSetName(dataSetNames, string(models.DataSetName_SMF_SEL)) {
 		var smfSelSubsbody models.SmfSelectionSubscriptionData
 		udm_context.Getself().CreateSmfSelectionSubsDataforUe(supi, smfSelSubsbody)
-		// TODO: [OAUTH2] should call GetTokenCtx("nudr-dr", "UDR")
-		smfSelData, res, err := clientAPI.SMFSelectionSubscriptionDataDocumentApi.QuerySmfSelectData(context.Background(),
+
+		ctx, pd, err := udm_consumer.GetTokenCtx("nudr-dr", "UDR")
+		if err != nil {
+			return nil, pd
+		}
+		smfSelData, res, err := clientAPI.SMFSelectionSubscriptionDataDocumentApi.QuerySmfSelectData(ctx,
 			supi, plmnID, &querySmfSelectDataParamOpts)
 		if err != nil {
 			if res == nil {
@@ -343,9 +357,13 @@ func getSupiProcedure(supi string, plmnID string, dataSetNames []string, support
 		var querySmfRegListParamOpts Nudr.QuerySmfRegListParamOpts
 		querySmfRegListParamOpts.SupportedFeatures = optional.NewString(supportedFeatures)
 		udm_context.Getself().CreateUeContextInSmfDataforUe(supi, UeContextInSmfbody)
-		// TODO: [OAUTH2] should call GetTokenCtx("nudr-dr", "UDR")
+
+		ctx, pd, err := udm_consumer.GetTokenCtx("nudr-dr", "UDR")
+		if err != nil {
+			return nil, pd
+		}
 		pdusess, res, err := clientAPI.SMFRegistrationsCollectionApi.QuerySmfRegList(
-			context.Background(), supi, &querySmfRegListParamOpts)
+			ctx, supi, &querySmfRegListParamOpts)
 		if err != nil {
 			if res == nil {
 				logger.SdmLog.Errorf(err.Error())
@@ -408,9 +426,13 @@ func getSupiProcedure(supi string, plmnID string, dataSetNames []string, support
 	// }
 
 	if containDataSetName(dataSetNames, string(models.DataSetName_SM)) {
-		// TODO: [OAUTH2] should call GetTokenCtx("nudr-dr", "UDR")
+		ctx, pd, err := udm_consumer.GetTokenCtx("nudr-dr", "UDR")
+		if err != nil {
+			return nil, pd
+		}
+
 		sessionManagementSubscriptionData, res, err := clientAPI.SessionManagementSubscriptionDataApi.
-			QuerySmData(context.Background(), supi, plmnID, &querySmDataParamOpts)
+			QuerySmData(ctx, supi, plmnID, &querySmDataParamOpts)
 		if err != nil {
 			if res == nil {
 				logger.SdmLog.Errorf(err.Error())
@@ -452,9 +474,13 @@ func getSupiProcedure(supi string, plmnID string, dataSetNames []string, support
 	if containDataSetName(dataSetNames, string(models.DataSetName_TRACE)) {
 		var TraceDatabody models.TraceData
 		udm_context.Getself().CreateTraceDataforUe(supi, TraceDatabody)
-		// TODO: [OAUTH2] should call GetTokenCtx("nudr-dr", "UDR")
+
+		ctx, pd, err := udm_consumer.GetTokenCtx("nudr-dr", "UDR")
+		if err != nil {
+			return nil, pd
+		}
 		traceData, res, err := clientAPI.TraceDataDocumentApi.QueryTraceData(
-			context.Background(), supi, plmnID, &queryTraceDataParamOpts)
+			ctx, supi, plmnID, &queryTraceDataParamOpts)
 		if err != nil {
 			if res == nil {
 				logger.SdmLog.Errorf(err.Error())
@@ -536,8 +562,11 @@ func getSharedDataProcedure(sharedDataIds []string, supportedFeatures string) (
 	var getSharedDataParamOpts Nudr.GetSharedDataParamOpts
 	getSharedDataParamOpts.SupportedFeatures = optional.NewString(supportedFeatures)
 
-	// TODO: [OAUTH2] should call GetTokenCtx("nudr-dr", "UDR")
-	sharedDataResp, res, err := clientAPI.RetrievalOfSharedDataApi.GetSharedData(context.Background(), sharedDataIds,
+	ctx, pd, err := udm_consumer.GetTokenCtx("nudr-dr", "UDR")
+	if err != nil {
+		return nil, pd
+	}
+	sharedDataResp, res, err := clientAPI.RetrievalOfSharedDataApi.GetSharedData(ctx, sharedDataIds,
 		&getSharedDataParamOpts)
 	if err != nil {
 		if res == nil {
@@ -621,9 +650,12 @@ func getSmDataProcedure(supi string, plmnID string, Dnn string, Snssai string, s
 	var querySmDataParamOpts Nudr.QuerySmDataParamOpts
 	querySmDataParamOpts.SingleNssai = optional.NewInterface(Snssai)
 
-	// TODO: [OAUTH2] should call GetTokenCtx("nudr-dr", "UDR")
+	ctx, pd, err := udm_consumer.GetTokenCtx("nudr-dr", "UDR")
+	if err != nil {
+		return nil, pd
+	}
 	sessionManagementSubscriptionDataResp, res, err := clientAPI.SessionManagementSubscriptionDataApi.
-		QuerySmData(context.Background(), supi, plmnID, &querySmDataParamOpts)
+		QuerySmData(ctx, supi, plmnID, &querySmDataParamOpts)
 	if err != nil {
 		if res == nil {
 			logger.SdmLog.Warnln(err)
@@ -732,9 +764,12 @@ func getNssaiProcedure(supi string, plmnID string, supportedFeatures string) (
 		return nil, openapi.ProblemDetailsSystemFailure(err.Error())
 	}
 
-	// TODO: [OAUTH2] should call GetTokenCtx("nudr-dr", "UDR")
+	ctx, pd, err := udm_consumer.GetTokenCtx("nudr-dr", "UDR")
+	if err != nil {
+		return nil, pd
+	}
 	accessAndMobilitySubscriptionDataResp, res, err := clientAPI.AccessAndMobilitySubscriptionDataDocumentApi.
-		QueryAmData(context.Background(), supi, plmnID, &queryAmDataParamOpts)
+		QueryAmData(ctx, supi, plmnID, &queryAmDataParamOpts)
 	if err != nil {
 		if res == nil {
 			logger.SdmLog.Warnln(err)
@@ -821,9 +856,12 @@ func getSmfSelectDataProcedure(supi string, plmnID string, supportedFeatures str
 
 	udm_context.Getself().CreateSmfSelectionSubsDataforUe(supi, body)
 
-	// TODO: [OAUTH2] should call GetTokenCtx("nudr-dr", "UDR")
+	ctx, pd, err := udm_consumer.GetTokenCtx("nudr-dr", "UDR")
+	if err != nil {
+		return nil, pd
+	}
 	smfSelectionSubscriptionDataResp, res, err := clientAPI.SMFSelectionSubscriptionDataDocumentApi.
-		QuerySmfSelectData(context.Background(), supi, plmnID, &querySmfSelectDataParamOpts)
+		QuerySmfSelectData(ctx, supi, plmnID, &querySmfSelectDataParamOpts)
 	if err != nil {
 		if res == nil {
 			logger.SdmLog.Warnln(err)
@@ -838,7 +876,7 @@ func getSmfSelectDataProcedure(supi string, plmnID string, supportedFeatures str
 			}
 			return nil, problemDetails
 		}
-		return
+		return nil, nil
 	}
 	defer func() {
 		if rspCloseErr := res.Body.Close(); rspCloseErr != nil {
@@ -891,9 +929,12 @@ func subscribeToSharedDataProcedure(sdmSubscription *models.SdmSubscription) (
 	cfg := Nudm_SubscriberDataManagement.NewConfiguration()
 	udmClientAPI := Nudm_SubscriberDataManagement.NewAPIClient(cfg)
 
-	// TODO: [OAUTH2] should call GetTokenCtx("nudm-sdm", "UDM")
+	ctx, pd, err := udm_consumer.GetTokenCtx("nudr-dr", "UDR")
+	if err != nil {
+		return nil, nil, pd
+	}
 	sdmSubscriptionResp, res, err := udmClientAPI.SubscriptionCreationForSharedDataApi.SubscribeToSharedData(
-		context.Background(), *sdmSubscription)
+		ctx, *sdmSubscription)
 	if err != nil {
 		if res == nil {
 			logger.SdmLog.Warnln(err)
@@ -968,9 +1009,13 @@ func subscribeProcedure(sdmSubscription *models.SdmSubscription, supi string) (
 	if err != nil {
 		return nil, nil, openapi.ProblemDetailsSystemFailure(err.Error())
 	}
-	// TODO: [OAUTH2] should call GetTokenCtx("nudr-dr", "UDR")
+
+	ctx, pd, err := udm_consumer.GetTokenCtx("nudr-dr", "UDR")
+	if err != nil {
+		return nil, nil, pd
+	}
 	sdmSubscriptionResp, res, err := clientAPI.SDMSubscriptionsCollectionApi.CreateSdmSubscriptions(
-		context.Background(), supi, *sdmSubscription)
+		ctx, supi, *sdmSubscription)
 	if err != nil {
 		if res == nil {
 			logger.SdmLog.Warnln(err)
@@ -1038,9 +1083,12 @@ func unsubscribeForSharedDataProcedure(subscriptionID string) *models.ProblemDet
 	cfg := Nudm_SubscriberDataManagement.NewConfiguration()
 	udmClientAPI := Nudm_SubscriberDataManagement.NewAPIClient(cfg)
 
-	// TODO: [OAUTH2] should call GetTokenCtx("nudm-sdm", "UDM")
+	ctx, pd, err := udm_consumer.GetTokenCtx("nudr-dr", "UDR")
+	if err != nil {
+		return pd
+	}
 	res, err := udmClientAPI.SubscriptionDeletionForSharedDataApi.UnsubscribeForSharedData(
-		context.Background(), subscriptionID)
+		ctx, subscriptionID)
 	if err != nil {
 		if res == nil {
 			logger.SdmLog.Warnln(err)
@@ -1099,8 +1147,11 @@ func unsubscribeProcedure(supi string, subscriptionID string) *models.ProblemDet
 		return openapi.ProblemDetailsSystemFailure(err.Error())
 	}
 
-	// TODO: [OAUTH2] should call GetTokenCtx("nudr-dr", "UDR")
-	res, err := clientAPI.SDMSubscriptionDocumentApi.RemovesdmSubscriptions(context.Background(), supi, subscriptionID)
+	ctx, pd, err := udm_consumer.GetTokenCtx("nudr-dr", "UDR")
+	if err != nil {
+		return pd
+	}
+	res, err := clientAPI.SDMSubscriptionDocumentApi.RemovesdmSubscriptions(ctx, supi, subscriptionID)
 	if err != nil {
 		if res == nil {
 			logger.SdmLog.Warnln(err)
@@ -1173,9 +1224,13 @@ func modifyProcedure(sdmSubsModification *models.SdmSubsModification, supi strin
 	body := Nudr.UpdatesdmsubscriptionsParamOpts{
 		SdmSubscription: optional.NewInterface(sdmSubscription),
 	}
-	// TODO: [OAUTH2] should call GetTokenCtx("nudr-dr", "UDR")
+
+	ctx, pd, err := udm_consumer.GetTokenCtx("nudr-dr", "UDR")
+	if err != nil {
+		return nil, pd
+	}
 	res, err := clientAPI.SDMSubscriptionDocumentApi.Updatesdmsubscriptions(
-		context.Background(), supi, subscriptionID, &body)
+		ctx, supi, subscriptionID, &body)
 	if err != nil {
 		if res == nil {
 			logger.SdmLog.Warnln(err)
@@ -1250,9 +1305,12 @@ func modifyForSharedDataProcedure(sdmSubsModification *models.SdmSubsModificatio
 		SdmSubscription: optional.NewInterface(sdmSubs),
 	}
 
-	// TODO: [OAUTH2] should call GetTokenCtx("nudr-dr", "UDR")
+	ctx, pd, err := udm_consumer.GetTokenCtx("nudr-dr", "UDR")
+	if err != nil {
+		return nil, pd
+	}
 	res, err := clientAPI.SDMSubscriptionDocumentApi.Updatesdmsubscriptions(
-		context.Background(), supi, subscriptionID, &body)
+		ctx, supi, subscriptionID, &body)
 	if err != nil {
 		if res == nil {
 			logger.SdmLog.Warnln(err)
@@ -1323,9 +1381,12 @@ func getTraceDataProcedure(supi string, plmnID string) (
 
 	udm_context.Getself().CreateTraceDataforUe(supi, body)
 
-	// TODO: [OAUTH2] should call GetTokenCtx("nudr-dr", "UDR")
+	ctx, pd, err := udm_consumer.GetTokenCtx("nudr-dr", "UDR")
+	if err != nil {
+		return nil, pd
+	}
 	traceDataRes, res, err := clientAPI.TraceDataDocumentApi.QueryTraceData(
-		context.Background(), supi, plmnID, &queryTraceDataParamOpts)
+		ctx, supi, plmnID, &queryTraceDataParamOpts)
 	if err != nil {
 		if res == nil {
 			logger.SdmLog.Warnln(err)
@@ -1408,9 +1469,12 @@ func getUeContextInSmfDataProcedure(supi string, supportedFeatures string) (
 	pduSessionMap := make(map[string]models.PduSession)
 	udm_context.Getself().CreateUeContextInSmfDataforUe(supi, body)
 
-	// TODO: [OAUTH2] should call GetTokenCtx("nudr-dr", "UDR")
+	ctx, pd, err := udm_consumer.GetTokenCtx("nudr-dr", "UDR")
+	if err != nil {
+		return nil, pd
+	}
 	pdusess, res, err := clientAPI.SMFRegistrationsCollectionApi.QuerySmfRegList(
-		context.Background(), supi, &querySmfRegListParamOpts)
+		ctx, supi, &querySmfRegListParamOpts)
 	if err != nil {
 		if res == nil {
 			logger.SdmLog.Infoln(err)
diff --git a/internal/sbi/producer/ue_context_management.go b/internal/sbi/producer/ue_context_management.go
index 540120d..54a4907 100644
--- a/internal/sbi/producer/ue_context_management.go
+++ b/internal/sbi/producer/ue_context_management.go
@@ -1,7 +1,6 @@
 package producer
 
 import (
-	"context"
 	"fmt"
 	"net/http"
 	"strconv"
@@ -15,6 +14,7 @@ import (
 	udm_context "github.com/free5gc/udm/internal/context"
 	"github.com/free5gc/udm/internal/logger"
 	"github.com/free5gc/udm/internal/sbi/consumer"
+	udm_consumer "github.com/free5gc/udm/internal/sbi/consumer"
 	"github.com/free5gc/udm/internal/sbi/producer/callback"
 	"github.com/free5gc/util/httpwrapper"
 )
@@ -110,9 +110,12 @@ func GetAmf3gppAccessProcedure(ueID string, supportedFeatures string) (
 		return nil, openapi.ProblemDetailsSystemFailure(err.Error())
 	}
 
-	// TODO: [OAUTH2] should call GetTokenCtx("nudr-dr", "UDR")
+	ctx, pd, err := udm_consumer.GetTokenCtx("nudr-dr", "UDR")
+	if err != nil {
+		return nil, pd
+	}
 	amf3GppAccessRegistration, resp, err := clientAPI.AMF3GPPAccessRegistrationDocumentApi.
-		QueryAmfContext3gpp(context.Background(), ueID, &queryAmfContext3gppParamOpts)
+		QueryAmfContext3gpp(ctx, ueID, &queryAmfContext3gppParamOpts)
 	if err != nil {
 		problemDetails = &models.ProblemDetails{
 			Status: int32(resp.StatusCode),
@@ -166,9 +169,12 @@ func GetAmfNon3gppAccessProcedure(queryAmfContextNon3gppParamOpts Nudr_DataRepos
 		return nil, openapi.ProblemDetailsSystemFailure(err.Error())
 	}
 
-	// TODO: [OAUTH2] should call GetTokenCtx("nudr-dr", "UDR")
+	ctx, pd, err := udm_consumer.GetTokenCtx("nudr-dr", "UDR")
+	if err != nil {
+		return nil, pd
+	}
 	amfNon3GppAccessRegistration, resp, err := clientAPI.AMFNon3GPPAccessRegistrationDocumentApi.
-		QueryAmfContextNon3gpp(context.Background(), ueID, &queryAmfContextNon3gppParamOpts)
+		QueryAmfContextNon3gpp(ctx, ueID, &queryAmfContextNon3gppParamOpts)
 	if err != nil {
 		problemDetails = &models.ProblemDetails{
 			Status: int32(resp.StatusCode),
@@ -235,8 +241,12 @@ func RegistrationAmf3gppAccessProcedure(registerRequest models.Amf3GppAccessRegi
 	var createAmfContext3gppParamOpts Nudr_DataRepository.CreateAmfContext3gppParamOpts
 	optInterface := optional.NewInterface(registerRequest)
 	createAmfContext3gppParamOpts.Amf3GppAccessRegistration = optInterface
-	// TODO: [OAUTH2] should call GetTokenCtx("nudr-dr", "UDR")
-	resp, err := clientAPI.AMF3GPPAccessRegistrationDocumentApi.CreateAmfContext3gpp(context.Background(),
+
+	ctx, pd, err := udm_consumer.GetTokenCtx("nudr-dr", "UDR")
+	if err != nil {
+		return nil, nil, pd
+	}
+	resp, err := clientAPI.AMF3GPPAccessRegistrationDocumentApi.CreateAmfContext3gpp(ctx,
 		ueID, &createAmfContext3gppParamOpts)
 	if err != nil {
 		logger.UecmLog.Errorln("CreateAmfContext3gpp error : ", err)
@@ -330,9 +340,13 @@ func RegisterAmfNon3gppAccessProcedure(registerRequest models.AmfNon3GppAccessRe
 	var createAmfContextNon3gppParamOpts Nudr_DataRepository.CreateAmfContextNon3gppParamOpts
 	optInterface := optional.NewInterface(registerRequest)
 	createAmfContextNon3gppParamOpts.AmfNon3GppAccessRegistration = optInterface
-	// TODO: [OAUTH2] should call GetTokenCtx("nudr-dr", "UDR")
+
+	ctx, pd, err := udm_consumer.GetTokenCtx("nudr-dr", "UDR")
+	if err != nil {
+		return nil, nil, pd
+	}
 	resp, err := clientAPI.AMFNon3GPPAccessRegistrationDocumentApi.CreateAmfContextNon3gpp(
-		context.Background(), ueID, &createAmfContextNon3gppParamOpts)
+		ctx, ueID, &createAmfContextNon3gppParamOpts)
 	if err != nil {
 		problemDetails = &models.ProblemDetails{
 			Status: int32(resp.StatusCode),
@@ -458,8 +472,11 @@ func UpdateAmf3gppAccessProcedure(request models.Amf3GppAccessRegistrationModifi
 		return openapi.ProblemDetailsSystemFailure(err.Error())
 	}
 
-	// TODO: [OAUTH2] should call GetTokenCtx("nudr-dr", "UDR")
-	resp, err := clientAPI.AMF3GPPAccessRegistrationDocumentApi.AmfContext3gpp(context.Background(), ueID,
+	ctx, pd, err := udm_consumer.GetTokenCtx("nudr-dr", "UDR")
+	if err != nil {
+		return pd
+	}
+	resp, err := clientAPI.AMF3GPPAccessRegistrationDocumentApi.AmfContext3gpp(ctx, ueID,
 		patchItemReqArray)
 	if err != nil {
 		problemDetails = &models.ProblemDetails{
@@ -530,6 +547,7 @@ func UpdateAmfNon3gppAccessProcedure(request models.AmfNon3GppAccessRegistration
 				Status: http.StatusForbidden,
 				Cause:  "INVALID_GUAMI",
 			}
+			return problemDetails
 		}
 
 		var patchItemTmp models.PatchItem
@@ -576,8 +594,11 @@ func UpdateAmfNon3gppAccessProcedure(request models.AmfNon3GppAccessRegistration
 		return openapi.ProblemDetailsSystemFailure(err.Error())
 	}
 
-	// TODO: [OAUTH2] should call GetTokenCtx("nudr-dr", "UDR")
-	resp, err := clientAPI.AMFNon3GPPAccessRegistrationDocumentApi.AmfContextNon3gpp(context.Background(),
+	ctx, pd, err := udm_consumer.GetTokenCtx("nudr-dr", "UDR")
+	if err != nil {
+		return pd
+	}
+	resp, err := clientAPI.AMFNon3GPPAccessRegistrationDocumentApi.AmfContextNon3gpp(ctx,
 		ueID, patchItemReqArray)
 	if err != nil {
 		problemDetails = &models.ProblemDetails{
@@ -621,8 +642,11 @@ func DeregistrationSmfRegistrationsProcedure(ueID string, pduSessionID string) (
 		return openapi.ProblemDetailsSystemFailure(err.Error())
 	}
 
-	// TODO: [OAUTH2] should call GetTokenCtx("nudr-dr", "UDR")
-	resp, err := clientAPI.SMFRegistrationDocumentApi.DeleteSmfContext(context.Background(), ueID, pduSessionID)
+	ctx, pd, err := udm_consumer.GetTokenCtx("nudr-dr", "UDR")
+	if err != nil {
+		return pd
+	}
+	resp, err := clientAPI.SMFRegistrationDocumentApi.DeleteSmfContext(ctx, ueID, pduSessionID)
 	if err != nil {
 		problemDetails = &models.ProblemDetails{
 			Status: int32(resp.StatusCode),
@@ -690,8 +714,11 @@ func RegistrationSmfRegistrationsProcedure(request *models.SmfRegistration, ueID
 		return nil, nil, openapi.ProblemDetailsSystemFailure(err.Error())
 	}
 
-	// TODO: [OAUTH2] should call GetTokenCtx("nudr-dr", "UDR")
-	resp, err := clientAPI.SMFRegistrationDocumentApi.CreateSmfContextNon3gpp(context.Background(), ueID,
+	ctx, pd, err := udm_consumer.GetTokenCtx("nudr-dr", "UDR")
+	if err != nil {
+		return nil, nil, pd
+	}
+	resp, err := clientAPI.SMFRegistrationDocumentApi.CreateSmfContextNon3gpp(ctx, ueID,
 		pduID32, &createSmfContextNon3gppParamOpts)
 	if err != nil {
 		problemDetails.Cause = err.(openapi.GenericOpenAPIError).Model().(models.ProblemDetails).Cause
diff --git a/internal/util/nf_authorization.go b/internal/util/nf_authorization.go
index 496e1ea..2b2460e 100644
--- a/internal/util/nf_authorization.go
+++ b/internal/util/nf_authorization.go
@@ -3,25 +3,21 @@ package util
 import (
 	"net/http"
 
-	"github.com/free5gc/openapi"
-	"github.com/free5gc/udm/pkg/factory"
 	"github.com/gin-gonic/gin"
+
+	"github.com/free5gc/openapi/oauth"
+	"github.com/free5gc/udm/pkg/factory"
 )
 
 // This function would check the OAuth2 token, and the requestNF is in ServiceAllowNfType
 func AuthorizationCheck(c *gin.Context, serviceName string) error {
 	if factory.UdmConfig.GetOAuth() {
-		oauth_err := openapi.VerifyOAuth(c.Request.Header.Get("Authorization"), serviceName,
+		oauth_err := oauth.VerifyOAuth(c.Request.Header.Get("Authorization"), serviceName,
 			factory.UdmConfig.GetNrfCertPemPath())
 		if oauth_err != nil {
 			c.JSON(http.StatusUnauthorized, gin.H{"error": oauth_err.Error()})
 			return oauth_err
 		}
 	}
-	allowNf_err := factory.UdmConfig.VerifyServiceAllowType(c.Request.Header.Get("requestNF"), serviceName)
-	if allowNf_err != nil {
-		c.JSON(http.StatusUnauthorized, gin.H{"error": allowNf_err.Error()})
-		return allowNf_err
-	}
 	return nil
 }
diff --git a/pkg/factory/config.go b/pkg/factory/config.go
index e7ab25c..56dc270 100644
--- a/pkg/factory/config.go
+++ b/pkg/factory/config.go
@@ -129,31 +129,6 @@ func (c *Configuration) validate() (bool, error) {
 	return result, err
 }
 
-func (c *Config) VerifyServiceAllowType(nfTypeName string, serviceName string) error {
-	c.RLock()
-	defer c.RUnlock()
-
-	serviceFound := false
-	for _, service := range c.Configuration.ServiceList {
-		if service.ServiceName == serviceName {
-			serviceFound = true
-			for _, allowNf := range service.AllowedNfTypes {
-				if nfTypeName == "All" {
-					return nil
-				}
-				if nfTypeName == allowNf {
-					return nil
-				}
-			}
-			break
-		}
-	}
-	if serviceFound {
-		return fmt.Errorf("Not allow NF Type: %+v", nfTypeName)
-	}
-	return fmt.Errorf("ServiceName not found: %+v", serviceName)
-}
-
 func (c *Config) GetNrfCertPemPath() string {
 	c.RLock()
 	defer c.RUnlock()