Quellcode durchsuchen

return 401 instead of 403

Tobias Cudnik vor 2 Jahren
Ursprung
Commit
fe4cd83b73
4 geänderte Dateien mit 16 neuen und 14 gelöschten Zeilen
  1. 3 1
      .dockerignore
  2. 1 1
      controllers/node.go
  3. 1 1
      controllers/server.go
  4. 11 11
      logic/security.go

+ 3 - 1
.dockerignore

@@ -1,2 +1,4 @@
 config/dnsconfig/
-data/
+data/
+/.git
+/*.tar

+ 1 - 1
controllers/node.go

@@ -157,7 +157,7 @@ func authenticate(response http.ResponseWriter, request *http.Request) {
 func authorize(hostAllowed, networkCheck bool, authNetwork string, next http.Handler) http.HandlerFunc {
 	return func(w http.ResponseWriter, r *http.Request) {
 		var errorResponse = models.ErrorResponse{
-			Code: http.StatusUnauthorized, Message: logic.Unauthorized_Msg,
+			Code: http.StatusUnauthorized, Message: logic.Forbidden_Msg,
 		}
 
 		var params = mux.Vars(r)

+ 1 - 1
controllers/server.go

@@ -56,7 +56,7 @@ func getStatus(w http.ResponseWriter, r *http.Request) {
 func allowUsers(next http.Handler) http.HandlerFunc {
 	return func(w http.ResponseWriter, r *http.Request) {
 		var errorResponse = models.ErrorResponse{
-			Code: http.StatusInternalServerError, Message: logic.Unauthorized_Msg,
+			Code: http.StatusInternalServerError, Message: logic.Forbidden_Msg,
 		}
 		bearerToken := r.Header.Get("Authorization")
 		var tokenSplit = strings.Split(bearerToken, " ")

+ 11 - 11
logic/security.go

@@ -17,9 +17,9 @@ const (
 	// ALL_NETWORK_ACCESS - represents all networks
 	ALL_NETWORK_ACCESS = "THIS_USER_HAS_ALL"
 
-	master_uname     = "masteradministrator"
-	Unauthorized_Msg = "unauthorized"
-	Unauthorized_Err = models.Error(Unauthorized_Msg)
+	master_uname  = "masteradministrator"
+	Forbidden_Msg = "forbidden"
+	Forbidden_Err = models.Error(Forbidden_Msg)
 )
 
 // SecurityCheck - Check if user has appropriate permissions
@@ -27,7 +27,7 @@ func SecurityCheck(reqAdmin bool, next http.Handler) http.HandlerFunc {
 
 	return func(w http.ResponseWriter, r *http.Request) {
 		var errorResponse = models.ErrorResponse{
-			Code: http.StatusUnauthorized, Message: Unauthorized_Msg,
+			Code: http.StatusForbidden, Message: Forbidden_Msg,
 		}
 
 		var params = mux.Vars(r)
@@ -66,7 +66,7 @@ func SecurityCheck(reqAdmin bool, next http.Handler) http.HandlerFunc {
 func NetUserSecurityCheck(isNodes, isClients bool, next http.Handler) http.HandlerFunc {
 	return func(w http.ResponseWriter, r *http.Request) {
 		var errorResponse = models.ErrorResponse{
-			Code: http.StatusUnauthorized, Message: "unauthorized",
+			Code: http.StatusForbidden, Message: Forbidden_Msg,
 		}
 		r.Header.Set("ismaster", "no")
 
@@ -139,7 +139,7 @@ func UserPermissions(reqAdmin bool, netname string, token string) ([]string, str
 	userNetworks := []string{}
 
 	if len(tokenSplit) < 2 {
-		return userNetworks, "", Unauthorized_Err
+		return userNetworks, "", Forbidden_Err
 	} else {
 		authToken = tokenSplit[1]
 	}
@@ -149,10 +149,10 @@ func UserPermissions(reqAdmin bool, netname string, token string) ([]string, str
 	}
 	username, networks, isadmin, err := VerifyUserToken(authToken)
 	if err != nil {
-		return nil, username, Unauthorized_Err
+		return nil, username, Forbidden_Err
 	}
 	if !isadmin && reqAdmin {
-		return nil, username, Unauthorized_Err
+		return nil, username, Forbidden_Err
 	}
 	userNetworks = networks
 	if isadmin {
@@ -160,10 +160,10 @@ func UserPermissions(reqAdmin bool, netname string, token string) ([]string, str
 	}
 	// check network admin access
 	if len(netname) > 0 && (len(userNetworks) == 0 || !authenticateNetworkUser(netname, userNetworks)) {
-		return nil, username, Unauthorized_Err
+		return nil, username, Forbidden_Err
 	}
 	if isEE && len(netname) > 0 && !pro.IsUserNetAdmin(netname, username) {
-		return nil, "", Unauthorized_Err
+		return nil, "", Forbidden_Err
 	}
 	return userNetworks, username, nil
 }
@@ -193,7 +193,7 @@ func authenticateDNSToken(tokenString string) bool {
 func ContinueIfUserMatch(next http.Handler) http.HandlerFunc {
 	return func(w http.ResponseWriter, r *http.Request) {
 		var errorResponse = models.ErrorResponse{
-			Code: http.StatusUnauthorized, Message: Unauthorized_Msg,
+			Code: http.StatusUnauthorized, Message: Forbidden_Msg,
 		}
 		var params = mux.Vars(r)
 		var requestedUser = params["username"]