You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficcontrol.apache.org by oc...@apache.org on 2020/10/29 19:45:45 UTC
[trafficcontrol] 06/06: Fix compilation error in experimental tool
(#5220)
This is an automated email from the ASF dual-hosted git repository.
ocket8888 pushed a commit to branch 5.0.x
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git
commit ab198b3974099c83c428fb44f4d43e6573028019
Author: ocket8888 <oc...@apache.org>
AuthorDate: Thu Oct 29 12:41:18 2020 -0600
Fix compilation error in experimental tool (#5220)
(cherry picked from commit 4a77b62e11dcb9b245e21a7dcd4182c8d4d1fba0)
---
experimental/traffic_ops_auth/traffic_ops_auth.go | 25 +++++++++++++++++------
1 file changed, 19 insertions(+), 6 deletions(-)
diff --git a/experimental/traffic_ops_auth/traffic_ops_auth.go b/experimental/traffic_ops_auth/traffic_ops_auth.go
index a31427f..49b8f74 100644
--- a/experimental/traffic_ops_auth/traffic_ops_auth.go
+++ b/experimental/traffic_ops_auth/traffic_ops_auth.go
@@ -26,13 +26,14 @@ import (
"encoding/base64"
"encoding/json"
"fmt"
- jwt "github.com/dgrijalva/jwt-go"
- _ "github.com/lib/pq"
"io/ioutil"
"log"
"net/http"
"strconv"
"strings"
+
+ jwt "github.com/dgrijalva/jwt-go"
+ _ "github.com/lib/pq"
)
const TrafficOpsDomain = "localhost"
@@ -148,8 +149,13 @@ func getTokenData(jwtSigningKey string, r *http.Request) (*TokenData, error) {
return nil, fmt.Errorf("invalid token")
}
- userInterface, hasUser := token.Claims["user"]
- roleInterface, hasRole := token.Claims["role"]
+ clms, ok := token.Claims.(jwt.MapClaims)
+ if !ok {
+ return nil, fmt.Errorf("expected MapClaims in token, got: %T", token.Claims)
+ }
+
+ userInterface, hasUser := clms["user"]
+ roleInterface, hasRole := clms["role"]
user, userIsStr := userInterface.(string)
role, roleIsStr := roleInterface.(string)
if !hasUser || !hasRole || !userIsStr || !roleIsStr {
@@ -182,8 +188,15 @@ func HandleLogin(db *sql.DB, jwtSigningKey string, w http.ResponseWriter, r *htt
}
token := jwt.New(jwt.SigningMethodHS256)
- token.Claims["user"] = user
- token.Claims["role"] = role
+
+ clms, ok := token.Claims.(jwt.MapClaims)
+ if !ok {
+ w.WriteHeader(http.StatusInternalServerError)
+ log.Printf("%s ERROR creating token for '%s': expected MapClaims in token, got %T", token.Claims)
+ return
+ }
+ clms["user"] = user
+ clms["role"] = role
tokenString, err := token.SignedString([]byte(jwtSigningKey))
if err != nil {
w.WriteHeader(http.StatusInternalServerError)