diff --git a/go.mod b/go.mod index 6fb56ef..64a3100 100644 --- a/go.mod +++ b/go.mod @@ -5,11 +5,12 @@ go 1.17 require ( github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d github.com/evanphx/json-patch v0.5.2 - github.com/free5gc/openapi v1.0.7-0.20231216094313-e15a4ff046f6 + github.com/free5gc/openapi v1.0.7-0.20240117084712-52ad99299693 github.com/free5gc/util v1.0.5-0.20231205080047-308f623d6808 github.com/gin-gonic/gin v1.9.1 github.com/google/uuid v1.3.0 github.com/mitchellh/mapstructure v1.4.3 + github.com/pkg/errors v0.9.1 github.com/sirupsen/logrus v1.8.1 github.com/stretchr/testify v1.8.3 github.com/urfave/cli v1.22.5 @@ -43,7 +44,6 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/pelletier/go-toml/v2 v2.0.8 // indirect - github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/tim-ywliu/nested-logrus-formatter v1.3.2 // indirect diff --git a/go.sum b/go.sum index 71745a0..8299c8b 100644 --- a/go.sum +++ b/go.sum @@ -61,8 +61,8 @@ github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1m github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/evanphx/json-patch v0.5.2 h1:xVCHIVMUu1wtM/VkR9jVZ45N3FhZfYMMYGorLCR8P3k= github.com/evanphx/json-patch v0.5.2/go.mod h1:ZWS5hhDbVDyob71nXKNL0+PWn6ToqBHMikGIFbs31qQ= -github.com/free5gc/openapi v1.0.7-0.20231216094313-e15a4ff046f6 h1:8P/wOkTAQMgZJe9pUUNSTE5PWeAdlMrsU9kLsI+VAVE= -github.com/free5gc/openapi v1.0.7-0.20231216094313-e15a4ff046f6/go.mod h1:qv9KqEucoZSeENPRFGxfTe+33ZWYyiYFx1Rj+H0DoWA= +github.com/free5gc/openapi v1.0.7-0.20240117084712-52ad99299693 h1:gFyYBsErQAkx4OVHXYqjO0efO9gPWydQavQcjU0CkHY= +github.com/free5gc/openapi v1.0.7-0.20240117084712-52ad99299693/go.mod h1:qv9KqEucoZSeENPRFGxfTe+33ZWYyiYFx1Rj+H0DoWA= github.com/free5gc/util v1.0.5-0.20231205080047-308f623d6808 h1:8/IoWEgcO2DLlLCqbsxwduD7CzXdKe/BFJU2tcAqnxo= github.com/free5gc/util v1.0.5-0.20231205080047-308f623d6808/go.mod h1:d+79g84a3YHhzvjJ2IhurrBOavOA8xWIQ/GCywPXqQk= github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU= diff --git a/internal/context/context.go b/internal/context/context.go index 3b1763b..9491997 100644 --- a/internal/context/context.go +++ b/internal/context/context.go @@ -76,6 +76,12 @@ type EeSubscriptionCollection struct { AmfSubscriptionInfos []models.AmfSubscriptionInfo } +type NFContext interface { + AuthorizationCheck(token string, serviceName models.ServiceName) error +} + +var _ NFContext = &UDRContext{} + // Reset UDR Context func (context *UDRContext) Reset() { context.UESubsCollection.Range(func(key, value interface{}) bool { @@ -177,23 +183,22 @@ func NewInfluenceDataSubscriptionId() string { return fmt.Sprintf("%08x", GetSelf().InfluenceDataSubscriptionIDGenerator.Uint32()) } -func (c *UDRContext) GetTokenCtx(scope, targetNF string) ( +func (c *UDRContext) GetTokenCtx(serviceName models.ServiceName, targetNF models.NfType) ( context.Context, *models.ProblemDetails, error, ) { if !c.OAuth2Required { return context.TODO(), nil, nil } - return oauth.GetTokenCtx(models.NfType_UDR, - c.NfId, c.NrfUri, scope, targetNF) + return oauth.GetTokenCtx(models.NfType_UDR, targetNF, + c.NfId, c.NrfUri, string(serviceName)) } -func (context *UDRContext) AuthorizationCheck(token, serviceName string) error { - if !context.OAuth2Required { +func (c *UDRContext) AuthorizationCheck(token string, serviceName models.ServiceName) error { + if !c.OAuth2Required { + logger.UtilLog.Debugf("UDRContext::AuthorizationCheck: OAuth2 not required\n") return nil } - err := oauth.VerifyOAuth(token, serviceName, context.NrfCertPem) - if err != nil { - return err - } - return nil + + logger.UtilLog.Debugf("UDRContext::AuthorizationCheck: token[%s] serviceName[%s]\n", token, serviceName) + return oauth.VerifyOAuth(token, string(serviceName), c.NrfCertPem) } diff --git a/internal/sbi/consumer/nf_discovery.go b/internal/sbi/consumer/nf_discovery.go index 6c26e88..a9388dd 100644 --- a/internal/sbi/consumer/nf_discovery.go +++ b/internal/sbi/consumer/nf_discovery.go @@ -18,7 +18,7 @@ func SendSearchNFInstances(nrfUri string, targetNfType, requestNfType models.NfT configuration.SetBasePath(nrfUri) client := Nnrf_NFDiscovery.NewAPIClient(configuration) - ctx, _, err := udr_context.GetSelf().GetTokenCtx("nnrf-disc", "NRF") + ctx, _, err := udr_context.GetSelf().GetTokenCtx(models.ServiceName_NNRF_DISC, models.NfType_NRF) if err != nil { return nil, err } diff --git a/internal/sbi/consumer/nf_managemant.go b/internal/sbi/consumer/nf_managemant.go index 71c3352..5aeee9b 100644 --- a/internal/sbi/consumer/nf_managemant.go +++ b/internal/sbi/consumer/nf_managemant.go @@ -1,7 +1,6 @@ package consumer import ( - "context" "fmt" "net/http" "strings" @@ -72,8 +71,13 @@ func SendRegisterNFInstance(nrfUri, nfInstanceId string, profile models.NfProfil var resouceNrfUri string var retrieveNfInstanceId string + ctx, _, err := udr_context.GetSelf().GetTokenCtx(models.ServiceName_NNRF_NFM, models.NfType_NRF) + if err != nil { + return "", "", err + } + for { - nf, res, err := client.NFInstanceIDDocumentApi.RegisterNFInstance(context.TODO(), nfInstanceId, profile) + nf, res, err := client.NFInstanceIDDocumentApi.RegisterNFInstance(ctx, nfInstanceId, profile) if err != nil || res == nil { // TODO : add log fmt.Println(fmt.Errorf("UDR register to NRF Error[%s]", err.Error())) @@ -119,7 +123,7 @@ func SendRegisterNFInstance(nrfUri, nfInstanceId string, profile models.NfProfil func SendDeregisterNFInstance() (problemDetails *models.ProblemDetails, err error) { logger.ConsumerLog.Infof("Send Deregister NFInstance") - ctx, pd, err := udr_context.GetSelf().GetTokenCtx("nnrf-nfm", "NRF") + ctx, pd, err := udr_context.GetSelf().GetTokenCtx(models.ServiceName_NNRF_NFM, models.NfType_NRF) if err != nil { return pd, err } diff --git a/internal/sbi/datarepository/api_access_and_mobility_subscription_data_document.go b/internal/sbi/datarepository/api_access_and_mobility_subscription_data_document.go index eac4cf4..243bad7 100644 --- a/internal/sbi/datarepository/api_access_and_mobility_subscription_data_document.go +++ b/internal/sbi/datarepository/api_access_and_mobility_subscription_data_document.go @@ -23,12 +23,6 @@ import ( // HTTPQueryAmData - Retrieves the access and mobility subscription data of a UE func HTTPQueryAmData(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - req := httpwrapper.NewRequest(c.Request, nil) req.Params["ueId"] = c.Params.ByName("ueId") req.Params["servingPlmnId"] = c.Params.ByName("servingPlmnId") diff --git a/internal/sbi/datarepository/api_amf3_gpp_access_registration_document.go b/internal/sbi/datarepository/api_amf3_gpp_access_registration_document.go index 368d294..29ce877 100644 --- a/internal/sbi/datarepository/api_amf3_gpp_access_registration_document.go +++ b/internal/sbi/datarepository/api_amf3_gpp_access_registration_document.go @@ -23,12 +23,6 @@ import ( // HTTPAmfContext3gpp - To modify the AMF context data of a UE using 3gpp access in the UDR func HTTPAmfContext3gpp(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - var patchItemArray []models.PatchItem requestBody, err := c.GetRawData() @@ -78,12 +72,6 @@ func HTTPAmfContext3gpp(c *gin.Context) { // HTTPCreateAmfContext3gpp - To store the AMF context data of a UE using 3gpp access in the UDR func HTTPCreateAmfContext3gpp(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - var amf3GppAccessRegistration models.Amf3GppAccessRegistration requestBody, err := c.GetRawData() @@ -133,12 +121,6 @@ func HTTPCreateAmfContext3gpp(c *gin.Context) { // HTTPQueryAmfContext3gpp - Retrieves the AMF context data of a UE using 3gpp access func HTTPQueryAmfContext3gpp(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - req := httpwrapper.NewRequest(c.Request, nil) req.Params["ueId"] = c.Params.ByName("ueId") diff --git a/internal/sbi/datarepository/api_amf_non3_gpp_access_registration_document.go b/internal/sbi/datarepository/api_amf_non3_gpp_access_registration_document.go index 12c2326..38d60c6 100644 --- a/internal/sbi/datarepository/api_amf_non3_gpp_access_registration_document.go +++ b/internal/sbi/datarepository/api_amf_non3_gpp_access_registration_document.go @@ -23,12 +23,6 @@ import ( // HTTPAmfContextNon3gpp - To modify the AMF context data of a UE using non 3gpp access in the UDR func HTTPAmfContextNon3gpp(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - var patchItemArray []models.PatchItem requestBody, err := c.GetRawData() @@ -78,12 +72,6 @@ func HTTPAmfContextNon3gpp(c *gin.Context) { // HTTPCreateAmfContextNon3gpp - To store the AMF context data of a UE using non-3gpp access in the UDR func HTTPCreateAmfContextNon3gpp(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - var amfNon3GppAccessRegistration models.AmfNon3GppAccessRegistration requestBody, err := c.GetRawData() @@ -133,12 +121,6 @@ func HTTPCreateAmfContextNon3gpp(c *gin.Context) { // HTTPQueryAmfContextNon3gpp - Retrieves the AMF context data of a UE using non-3gpp access func HTTPQueryAmfContextNon3gpp(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - req := httpwrapper.NewRequest(c.Request, nil) req.Params["ueId"] = c.Params.ByName("ueId") diff --git a/internal/sbi/datarepository/api_amf_subscription_info_document.go b/internal/sbi/datarepository/api_amf_subscription_info_document.go index e5933c9..4cf986e 100644 --- a/internal/sbi/datarepository/api_amf_subscription_info_document.go +++ b/internal/sbi/datarepository/api_amf_subscription_info_document.go @@ -23,12 +23,6 @@ import ( // HTTPModifyAmfSubscriptionInfo - modify the AMF Subscription Info func HTTPModifyAmfSubscriptionInfo(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - var patchItemArray []models.PatchItem requestBody, err := c.GetRawData() diff --git a/internal/sbi/datarepository/api_authentication_data_document.go b/internal/sbi/datarepository/api_authentication_data_document.go index 04c2a2f..4fca7b1 100644 --- a/internal/sbi/datarepository/api_authentication_data_document.go +++ b/internal/sbi/datarepository/api_authentication_data_document.go @@ -23,12 +23,6 @@ import ( // HTTPModifyAuthentication - modify the authentication subscription data of a UE func HTTPModifyAuthentication(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - var patchItemArray []models.PatchItem requestBody, err := c.GetRawData() @@ -78,12 +72,6 @@ func HTTPModifyAuthentication(c *gin.Context) { // HTTPQueryAuthSubsData - Retrieves the authentication subscription data of a UE func HTTPQueryAuthSubsData(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - req := httpwrapper.NewRequest(c.Request, nil) req.Params["ueId"] = c.Params.ByName("ueId") diff --git a/internal/sbi/datarepository/api_authentication_so_r_document.go b/internal/sbi/datarepository/api_authentication_so_r_document.go index 0d771e8..2467484 100644 --- a/internal/sbi/datarepository/api_authentication_so_r_document.go +++ b/internal/sbi/datarepository/api_authentication_so_r_document.go @@ -23,12 +23,6 @@ import ( // HTTPCreateAuthenticationSoR - To store the SoR acknowledgement information of a UE func HTTPCreateAuthenticationSoR(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - var sorData models.SorData requestBody, err := c.GetRawData() @@ -78,12 +72,6 @@ func HTTPCreateAuthenticationSoR(c *gin.Context) { // HTTPQueryAuthSoR - Retrieves the SoR acknowledgement information of a UE func HTTPQueryAuthSoR(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - req := httpwrapper.NewRequest(c.Request, nil) req.Params["ueId"] = c.Params.ByName("ueId") diff --git a/internal/sbi/datarepository/api_authentication_status_document.go b/internal/sbi/datarepository/api_authentication_status_document.go index c15fc69..53d708e 100644 --- a/internal/sbi/datarepository/api_authentication_status_document.go +++ b/internal/sbi/datarepository/api_authentication_status_document.go @@ -23,12 +23,6 @@ import ( // HTTPCreateAuthenticationStatus - To store the Authentication Status data of a UE func HTTPCreateAuthenticationStatus(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - var authEvent models.AuthEvent requestBody, err := c.GetRawData() @@ -78,12 +72,6 @@ func HTTPCreateAuthenticationStatus(c *gin.Context) { // HTTPQueryAuthenticationStatus - Retrieves the Authentication Status of a UE func HTTPQueryAuthenticationStatus(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - req := httpwrapper.NewRequest(c.Request, nil) req.Params["ueId"] = c.Params.ByName("ueId") diff --git a/internal/sbi/datarepository/api_default.go b/internal/sbi/datarepository/api_default.go index a536667..a187d67 100644 --- a/internal/sbi/datarepository/api_default.go +++ b/internal/sbi/datarepository/api_default.go @@ -58,36 +58,18 @@ func getDataFromRequestBody(c *gin.Context, data interface{}) error { // HTTPApplicationDataPfdsAppIdDelete - func HTTPApplicationDataPfdsAppIdDelete(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - rsp := producer.HandleApplicationDataPfdsAppIdDelete(c.Params.ByName("appId")) sendResponse(c, rsp) } // HTTPApplicationDataPfdsAppIdGet - func HTTPApplicationDataPfdsAppIdGet(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - rsp := producer.HandleApplicationDataPfdsAppIdGet(c.Params.ByName("appId")) sendResponse(c, rsp) } // HTTPApplicationDataPfdsAppIdPut - func HTTPApplicationDataPfdsAppIdPut(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - var pfdDataforApp models.PfdDataForApp if err := getDataFromRequestBody(c, &pfdDataforApp); err != nil { @@ -101,12 +83,6 @@ func HTTPApplicationDataPfdsAppIdPut(c *gin.Context) { // HTTPApplicationDataPfdsGet - func HTTPApplicationDataPfdsGet(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - query := c.Request.URL.Query() rsp := producer.HandleApplicationDataPfdsGet(query["appId"]) sendResponse(c, rsp) @@ -129,12 +105,6 @@ func HTTPExposureDataSubsToNotifySubIdPut(c *gin.Context) { // HTTPPolicyDataBdtDataBdtReferenceIdDelete - func HTTPPolicyDataBdtDataBdtReferenceIdDelete(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - req := httpwrapper.NewRequest(c.Request, nil) req.Params["bdtReferenceId"] = c.Params.ByName("bdtReferenceId") @@ -145,12 +115,6 @@ func HTTPPolicyDataBdtDataBdtReferenceIdDelete(c *gin.Context) { // HTTPPolicyDataBdtDataBdtReferenceIdGet - func HTTPPolicyDataBdtDataBdtReferenceIdGet(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - req := httpwrapper.NewRequest(c.Request, nil) req.Params["bdtReferenceId"] = c.Params.ByName("bdtReferenceId") @@ -161,12 +125,6 @@ func HTTPPolicyDataBdtDataBdtReferenceIdGet(c *gin.Context) { // HTTPPolicyDataBdtDataBdtReferenceIdPut - func HTTPPolicyDataBdtDataBdtReferenceIdPut(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - var bdtData models.BdtData if err := getDataFromRequestBody(c, &bdtData); err != nil { @@ -183,12 +141,6 @@ func HTTPPolicyDataBdtDataBdtReferenceIdPut(c *gin.Context) { // HTTPPolicyDataBdtDataGet - func HTTPPolicyDataBdtDataGet(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - req := httpwrapper.NewRequest(c.Request, nil) rsp := producer.HandlePolicyDataBdtDataGet(req) @@ -198,12 +150,6 @@ func HTTPPolicyDataBdtDataGet(c *gin.Context) { // HTTPPolicyDataPlmnsPlmnIdUePolicySetGet - func HTTPPolicyDataPlmnsPlmnIdUePolicySetGet(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - req := httpwrapper.NewRequest(c.Request, nil) req.Params["plmnId"] = c.Params.ByName("plmnId") @@ -214,12 +160,6 @@ func HTTPPolicyDataPlmnsPlmnIdUePolicySetGet(c *gin.Context) { // HTTPPolicyDataSponsorConnectivityDataSponsorIdGet - func HTTPPolicyDataSponsorConnectivityDataSponsorIdGet(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - req := httpwrapper.NewRequest(c.Request, nil) req.Params["sponsorId"] = c.Params.ByName("sponsorId") @@ -230,12 +170,6 @@ func HTTPPolicyDataSponsorConnectivityDataSponsorIdGet(c *gin.Context) { // HTTPPolicyDataSubsToNotifyPost - func HTTPPolicyDataSubsToNotifyPost(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - var policyDataSubscription models.PolicyDataSubscription if err := getDataFromRequestBody(c, &policyDataSubscription); err != nil { @@ -256,12 +190,6 @@ func HTTPPolicyDataSubsToNotifyPost(c *gin.Context) { // HTTPPolicyDataSubsToNotifySubsIdDelete - func HTTPPolicyDataSubsToNotifySubsIdDelete(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - req := httpwrapper.NewRequest(c.Request, nil) req.Params["subsId"] = c.Params.ByName("subsId") @@ -272,12 +200,6 @@ func HTTPPolicyDataSubsToNotifySubsIdDelete(c *gin.Context) { // HTTPPolicyDataSubsToNotifySubsIdPut - func HTTPPolicyDataSubsToNotifySubsIdPut(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - var policyDataSubscription models.PolicyDataSubscription if err := getDataFromRequestBody(c, &policyDataSubscription); err != nil { @@ -294,12 +216,6 @@ func HTTPPolicyDataSubsToNotifySubsIdPut(c *gin.Context) { // HTTPPolicyDataUesUeIdAmDataGet - func HTTPPolicyDataUesUeIdAmDataGet(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - req := httpwrapper.NewRequest(c.Request, nil) req.Params["ueId"] = c.Params.ByName("ueId") @@ -310,12 +226,6 @@ func HTTPPolicyDataUesUeIdAmDataGet(c *gin.Context) { // HTTPPolicyDataUesUeIdOperatorSpecificDataGet - func HTTPPolicyDataUesUeIdOperatorSpecificDataGet(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - req := httpwrapper.NewRequest(c.Request, nil) req.Params["ueId"] = c.Params.ByName("ueId") @@ -326,12 +236,6 @@ func HTTPPolicyDataUesUeIdOperatorSpecificDataGet(c *gin.Context) { // HTTPPolicyDataUesUeIdOperatorSpecificDataPatch - Need to be fixed func HTTPPolicyDataUesUeIdOperatorSpecificDataPatch(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - var patchItemArray []models.PatchItem if err := getDataFromRequestBody(c, &patchItemArray); err != nil { @@ -348,12 +252,6 @@ func HTTPPolicyDataUesUeIdOperatorSpecificDataPatch(c *gin.Context) { // HTTPPolicyDataUesUeIdOperatorSpecificDataPut - func HTTPPolicyDataUesUeIdOperatorSpecificDataPut(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - var operatorSpecificDataContainerMap map[string]models.OperatorSpecificDataContainer if err := getDataFromRequestBody(c, &operatorSpecificDataContainerMap); err != nil { @@ -370,12 +268,6 @@ func HTTPPolicyDataUesUeIdOperatorSpecificDataPut(c *gin.Context) { // HTTPPolicyDataUesUeIdSmDataGet - func HTTPPolicyDataUesUeIdSmDataGet(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - req := httpwrapper.NewRequest(c.Request, nil) req.Params["ueId"] = c.Params.ByName("ueId") @@ -386,12 +278,6 @@ func HTTPPolicyDataUesUeIdSmDataGet(c *gin.Context) { // HTTPPolicyDataUesUeIdSmDataPatch - Need to be fixed func HTTPPolicyDataUesUeIdSmDataPatch(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - var usageMonDataMap map[string]models.UsageMonData if err := getDataFromRequestBody(c, &usageMonDataMap); err != nil { @@ -408,12 +294,6 @@ func HTTPPolicyDataUesUeIdSmDataPatch(c *gin.Context) { // HTTPPolicyDataUesUeIdSmDataUsageMonIdDelete - func HTTPPolicyDataUesUeIdSmDataUsageMonIdDelete(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - req := httpwrapper.NewRequest(c.Request, nil) req.Params["ueId"] = c.Params.ByName("ueId") req.Params["usageMonId"] = c.Params.ByName("usageMonId") @@ -425,12 +305,6 @@ func HTTPPolicyDataUesUeIdSmDataUsageMonIdDelete(c *gin.Context) { // HTTPPolicyDataUesUeIdSmDataUsageMonIdGet - func HTTPPolicyDataUesUeIdSmDataUsageMonIdGet(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - req := httpwrapper.NewRequest(c.Request, nil) req.Params["ueId"] = c.Params.ByName("ueId") req.Params["usageMonId"] = c.Params.ByName("usageMonId") @@ -442,12 +316,6 @@ func HTTPPolicyDataUesUeIdSmDataUsageMonIdGet(c *gin.Context) { // HTTPPolicyDataUesUeIdSmDataUsageMonIdPut - func HTTPPolicyDataUesUeIdSmDataUsageMonIdPut(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - var usageMonData models.UsageMonData if err := getDataFromRequestBody(c, &usageMonData); err != nil { @@ -465,12 +333,6 @@ func HTTPPolicyDataUesUeIdSmDataUsageMonIdPut(c *gin.Context) { // HTTPPolicyDataUesUeIdUePolicySetGet - func HTTPPolicyDataUesUeIdUePolicySetGet(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - req := httpwrapper.NewRequest(c.Request, nil) req.Params["ueId"] = c.Params.ByName("ueId") @@ -481,12 +343,6 @@ func HTTPPolicyDataUesUeIdUePolicySetGet(c *gin.Context) { // HTTPPolicyDataUesUeIdUePolicySetPatch - func HTTPPolicyDataUesUeIdUePolicySetPatch(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - var uePolicySet models.UePolicySet if err := getDataFromRequestBody(c, &uePolicySet); err != nil { @@ -503,12 +359,6 @@ func HTTPPolicyDataUesUeIdUePolicySetPatch(c *gin.Context) { // HTTPPolicyDataUesUeIdUePolicySetPut - func HTTPPolicyDataUesUeIdUePolicySetPut(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - var uePolicySet models.UePolicySet if err := getDataFromRequestBody(c, &uePolicySet); err != nil { diff --git a/internal/sbi/datarepository/api_event_amf_subscription_info_document.go b/internal/sbi/datarepository/api_event_amf_subscription_info_document.go index cafc881..75c1d2f 100644 --- a/internal/sbi/datarepository/api_event_amf_subscription_info_document.go +++ b/internal/sbi/datarepository/api_event_amf_subscription_info_document.go @@ -23,12 +23,6 @@ import ( // HTTPCreateAMFSubscriptions - Creates AMF Subscription Info for an eeSubscription func HTTPCreateAMFSubscriptions(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - var amfSubscriptionInfoArray []models.AmfSubscriptionInfo requestBody, err := c.GetRawData() @@ -79,12 +73,6 @@ func HTTPCreateAMFSubscriptions(c *gin.Context) { // HTTPRemoveAmfSubscriptionsInfo - Deletes AMF Subscription Info for an eeSubscription func HTTPRemoveAmfSubscriptionsInfo(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - req := httpwrapper.NewRequest(c.Request, nil) req.Params["ueId"] = c.Params.ByName("ueId") req.Params["subsId"] = c.Params.ByName("subsId") diff --git a/internal/sbi/datarepository/api_individual_influence_data_subscription_document.go b/internal/sbi/datarepository/api_individual_influence_data_subscription_document.go index 2e25950..4235d61 100644 --- a/internal/sbi/datarepository/api_individual_influence_data_subscription_document.go +++ b/internal/sbi/datarepository/api_individual_influence_data_subscription_document.go @@ -23,12 +23,6 @@ import ( // HTTPApplicationDataInfluenceDataSubsToNotifySubscriptionIdDelete - func HTTPApplicationDataInfluenceDataSubsToNotifySubscriptionIdDelete(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - // New HTTP request req := httpwrapper.NewRequest(c.Request, nil) req.Params["subscriptionId"] = c.Params.ByName("subscriptionId") @@ -57,12 +51,6 @@ func HTTPApplicationDataInfluenceDataSubsToNotifySubscriptionIdDelete(c *gin.Con // HTTPApplicationDataInfluenceDataSubsToNotifySubscriptionIdGet - func HTTPApplicationDataInfluenceDataSubsToNotifySubscriptionIdGet(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - // New HTTP request req := httpwrapper.NewRequest(c.Request, nil) req.Params["subscriptionId"] = c.Params.ByName("subscriptionId") @@ -87,12 +75,6 @@ func HTTPApplicationDataInfluenceDataSubsToNotifySubscriptionIdGet(c *gin.Contex // HTTPApplicationDataInfluenceDataSubsToNotifySubscriptionIdPut - func HTTPApplicationDataInfluenceDataSubsToNotifySubscriptionIdPut(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - // Get HTTP request body requestBody, err := c.GetRawData() if err != nil { diff --git a/internal/sbi/datarepository/api_influence_data.go b/internal/sbi/datarepository/api_influence_data.go index 40e2b66..bc27e10 100644 --- a/internal/sbi/datarepository/api_influence_data.go +++ b/internal/sbi/datarepository/api_influence_data.go @@ -23,12 +23,6 @@ import ( // HTTPApplicationDataInfluenceDataGet - func HTTPApplicationDataInfluenceDataGet(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - req := httpwrapper.NewRequest(c.Request, nil) req.Query["influence-Ids"] = c.QueryArray("influence-Ids") req.Query["dnns"] = c.QueryArray("dnns") diff --git a/internal/sbi/datarepository/api_provisioned_data_document.go b/internal/sbi/datarepository/api_provisioned_data_document.go index 19f666a..881569b 100644 --- a/internal/sbi/datarepository/api_provisioned_data_document.go +++ b/internal/sbi/datarepository/api_provisioned_data_document.go @@ -23,12 +23,6 @@ import ( // HTTPQueryProvisionedData - Retrieve multiple provisioned data sets of a UE func HTTPQueryProvisionedData(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - req := httpwrapper.NewRequest(c.Request, nil) req.Params["ueId"] = c.Params.ByName("ueId") req.Params["servingPlmnId"] = c.Params.ByName("servingPlmnId") diff --git a/internal/sbi/datarepository/api_query_amf_subscription_info_document.go b/internal/sbi/datarepository/api_query_amf_subscription_info_document.go index d03b854..cd81f4c 100644 --- a/internal/sbi/datarepository/api_query_amf_subscription_info_document.go +++ b/internal/sbi/datarepository/api_query_amf_subscription_info_document.go @@ -23,12 +23,6 @@ import ( // HTTPGetAmfSubscriptionInfo - Retrieve AMF subscription Info func HTTPGetAmfSubscriptionInfo(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - req := httpwrapper.NewRequest(c.Request, nil) req.Params["ueId"] = c.Params.ByName("ueId") req.Params["subsId"] = c.Params.ByName("subsId") diff --git a/internal/sbi/datarepository/api_sdm_subscription_document.go b/internal/sbi/datarepository/api_sdm_subscription_document.go index 147db1e..26347c6 100644 --- a/internal/sbi/datarepository/api_sdm_subscription_document.go +++ b/internal/sbi/datarepository/api_sdm_subscription_document.go @@ -23,12 +23,6 @@ import ( // HTTPRemovesdmSubscriptions - Deletes a sdmsubscriptions func HTTPRemovesdmSubscriptions(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - req := httpwrapper.NewRequest(c.Request, nil) req.Params["ueId"] = c.Params.ByName("ueId") req.Params["subsId"] = c.Params.ByName("subsId") @@ -51,12 +45,6 @@ func HTTPRemovesdmSubscriptions(c *gin.Context) { // HTTPUpdatesdmsubscriptions - Stores an individual sdm subscriptions of a UE func HTTPUpdatesdmsubscriptions(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - var sdmSubscription models.SdmSubscription requestBody, err := c.GetRawData() diff --git a/internal/sbi/datarepository/api_sdm_subscriptions_collection.go b/internal/sbi/datarepository/api_sdm_subscriptions_collection.go index d6fa03b..3196fe2 100644 --- a/internal/sbi/datarepository/api_sdm_subscriptions_collection.go +++ b/internal/sbi/datarepository/api_sdm_subscriptions_collection.go @@ -23,12 +23,6 @@ import ( // HTTPCreateSdmSubscriptions - Create individual sdm subscription func HTTPCreateSdmSubscriptions(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - var sdmSubscription models.SdmSubscription requestBody, err := c.GetRawData() @@ -81,12 +75,6 @@ func HTTPCreateSdmSubscriptions(c *gin.Context) { // HTTPQuerysdmsubscriptions - Retrieves the sdm subscriptions of a UE func HTTPQuerysdmsubscriptions(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - req := httpwrapper.NewRequest(c.Request, nil) req.Params["ueId"] = c.Params.ByName("ueId") diff --git a/internal/sbi/datarepository/api_session_management_subscription_data.go b/internal/sbi/datarepository/api_session_management_subscription_data.go index 5bef2a7..624bfdf 100644 --- a/internal/sbi/datarepository/api_session_management_subscription_data.go +++ b/internal/sbi/datarepository/api_session_management_subscription_data.go @@ -23,12 +23,6 @@ import ( // HTTPQuerySmData - Retrieves the Session Management subscription data of a UE func HTTPQuerySmData(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - req := httpwrapper.NewRequest(c.Request, nil) req.Params["ueId"] = c.Params.ByName("ueId") req.Params["servingPlmnId"] = c.Params.ByName("servingPlmnId") diff --git a/internal/sbi/datarepository/api_smf_registration_document.go b/internal/sbi/datarepository/api_smf_registration_document.go index 7187986..5bb269d 100644 --- a/internal/sbi/datarepository/api_smf_registration_document.go +++ b/internal/sbi/datarepository/api_smf_registration_document.go @@ -23,12 +23,6 @@ import ( // HTTPCreateSmfContextNon3gpp - To create an individual SMF context data of a UE in the UDR func HTTPCreateSmfContextNon3gpp(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - var smfRegistration models.SmfRegistration requestBody, err := c.GetRawData() @@ -78,12 +72,6 @@ func HTTPCreateSmfContextNon3gpp(c *gin.Context) { // HTTPDeleteSmfContext - To remove an individual SMF context data of a UE the UDR func HTTPDeleteSmfContext(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - req := httpwrapper.NewRequest(c.Request, nil) req.Params["ueId"] = c.Params.ByName("ueId") req.Params["pduSessionId"] = c.Params.ByName("pduSessionId") @@ -106,12 +94,6 @@ func HTTPDeleteSmfContext(c *gin.Context) { // HTTPQuerySmfRegistration - Retrieves the individual SMF registration of a UE func HTTPQuerySmfRegistration(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - req := httpwrapper.NewRequest(c.Request, nil) req.Params["ueId"] = c.Params.ByName("ueId") req.Params["pduSessionId"] = c.Params.ByName("pduSessionId") diff --git a/internal/sbi/datarepository/api_smf_registrations_collection.go b/internal/sbi/datarepository/api_smf_registrations_collection.go index 6d7b8e2..ca2cec6 100644 --- a/internal/sbi/datarepository/api_smf_registrations_collection.go +++ b/internal/sbi/datarepository/api_smf_registrations_collection.go @@ -23,12 +23,6 @@ import ( // HTTPQuerySmfRegList - Retrieves the SMF registration list of a UE func HTTPQuerySmfRegList(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - req := httpwrapper.NewRequest(c.Request, nil) req.Params["ueId"] = c.Params.ByName("ueId") diff --git a/internal/sbi/datarepository/api_smf_selection_subscription_data_document.go b/internal/sbi/datarepository/api_smf_selection_subscription_data_document.go index 5fd29f2..f643ca1 100644 --- a/internal/sbi/datarepository/api_smf_selection_subscription_data_document.go +++ b/internal/sbi/datarepository/api_smf_selection_subscription_data_document.go @@ -23,12 +23,6 @@ import ( // HTTPQuerySmfSelectData - Retrieves the SMF selection subscription data of a UE func HTTPQuerySmfSelectData(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - req := httpwrapper.NewRequest(c.Request, nil) req.Params["ueId"] = c.Params.ByName("ueId") req.Params["servingPlmnId"] = c.Params.ByName("servingPlmnId") diff --git a/internal/sbi/datarepository/api_sms_management_subscription_data_document.go b/internal/sbi/datarepository/api_sms_management_subscription_data_document.go index d210c24..8476038 100644 --- a/internal/sbi/datarepository/api_sms_management_subscription_data_document.go +++ b/internal/sbi/datarepository/api_sms_management_subscription_data_document.go @@ -23,12 +23,6 @@ import ( // HTTPQuerySmsMngData - Retrieves the SMS management subscription data of a UE func HTTPQuerySmsMngData(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - req := httpwrapper.NewRequest(c.Request, nil) req.Params["ueId"] = c.Params.ByName("ueId") req.Params["servingPlmnId"] = c.Params.ByName("servingPlmnId") diff --git a/internal/sbi/datarepository/api_sms_subscription_data_document.go b/internal/sbi/datarepository/api_sms_subscription_data_document.go index 644bc06..9355c05 100644 --- a/internal/sbi/datarepository/api_sms_subscription_data_document.go +++ b/internal/sbi/datarepository/api_sms_subscription_data_document.go @@ -23,12 +23,6 @@ import ( // HTTPQuerySmsData - Retrieves the SMS subscription data of a UE func HTTPQuerySmsData(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - req := httpwrapper.NewRequest(c.Request, nil) req.Params["ueId"] = c.Params.ByName("ueId") req.Params["servingPlmnId"] = c.Params.ByName("servingPlmnId") diff --git a/internal/sbi/datarepository/api_smsf3_gpp_registration_document.go b/internal/sbi/datarepository/api_smsf3_gpp_registration_document.go index 761f38a..52356b1 100644 --- a/internal/sbi/datarepository/api_smsf3_gpp_registration_document.go +++ b/internal/sbi/datarepository/api_smsf3_gpp_registration_document.go @@ -23,12 +23,6 @@ import ( // HTTPCreateSmsfContext3gpp - Create the SMSF context data of a UE via 3GPP access func HTTPCreateSmsfContext3gpp(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - var smsfRegistration models.SmsfRegistration requestBody, err := c.GetRawData() @@ -78,12 +72,6 @@ func HTTPCreateSmsfContext3gpp(c *gin.Context) { // HTTPDeleteSmsfContext3gpp - To remove the SMSF context data of a UE via 3GPP access func HTTPDeleteSmsfContext3gpp(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - req := httpwrapper.NewRequest(c.Request, nil) req.Params["ueId"] = c.Params.ByName("ueId") @@ -105,12 +93,6 @@ func HTTPDeleteSmsfContext3gpp(c *gin.Context) { // HTTPQuerySmsfContext3gpp - Retrieves the SMSF context data of a UE using 3gpp access func HTTPQuerySmsfContext3gpp(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - req := httpwrapper.NewRequest(c.Request, nil) req.Params["ueId"] = c.Params.ByName("ueId") diff --git a/internal/sbi/datarepository/api_smsf_non3_gpp_registration_document.go b/internal/sbi/datarepository/api_smsf_non3_gpp_registration_document.go index d874dc6..76b5df2 100644 --- a/internal/sbi/datarepository/api_smsf_non3_gpp_registration_document.go +++ b/internal/sbi/datarepository/api_smsf_non3_gpp_registration_document.go @@ -23,12 +23,6 @@ import ( // HTTPCreateSmsfContextNon3gpp - Create the SMSF context data of a UE via non-3GPP access func HTTPCreateSmsfContextNon3gpp(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - var smsfRegistration models.SmsfRegistration requestBody, err := c.GetRawData() @@ -78,12 +72,6 @@ func HTTPCreateSmsfContextNon3gpp(c *gin.Context) { // HTTPDeleteSmsfContextNon3gpp - To remove the SMSF context data of a UE via non-3GPP access func HTTPDeleteSmsfContextNon3gpp(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - req := httpwrapper.NewRequest(c.Request, nil) req.Params["ueId"] = c.Params.ByName("ueId") @@ -105,12 +93,6 @@ func HTTPDeleteSmsfContextNon3gpp(c *gin.Context) { // HTTPQuerySmsfContextNon3gpp - Retrieves the SMSF context data of a UE using non-3gpp access func HTTPQuerySmsfContextNon3gpp(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - req := httpwrapper.NewRequest(c.Request, nil) req.Params["ueId"] = c.Params.ByName("ueId") diff --git a/internal/sbi/datarepository/api_trace_data_document.go b/internal/sbi/datarepository/api_trace_data_document.go index 513c140..5eb2174 100644 --- a/internal/sbi/datarepository/api_trace_data_document.go +++ b/internal/sbi/datarepository/api_trace_data_document.go @@ -23,12 +23,6 @@ import ( // HTTPQueryTraceData - Retrieves the trace configuration data of a UE func HTTPQueryTraceData(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - req := httpwrapper.NewRequest(c.Request, nil) req.Params["ueId"] = c.Params.ByName("ueId") req.Params["servingPlmnId"] = c.Params.ByName("servingPlmnId") diff --git a/internal/sbi/datarepository/routers.go b/internal/sbi/datarepository/routers.go index febc7aa..b2cf662 100644 --- a/internal/sbi/datarepository/routers.go +++ b/internal/sbi/datarepository/routers.go @@ -15,8 +15,10 @@ import ( "github.com/gin-gonic/gin" + "github.com/free5gc/openapi/models" udr_context "github.com/free5gc/udr/internal/context" "github.com/free5gc/udr/internal/logger" + "github.com/free5gc/udr/internal/util" "github.com/free5gc/udr/pkg/factory" logger_util "github.com/free5gc/util/logger" ) @@ -44,12 +46,6 @@ func NewRouter() *gin.Engine { } func subMsgShortDispatchHandlerFunc(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - op := c.Param("ueId") for _, route := range subShortRoutes { if strings.Contains(route.Pattern, op) && route.Method == c.Request.Method { @@ -61,12 +57,6 @@ func subMsgShortDispatchHandlerFunc(c *gin.Context) { } func subMsgDispatchHandlerFunc(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - op := c.Param("servingPlmnId") subsToNotify := c.Param("ueId") for _, route := range subRoutes { @@ -87,12 +77,6 @@ func subMsgDispatchHandlerFunc(c *gin.Context) { } func eeMsgShortDispatchHandlerFunc(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - groupData := c.Param("ueId") contextData := c.Param("servingPlmnId") for _, route := range eeShortRoutes { @@ -110,12 +94,6 @@ func eeMsgShortDispatchHandlerFunc(c *gin.Context) { } func eeMsgDispatchHandlerFunc(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - groupData := c.Param("ueId") contextData := c.Param("servingPlmnId") for _, route := range eeRoutes { @@ -133,12 +111,6 @@ func eeMsgDispatchHandlerFunc(c *gin.Context) { } func appMsgDispatchHandlerFunc(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - subsToNotify := c.Param("influenceId") for _, route := range appRoutes { if subsToNotify == "subs-to-notify" && @@ -158,12 +130,6 @@ func appMsgDispatchHandlerFunc(c *gin.Context) { } func expoMsgDispatchHandlerFunc(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - subsToNotify := c.Param("ueId") op := c.Param("subId") for _, route := range expoRoutes { @@ -184,6 +150,11 @@ func expoMsgDispatchHandlerFunc(c *gin.Context) { func AddService(engine *gin.Engine) *gin.RouterGroup { group := engine.Group(factory.UdrDrResUriPrefix) + routerAuthorizationCheck := util.NewRouterAuthorizationCheck(models.ServiceName_NUDR_DR) + group.Use(func(c *gin.Context) { + routerAuthorizationCheck.Check(c, udr_context.GetSelf()) + }) + for _, route := range routes { switch route.Method { case "GET": @@ -236,12 +207,6 @@ func Index(c *gin.Context) { // HandleAppDataInfluDataSubsToNotifyConflictDelete filters invalid requested resource on subs-to-notify DELETE func HandleAppDataInfluDataSubsToNotifyConflictDelete(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - influenceId := c.Param("influenceId") if influenceId == "subs-to-notify" { HTTPApplicationDataInfluenceDataSubsToNotifySubscriptionIdDelete(c) @@ -252,12 +217,6 @@ func HandleAppDataInfluDataSubsToNotifyConflictDelete(c *gin.Context) { // HandleAppDataInfluDataSubsToNotifyConflictGet filters invalid requested resource on subs-to-notify GET func HandleAppDataInfluDataSubsToNotifyConflictGet(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - influenceId := c.Param("influenceId") if influenceId == "subs-to-notify" { HTTPApplicationDataInfluenceDataSubsToNotifySubscriptionIdGet(c) @@ -268,12 +227,6 @@ func HandleAppDataInfluDataSubsToNotifyConflictGet(c *gin.Context) { // HandleAppDataInfluDataSubsToNotifyConflictPut filters invalid requested resource on subs-to-notify PUT func HandleAppDataInfluDataSubsToNotifyConflictPut(c *gin.Context) { - auth_err := authorizationCheck(c) - if auth_err != nil { - c.JSON(http.StatusUnauthorized, gin.H{"error": auth_err.Error()}) - return - } - influenceId := c.Param("influenceId") if influenceId == "subs-to-notify" { HTTPApplicationDataInfluenceDataSubsToNotifySubscriptionIdPut(c) @@ -282,11 +235,6 @@ func HandleAppDataInfluDataSubsToNotifyConflictPut(c *gin.Context) { c.String(http.StatusNotFound, "404 page not found") } -func authorizationCheck(c *gin.Context) error { - token := c.Request.Header.Get("Authorization") - return udr_context.GetSelf().AuthorizationCheck(token, "nudr-dr") -} - var routes = Routes{ { "Index", diff --git a/internal/util/router_auth_check.go b/internal/util/router_auth_check.go new file mode 100644 index 0000000..bce5f54 --- /dev/null +++ b/internal/util/router_auth_check.go @@ -0,0 +1,34 @@ +package util + +import ( + "net/http" + + "github.com/gin-gonic/gin" + + "github.com/free5gc/openapi/models" + udr_context "github.com/free5gc/udr/internal/context" + "github.com/free5gc/udr/internal/logger" +) + +type RouterAuthorizationCheck struct { + serviceName models.ServiceName +} + +func NewRouterAuthorizationCheck(serviceName models.ServiceName) *RouterAuthorizationCheck { + return &RouterAuthorizationCheck{ + serviceName: serviceName, + } +} + +func (rac *RouterAuthorizationCheck) Check(c *gin.Context, udrContext udr_context.NFContext) { + token := c.Request.Header.Get("Authorization") + err := udrContext.AuthorizationCheck(token, rac.serviceName) + if err != nil { + logger.UtilLog.Debugf("RouterAuthorizationCheck: Check Unauthorized: %s", err.Error()) + c.JSON(http.StatusUnauthorized, gin.H{"error": err.Error()}) + c.Abort() + return + } + + logger.UtilLog.Debugf("RouterAuthorizationCheck: Check Authorized") +} diff --git a/internal/util/router_auth_check_test.go b/internal/util/router_auth_check_test.go new file mode 100644 index 0000000..25dca0c --- /dev/null +++ b/internal/util/router_auth_check_test.go @@ -0,0 +1,93 @@ +package util + +import ( + "net/http" + "net/http/httptest" + "testing" + + "github.com/gin-gonic/gin" + "github.com/pkg/errors" + + "github.com/free5gc/openapi/models" +) + +const ( + Valid = "valid" + Invalid = "invalid" +) + +type mockUDRContext struct{} + +func newMockUDRContext() *mockUDRContext { + return &mockUDRContext{} +} + +func (m *mockUDRContext) AuthorizationCheck(token string, serviceName models.ServiceName) error { + if token == Valid { + return nil + } + + return errors.New("invalid token") +} + +func TestRouterAuthorizationCheck_Check(t *testing.T) { + // Mock gin.Context + w := httptest.NewRecorder() + c, _ := gin.CreateTestContext(w) + + var err error + c.Request, err = http.NewRequest("GET", "/", nil) + if err != nil { + t.Errorf("error on http request: %+v", err) + } + + type Args struct { + token string + } + type Want struct { + statusCode int + } + + tests := []struct { + name string + args Args + want Want + }{ + { + name: "Valid Token", + args: Args{ + token: Valid, + }, + want: Want{ + statusCode: http.StatusOK, + }, + }, + { + name: "Invalid Token", + args: Args{ + token: Invalid, + }, + want: Want{ + statusCode: http.StatusUnauthorized, + }, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + w = httptest.NewRecorder() + c, _ = gin.CreateTestContext(w) + c.Request, err = http.NewRequest("GET", "/", nil) + if err != nil { + t.Errorf("error on http request: %+v", err) + } + c.Request.Header.Set("Authorization", tt.args.token) + + rac := NewRouterAuthorizationCheck(models.ServiceName("testService")) + rac.Check(c, newMockUDRContext()) + if w.Code != tt.want.statusCode { + t.Errorf("StatusCode should be %d, but got %d", tt.want.statusCode, w.Code) + } + }) + } +} diff --git a/pkg/factory/config.go b/pkg/factory/config.go index d48d09f..577c24b 100644 --- a/pkg/factory/config.go +++ b/pkg/factory/config.go @@ -110,8 +110,8 @@ func appendInvalid(err error) error { } func (c *Config) GetVersion() string { - c.RLock() - defer c.RUnlock() + c.RWMutex.RLock() + defer c.RWMutex.RUnlock() if c.Info.Version != "" { return c.Info.Version @@ -120,8 +120,8 @@ func (c *Config) GetVersion() string { } func (c *Config) SetLogEnable(enable bool) { - c.Lock() - defer c.Unlock() + c.RWMutex.Lock() + defer c.RWMutex.Unlock() if c.Logger == nil { logger.CfgLog.Warnf("Logger should not be nil") @@ -135,8 +135,8 @@ func (c *Config) SetLogEnable(enable bool) { } func (c *Config) SetLogLevel(level string) { - c.Lock() - defer c.Unlock() + c.RWMutex.Lock() + defer c.RWMutex.Unlock() if c.Logger == nil { logger.CfgLog.Warnf("Logger should not be nil") @@ -149,8 +149,8 @@ func (c *Config) SetLogLevel(level string) { } func (c *Config) SetLogReportCaller(reportCaller bool) { - c.Lock() - defer c.Unlock() + c.RWMutex.Lock() + defer c.RWMutex.Unlock() if c.Logger == nil { logger.CfgLog.Warnf("Logger should not be nil") @@ -164,8 +164,8 @@ func (c *Config) SetLogReportCaller(reportCaller bool) { } func (c *Config) GetLogEnable() bool { - c.RLock() - defer c.RUnlock() + c.RWMutex.RLock() + defer c.RWMutex.RUnlock() if c.Logger == nil { logger.CfgLog.Warnf("Logger should not be nil") return false @@ -174,8 +174,8 @@ func (c *Config) GetLogEnable() bool { } func (c *Config) GetLogLevel() string { - c.RLock() - defer c.RUnlock() + c.RWMutex.RLock() + defer c.RWMutex.RUnlock() if c.Logger == nil { logger.CfgLog.Warnf("Logger should not be nil") return "info" @@ -184,8 +184,8 @@ func (c *Config) GetLogLevel() string { } func (c *Config) GetLogReportCaller() bool { - c.RLock() - defer c.RUnlock() + c.RWMutex.RLock() + defer c.RWMutex.RUnlock() if c.Logger == nil { logger.CfgLog.Warnf("Logger should not be nil") return false