mirror of
https://github.com/gravitl/netmaker.git
synced 2025-11-05 22:38:36 +08:00
NET-163: Return 403 instead of 401 (#2326)
* return 401 instead of 403 * fixed http.StatusForbidden * Tagged build version (temp) * Unauthorized_Err when applicable * untagged version
This commit is contained in:
parent
7b5bef7b3f
commit
3a4363c890
4 changed files with 13 additions and 9 deletions
|
|
@ -1,2 +1,4 @@
|
||||||
config/dnsconfig/
|
config/dnsconfig/
|
||||||
data/
|
data/
|
||||||
|
/.git
|
||||||
|
/*.tar
|
||||||
|
|
@ -157,7 +157,7 @@ func authenticate(response http.ResponseWriter, request *http.Request) {
|
||||||
func authorize(hostAllowed, networkCheck bool, authNetwork string, next http.Handler) http.HandlerFunc {
|
func authorize(hostAllowed, networkCheck bool, authNetwork string, next http.Handler) http.HandlerFunc {
|
||||||
return func(w http.ResponseWriter, r *http.Request) {
|
return func(w http.ResponseWriter, r *http.Request) {
|
||||||
var errorResponse = models.ErrorResponse{
|
var errorResponse = models.ErrorResponse{
|
||||||
Code: http.StatusUnauthorized, Message: logic.Unauthorized_Msg,
|
Code: http.StatusForbidden, Message: logic.Forbidden_Msg,
|
||||||
}
|
}
|
||||||
|
|
||||||
var params = mux.Vars(r)
|
var params = mux.Vars(r)
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@ func getStatus(w http.ResponseWriter, r *http.Request) {
|
||||||
func allowUsers(next http.Handler) http.HandlerFunc {
|
func allowUsers(next http.Handler) http.HandlerFunc {
|
||||||
return func(w http.ResponseWriter, r *http.Request) {
|
return func(w http.ResponseWriter, r *http.Request) {
|
||||||
var errorResponse = models.ErrorResponse{
|
var errorResponse = models.ErrorResponse{
|
||||||
Code: http.StatusInternalServerError, Message: logic.Unauthorized_Msg,
|
Code: http.StatusInternalServerError, Message: logic.Forbidden_Msg,
|
||||||
}
|
}
|
||||||
bearerToken := r.Header.Get("Authorization")
|
bearerToken := r.Header.Get("Authorization")
|
||||||
var tokenSplit = strings.Split(bearerToken, " ")
|
var tokenSplit = strings.Split(bearerToken, " ")
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,8 @@ const (
|
||||||
ALL_NETWORK_ACCESS = "THIS_USER_HAS_ALL"
|
ALL_NETWORK_ACCESS = "THIS_USER_HAS_ALL"
|
||||||
|
|
||||||
master_uname = "masteradministrator"
|
master_uname = "masteradministrator"
|
||||||
|
Forbidden_Msg = "forbidden"
|
||||||
|
Forbidden_Err = models.Error(Forbidden_Msg)
|
||||||
Unauthorized_Msg = "unauthorized"
|
Unauthorized_Msg = "unauthorized"
|
||||||
Unauthorized_Err = models.Error(Unauthorized_Msg)
|
Unauthorized_Err = models.Error(Unauthorized_Msg)
|
||||||
)
|
)
|
||||||
|
|
@ -27,7 +29,7 @@ func SecurityCheck(reqAdmin bool, next http.Handler) http.HandlerFunc {
|
||||||
|
|
||||||
return func(w http.ResponseWriter, r *http.Request) {
|
return func(w http.ResponseWriter, r *http.Request) {
|
||||||
var errorResponse = models.ErrorResponse{
|
var errorResponse = models.ErrorResponse{
|
||||||
Code: http.StatusUnauthorized, Message: Unauthorized_Msg,
|
Code: http.StatusForbidden, Message: Forbidden_Msg,
|
||||||
}
|
}
|
||||||
|
|
||||||
var params = mux.Vars(r)
|
var params = mux.Vars(r)
|
||||||
|
|
@ -66,7 +68,7 @@ func SecurityCheck(reqAdmin bool, next http.Handler) http.HandlerFunc {
|
||||||
func NetUserSecurityCheck(isNodes, isClients bool, next http.Handler) http.HandlerFunc {
|
func NetUserSecurityCheck(isNodes, isClients bool, next http.Handler) http.HandlerFunc {
|
||||||
return func(w http.ResponseWriter, r *http.Request) {
|
return func(w http.ResponseWriter, r *http.Request) {
|
||||||
var errorResponse = models.ErrorResponse{
|
var errorResponse = models.ErrorResponse{
|
||||||
Code: http.StatusUnauthorized, Message: "unauthorized",
|
Code: http.StatusForbidden, Message: Forbidden_Msg,
|
||||||
}
|
}
|
||||||
r.Header.Set("ismaster", "no")
|
r.Header.Set("ismaster", "no")
|
||||||
|
|
||||||
|
|
@ -152,7 +154,7 @@ func UserPermissions(reqAdmin bool, netname string, token string) ([]string, str
|
||||||
return nil, username, Unauthorized_Err
|
return nil, username, Unauthorized_Err
|
||||||
}
|
}
|
||||||
if !isadmin && reqAdmin {
|
if !isadmin && reqAdmin {
|
||||||
return nil, username, Unauthorized_Err
|
return nil, username, Forbidden_Err
|
||||||
}
|
}
|
||||||
userNetworks = networks
|
userNetworks = networks
|
||||||
if isadmin {
|
if isadmin {
|
||||||
|
|
@ -160,10 +162,10 @@ func UserPermissions(reqAdmin bool, netname string, token string) ([]string, str
|
||||||
}
|
}
|
||||||
// check network admin access
|
// check network admin access
|
||||||
if len(netname) > 0 && (len(userNetworks) == 0 || !authenticateNetworkUser(netname, userNetworks)) {
|
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) {
|
if isEE && len(netname) > 0 && !pro.IsUserNetAdmin(netname, username) {
|
||||||
return nil, "", Unauthorized_Err
|
return nil, "", Forbidden_Err
|
||||||
}
|
}
|
||||||
return userNetworks, username, nil
|
return userNetworks, username, nil
|
||||||
}
|
}
|
||||||
|
|
@ -193,7 +195,7 @@ func authenticateDNSToken(tokenString string) bool {
|
||||||
func ContinueIfUserMatch(next http.Handler) http.HandlerFunc {
|
func ContinueIfUserMatch(next http.Handler) http.HandlerFunc {
|
||||||
return func(w http.ResponseWriter, r *http.Request) {
|
return func(w http.ResponseWriter, r *http.Request) {
|
||||||
var errorResponse = models.ErrorResponse{
|
var errorResponse = models.ErrorResponse{
|
||||||
Code: http.StatusUnauthorized, Message: Unauthorized_Msg,
|
Code: http.StatusForbidden, Message: Forbidden_Msg,
|
||||||
}
|
}
|
||||||
var params = mux.Vars(r)
|
var params = mux.Vars(r)
|
||||||
var requestedUser = params["username"]
|
var requestedUser = params["username"]
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue