This is an automated email from the ASF dual-hosted git repository.
zrhoffman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git
The following commit(s) were added to refs/heads/master by this push:
new 4a77b62 Fix compilation error in experimental tool (#5220)
4a77b62 is described below
commit 4a77b62e11dcb9b245e21a7dcd4182c8d4d1fba0
Author: ocket8888 <[email protected]>
AuthorDate: Thu Oct 29 12:41:18 2020 -0600
Fix compilation error in experimental tool (#5220)
---
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)