fix token issue
This commit is contained in:
@@ -32,8 +32,28 @@ import (
|
|||||||
"k8s.io/client-go/tools/remotecommand"
|
"k8s.io/client-go/tools/remotecommand"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func Authorization(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
|
var header models.Header
|
||||||
|
var user models.User
|
||||||
|
header.Authorization = r.Header.Get("Authorization")
|
||||||
|
err := helpers.DecodeJwt(&header.Authorization, &user)
|
||||||
|
if err != nil {
|
||||||
|
http.Error(w, "Anauthorized User", http.StatusUnauthorized)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
err = helpers.ValidateUser(user.Username)
|
||||||
|
if err != nil {
|
||||||
|
http.Error(w, "Anauthorized User", http.StatusUnauthorized)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
func CreateClusterHandler(w http.ResponseWriter, r *http.Request) {
|
func CreateClusterHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
|
Authorization(w, r)
|
||||||
var cluster models.Cluster
|
var cluster models.Cluster
|
||||||
_ = json.NewDecoder(r.Body).Decode(&cluster)
|
_ = json.NewDecoder(r.Body).Decode(&cluster)
|
||||||
|
|
||||||
@@ -71,6 +91,7 @@ func CreateClusterHandler(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
func Deletecluster(w http.ResponseWriter, r *http.Request) {
|
func Deletecluster(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
|
Authorization(w, r)
|
||||||
clusterName := r.URL.Query().Get("Name")
|
clusterName := r.URL.Query().Get("Name")
|
||||||
if clusterName == "" {
|
if clusterName == "" {
|
||||||
http.Error(w, "Invalid input", http.StatusBadRequest)
|
http.Error(w, "Invalid input", http.StatusBadRequest)
|
||||||
@@ -122,16 +143,7 @@ func getClientset(w http.ResponseWriter, clustername string) (*kubernetes.Client
|
|||||||
|
|
||||||
func ListUserClusters(w http.ResponseWriter, r *http.Request) {
|
func ListUserClusters(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
var header models.Header
|
Authorization(w, r)
|
||||||
var user models.User
|
|
||||||
header.Authorization = r.Header.Get("Authorization")
|
|
||||||
helpers.DecodeJwt(&header.Authorization, &user)
|
|
||||||
|
|
||||||
err := helpers.ValidateUser(user.Username)
|
|
||||||
if err != nil {
|
|
||||||
http.Error(w, "Anauthorized User", http.StatusUnauthorized)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
_, clusterList := argohandler.ListUserClusters("userid")
|
_, clusterList := argohandler.ListUserClusters("userid")
|
||||||
|
|
||||||
w.Header().Set("Content-Type", "application/json")
|
w.Header().Set("Content-Type", "application/json")
|
||||||
@@ -141,6 +153,7 @@ func ListUserClusters(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
func Cluster_namespaces(w http.ResponseWriter, r *http.Request) {
|
func Cluster_namespaces(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
|
Authorization(w, r)
|
||||||
clustername := r.URL.Query().Get("Name")
|
clustername := r.URL.Query().Get("Name")
|
||||||
|
|
||||||
if clustername == "" {
|
if clustername == "" {
|
||||||
@@ -175,6 +188,7 @@ func Cluster_namespaces(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
func Cluster_services(w http.ResponseWriter, r *http.Request) {
|
func Cluster_services(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
|
Authorization(w, r)
|
||||||
clustername := r.URL.Query().Get("Name")
|
clustername := r.URL.Query().Get("Name")
|
||||||
namespace := r.URL.Query().Get("Namespace")
|
namespace := r.URL.Query().Get("Namespace")
|
||||||
|
|
||||||
@@ -225,6 +239,7 @@ func Cluster_services(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
func Cluster_statefulset(w http.ResponseWriter, r *http.Request) {
|
func Cluster_statefulset(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
|
Authorization(w, r)
|
||||||
clustername := r.URL.Query().Get("Name")
|
clustername := r.URL.Query().Get("Name")
|
||||||
namespace := r.URL.Query().Get("Namespace")
|
namespace := r.URL.Query().Get("Namespace")
|
||||||
|
|
||||||
@@ -273,6 +288,7 @@ func Cluster_statefulset(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
func Cluster_daemonsets(w http.ResponseWriter, r *http.Request) {
|
func Cluster_daemonsets(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
|
Authorization(w, r)
|
||||||
clustername := r.URL.Query().Get("Name")
|
clustername := r.URL.Query().Get("Name")
|
||||||
namespace := r.URL.Query().Get("Namespace")
|
namespace := r.URL.Query().Get("Namespace")
|
||||||
|
|
||||||
@@ -324,6 +340,7 @@ func Cluster_daemonsets(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
func Cluster_deployments(w http.ResponseWriter, r *http.Request) {
|
func Cluster_deployments(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
|
Authorization(w, r)
|
||||||
clustername := r.URL.Query().Get("Name")
|
clustername := r.URL.Query().Get("Name")
|
||||||
namespace := r.URL.Query().Get("Namespace")
|
namespace := r.URL.Query().Get("Namespace")
|
||||||
|
|
||||||
@@ -384,6 +401,7 @@ func servicePortsToString(ports []corev1.ServicePort) string {
|
|||||||
}
|
}
|
||||||
func Cluster_pods(w http.ResponseWriter, r *http.Request) {
|
func Cluster_pods(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
|
Authorization(w, r)
|
||||||
clustername := r.URL.Query().Get("Name")
|
clustername := r.URL.Query().Get("Name")
|
||||||
namespace := r.URL.Query().Get("Namespace")
|
namespace := r.URL.Query().Get("Namespace")
|
||||||
|
|
||||||
@@ -443,12 +461,15 @@ func getClusterConfig(clustername string) (string, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
decoded, err := base64.StdEncoding.DecodeString(existsCluster.Cluster_config)
|
decoded, err := base64.StdEncoding.DecodeString(existsCluster.Cluster_config)
|
||||||
|
if err != nil {
|
||||||
return string(decoded), nil
|
return string(decoded), nil
|
||||||
}
|
}
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
func Connect(w http.ResponseWriter, r *http.Request) {
|
func Connect(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
|
Authorization(w, r)
|
||||||
clusterName := r.URL.Query().Get("Name")
|
clusterName := r.URL.Query().Get("Name")
|
||||||
if clusterName == "" {
|
if clusterName == "" {
|
||||||
http.Error(w, "Missing 'Name' parameter", http.StatusBadRequest)
|
http.Error(w, "Missing 'Name' parameter", http.StatusBadRequest)
|
||||||
@@ -470,12 +491,9 @@ func Connect(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// func Cluster_details(w http.ResponseWriter, r *http.Request) {
|
|
||||||
|
|
||||||
// }
|
|
||||||
|
|
||||||
func Cluster_jobs(w http.ResponseWriter, r *http.Request) {
|
func Cluster_jobs(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
|
Authorization(w, r)
|
||||||
clustername := r.URL.Query().Get("Name")
|
clustername := r.URL.Query().Get("Name")
|
||||||
namespace := r.URL.Query().Get("Namespace")
|
namespace := r.URL.Query().Get("Namespace")
|
||||||
|
|
||||||
@@ -538,6 +556,7 @@ func Cluster_jobs(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
func Cluster_replicasets(w http.ResponseWriter, r *http.Request) {
|
func Cluster_replicasets(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
|
Authorization(w, r)
|
||||||
clustername := r.URL.Query().Get("Name")
|
clustername := r.URL.Query().Get("Name")
|
||||||
namespace := r.URL.Query().Get("Namespace")
|
namespace := r.URL.Query().Get("Namespace")
|
||||||
|
|
||||||
@@ -583,6 +602,7 @@ func Cluster_replicasets(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
func Cluster_replicationcontrollers(w http.ResponseWriter, r *http.Request) {
|
func Cluster_replicationcontrollers(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
|
Authorization(w, r)
|
||||||
clustername := r.URL.Query().Get("Name")
|
clustername := r.URL.Query().Get("Name")
|
||||||
namespace := r.URL.Query().Get("Namespace")
|
namespace := r.URL.Query().Get("Namespace")
|
||||||
|
|
||||||
@@ -625,6 +645,7 @@ func Cluster_replicationcontrollers(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
func Cluster_cronjobs(w http.ResponseWriter, r *http.Request) {
|
func Cluster_cronjobs(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
|
Authorization(w, r)
|
||||||
clustername := r.URL.Query().Get("Name")
|
clustername := r.URL.Query().Get("Name")
|
||||||
namespace := r.URL.Query().Get("Namespace")
|
namespace := r.URL.Query().Get("Namespace")
|
||||||
|
|
||||||
@@ -671,6 +692,8 @@ func Cluster_cronjobs(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Pod_logs(w http.ResponseWriter, r *http.Request) {
|
func Pod_logs(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
|
Authorization(w, r)
|
||||||
clustername := r.URL.Query().Get("Name")
|
clustername := r.URL.Query().Get("Name")
|
||||||
namespace := r.URL.Query().Get("Namespace")
|
namespace := r.URL.Query().Get("Namespace")
|
||||||
podName := r.URL.Query().Get("Pod")
|
podName := r.URL.Query().Get("Pod")
|
||||||
@@ -707,6 +730,7 @@ func Pod_logs(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Pod_exec(w http.ResponseWriter, r *http.Request) {
|
func Pod_exec(w http.ResponseWriter, r *http.Request) {
|
||||||
|
Authorization(w, r)
|
||||||
clustername := r.URL.Query().Get("Name")
|
clustername := r.URL.Query().Get("Name")
|
||||||
namespace := r.URL.Query().Get("Namespace")
|
namespace := r.URL.Query().Get("Namespace")
|
||||||
podName := r.URL.Query().Get("Pod")
|
podName := r.URL.Query().Get("Pod")
|
||||||
@@ -775,6 +799,7 @@ func Pod_exec(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Pod_delete(w http.ResponseWriter, r *http.Request) {
|
func Pod_delete(w http.ResponseWriter, r *http.Request) {
|
||||||
|
Authorization(w, r)
|
||||||
clustername := r.URL.Query().Get("Name")
|
clustername := r.URL.Query().Get("Name")
|
||||||
namespace := r.URL.Query().Get("Namespace")
|
namespace := r.URL.Query().Get("Namespace")
|
||||||
podName := r.URL.Query().Get("Pod")
|
podName := r.URL.Query().Get("Pod")
|
||||||
@@ -801,6 +826,7 @@ func Pod_delete(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Service_delete(w http.ResponseWriter, r *http.Request) {
|
func Service_delete(w http.ResponseWriter, r *http.Request) {
|
||||||
|
Authorization(w, r)
|
||||||
clustername := r.URL.Query().Get("Name")
|
clustername := r.URL.Query().Get("Name")
|
||||||
namespace := r.URL.Query().Get("Namespace")
|
namespace := r.URL.Query().Get("Namespace")
|
||||||
serviceName := r.URL.Query().Get("serviceName")
|
serviceName := r.URL.Query().Get("serviceName")
|
||||||
@@ -827,6 +853,7 @@ func Service_delete(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Deployment_delete(w http.ResponseWriter, r *http.Request) {
|
func Deployment_delete(w http.ResponseWriter, r *http.Request) {
|
||||||
|
Authorization(w, r)
|
||||||
clustername := r.URL.Query().Get("Name")
|
clustername := r.URL.Query().Get("Name")
|
||||||
namespace := r.URL.Query().Get("Namespace")
|
namespace := r.URL.Query().Get("Namespace")
|
||||||
deploymenteName := r.URL.Query().Get("deploymenteName")
|
deploymenteName := r.URL.Query().Get("deploymenteName")
|
||||||
@@ -853,6 +880,7 @@ func Deployment_delete(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func StatefulSet_delete(w http.ResponseWriter, r *http.Request) {
|
func StatefulSet_delete(w http.ResponseWriter, r *http.Request) {
|
||||||
|
Authorization(w, r)
|
||||||
clustername := r.URL.Query().Get("Name")
|
clustername := r.URL.Query().Get("Name")
|
||||||
namespace := r.URL.Query().Get("Namespace")
|
namespace := r.URL.Query().Get("Namespace")
|
||||||
statefulSetName := r.URL.Query().Get("statefulSetName")
|
statefulSetName := r.URL.Query().Get("statefulSetName")
|
||||||
@@ -879,6 +907,7 @@ func StatefulSet_delete(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Daemonsets_delete(w http.ResponseWriter, r *http.Request) {
|
func Daemonsets_delete(w http.ResponseWriter, r *http.Request) {
|
||||||
|
Authorization(w, r)
|
||||||
clustername := r.URL.Query().Get("Name")
|
clustername := r.URL.Query().Get("Name")
|
||||||
namespace := r.URL.Query().Get("Namespace")
|
namespace := r.URL.Query().Get("Namespace")
|
||||||
daemonsetsName := r.URL.Query().Get("daemonsetsName")
|
daemonsetsName := r.URL.Query().Get("daemonsetsName")
|
||||||
@@ -905,6 +934,7 @@ func Daemonsets_delete(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func JobsName_delete(w http.ResponseWriter, r *http.Request) {
|
func JobsName_delete(w http.ResponseWriter, r *http.Request) {
|
||||||
|
Authorization(w, r)
|
||||||
clustername := r.URL.Query().Get("Name")
|
clustername := r.URL.Query().Get("Name")
|
||||||
namespace := r.URL.Query().Get("Namespace")
|
namespace := r.URL.Query().Get("Namespace")
|
||||||
jobsName := r.URL.Query().Get("jobsName")
|
jobsName := r.URL.Query().Get("jobsName")
|
||||||
@@ -931,6 +961,7 @@ func JobsName_delete(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Replicaset_delete(w http.ResponseWriter, r *http.Request) {
|
func Replicaset_delete(w http.ResponseWriter, r *http.Request) {
|
||||||
|
Authorization(w, r)
|
||||||
clustername := r.URL.Query().Get("Name")
|
clustername := r.URL.Query().Get("Name")
|
||||||
namespace := r.URL.Query().Get("Namespace")
|
namespace := r.URL.Query().Get("Namespace")
|
||||||
replicasetName := r.URL.Query().Get("replicasetName")
|
replicasetName := r.URL.Query().Get("replicasetName")
|
||||||
@@ -957,6 +988,7 @@ func Replicaset_delete(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Replicationcontroller_delete(w http.ResponseWriter, r *http.Request) {
|
func Replicationcontroller_delete(w http.ResponseWriter, r *http.Request) {
|
||||||
|
Authorization(w, r)
|
||||||
clustername := r.URL.Query().Get("Name")
|
clustername := r.URL.Query().Get("Name")
|
||||||
namespace := r.URL.Query().Get("Namespace")
|
namespace := r.URL.Query().Get("Namespace")
|
||||||
replicationcontrollerName := r.URL.Query().Get("replicationcontrollerName")
|
replicationcontrollerName := r.URL.Query().Get("replicationcontrollerName")
|
||||||
@@ -983,6 +1015,7 @@ func Replicationcontroller_delete(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Cronjob_delete(w http.ResponseWriter, r *http.Request) {
|
func Cronjob_delete(w http.ResponseWriter, r *http.Request) {
|
||||||
|
Authorization(w, r)
|
||||||
clustername := r.URL.Query().Get("Name")
|
clustername := r.URL.Query().Get("Name")
|
||||||
namespace := r.URL.Query().Get("Namespace")
|
namespace := r.URL.Query().Get("Namespace")
|
||||||
cronjobName := r.URL.Query().Get("cronjobName")
|
cronjobName := r.URL.Query().Get("cronjobName")
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ func Human(d time.Duration) string {
|
|||||||
|
|
||||||
var jwtKey = []byte("mysecret123")
|
var jwtKey = []byte("mysecret123")
|
||||||
|
|
||||||
func DecodeJwt(tokenString *string, user *models.User) {
|
func DecodeJwt(tokenString *string, user *models.User) error {
|
||||||
claims := jwt.MapClaims{}
|
claims := jwt.MapClaims{}
|
||||||
_, err := jwt.ParseWithClaims(*tokenString, claims, func(token *jwt.Token) (interface{}, error) {
|
_, err := jwt.ParseWithClaims(*tokenString, claims, func(token *jwt.Token) (interface{}, error) {
|
||||||
return []byte(jwtKey), nil
|
return []byte(jwtKey), nil
|
||||||
@@ -77,10 +77,11 @@ func DecodeJwt(tokenString *string, user *models.User) {
|
|||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
return
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
user.Username = claims["username"].(string)
|
user.Username = claims["username"].(string)
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func ValidateUser(user string) error {
|
func ValidateUser(user string) error {
|
||||||
|
|||||||
Reference in New Issue
Block a user