Commit f4d7a512 authored by Akshay Bharambe's avatar Akshay Bharambe
Browse files

Remove: Dead code

parent 32bcafe6
Branches
Tags
2 merge requests!210Staging mepdeployment05072020,!200Add: Session control
Showing with 19 additions and 190 deletions
package jwtmdl
import (
"fmt"
"strings"
"time"
......@@ -22,44 +21,6 @@ var keyFunc = func(key string) jwt.Keyfunc {
}
}
// // DecodeTokenWithJWTKey decode token
// func DecodeTokenWithJWTKey(req *http.Request, jwtKey string) (jwt.MapClaims, error) {
// token, err := request.ParseFromRequest(req, request.OAuth2Extractor, func(token *jwt.Token) (interface{}, error) {
// b := ([]byte(jwtKey))
// return b, nil
// })
// if errormdl.CheckErr(err) != nil {
// loggermdl.LogError("Error while parsing JWT Token: ", errormdl.CheckErr(err))
// return nil, errormdl.CheckErr(err)
// }
// claims, ok := token.Claims.(jwt.MapClaims)
// if !errormdl.CheckBool1(ok) {
// loggermdl.LogError("Error while parsing claims to MapClaims")
// return nil, errormdl.Wrap("Error while getting claims")
// }
// return claims, nil
// }
// // DecodeToken decode token
// func DecodeToken(req *http.Request) (jwt.MapClaims, error) {
// token, err := request.ParseFromRequest(req, request.OAuth2Extractor, func(token *jwt.Token) (interface{}, error) {
// b := ([]byte(GlobalJWTKey))
// return b, nil
// })
// if errormdl.CheckErr(err) != nil {
// loggermdl.LogError("Error while parsing JWT Token: ", errormdl.CheckErr(err))
// return nil, errormdl.CheckErr(err)
// }
// claims, ok := token.Claims.(jwt.MapClaims)
// if !errormdl.CheckBool1(ok) {
// loggermdl.LogError("Error while parsing claims to MapClaims")
// return nil, errormdl.Wrap("Error while getting claims")
// }
// return claims, nil
// }
type jwtCustomClaim struct {
UserID string `json:"userId"`
SessionId string `json:"sessionId,omitempty"`
......@@ -75,6 +36,16 @@ func generate(claims jwtCustomClaim, key string) (string, error) {
return jwt.NewWithClaims(jwt.SigningMethodHS256, claims).SignedString([]byte(key))
}
// extract return token from header string
func extract(tokenReq string) (string, error) {
tokenArray := strings.Split(tokenReq, "Bearer")
if len(tokenArray) <= 1 {
return "", errormdl.Wrap("Provided JWT token is nil or invalid ")
}
return strings.Trim(tokenArray[1], " "), nil
}
// decode accepts a parsed token and error from parse operation.
func decode(token *jwt.Token, err error) (jwt.MapClaims, error) {
if err != nil {
......@@ -131,23 +102,6 @@ func GenerateTokenWithOptions(args ...Option) (string, error) {
// GenerateToken generates JWT token from Login object
func GenerateToken(loginID string, groups []string, clientIP string, metadata gjson.Result, expirationTime time.Duration) (string, error) {
// claims := jwtCustomClaim{
// UserID: loginID,
// Groups: groups,
// ClientIP: clientIP,
// Metadata: metadata.String(),
// StandardClaims: jwt.StandardClaims{
// ExpiresAt: time.Now().Add(expirationTime).Unix(),
// },
// }
// // Create token with claims
// token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
// // Generate encoded token and send it as response.
// t, err := token.SignedString([]byte(GlobalJWTKey))
// if errormdl.CheckErr(err) != nil {
// loggermdl.LogError(err)
// return t, errormdl.CheckErr(err)
// }
return GenerateTokenWithJWTKey(loginID, groups, clientIP, metadata, expirationTime, GlobalJWTKey)
}
......@@ -163,44 +117,16 @@ func GenerateTokenWithJWTKey(loginID string, groups []string, clientIP string, m
},
}
// // Create token with claims
// token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
// // Generate encoded token and send it as response.
// t, err := token.SignedString([]byte(JWTKey))
// if errormdl.CheckErr(err) != nil {
// loggermdl.LogError(err)
// return t, errormdl.CheckErr(err)
// }
return generate(claims, JWTKey)
}
//GeneratePricipleObjUsingToken GeneratePricipleObjUsingToken
func GeneratePricipleObjUsingToken(tokenReq string, jwtKey string) (jwt.MapClaims, error) {
tokenArray := strings.Split(tokenReq, "Bearer")
if len(tokenArray) <= 1 {
return nil, errormdl.Wrap("Provided JWT token is nil or invalid ")
}
tokenFromRequest := strings.Trim(tokenArray[1], " ")
// get data i.e.Claims from token
token, err := jwt.Parse(tokenFromRequest, func(token *jwt.Token) (interface{}, error) {
// Don't forget to validate the alg is what you expect:
_, ok := token.Method.(*jwt.SigningMethodHMAC)
if !ok {
return nil, fmt.Errorf("Unexpected signing method: %v", token.Header["alg"])
}
return []byte(jwtKey), nil
})
token, err := extract(tokenReq)
if err != nil {
loggermdl.LogError("Error while parsing JWT Token: ", err)
return nil, err
}
claims, ok := token.Claims.(jwt.MapClaims)
if !errormdl.CheckBool1(ok) {
loggermdl.LogError("Error while parsing claims to MapClaims")
return nil, errormdl.Wrap("Error while getting claims")
}
return claims, nil
return decode(jwt.Parse(token, keyFunc(jwtKey)))
}
......@@ -3,84 +3,22 @@
package jwtmdl
import (
"strings"
jwt "github.com/dgrijalva/jwt-go"
"github.com/valyala/fasthttp"
"corelab.mkcl.org/MKCLOS/coredevelopmentplatform/corepkgv2/errormdl"
)
// DecodeTokenWithJWTKey decode token
func DecodeTokenWithJWTKey(req *fasthttp.Request, jwtKey string) (jwt.MapClaims, error) {
tokenFromRequest := string(req.Header.Peek("Authorization"))
tokenArray := strings.Split(tokenFromRequest, "Bearer")
if len(tokenArray) <= 1 {
return nil, errormdl.Wrap("Provided JWT token is nil or invalid ")
tokenFromRequest, err := extract(string(req.Header.Peek("Authorization")))
if err != nil {
return nil, err
}
tokenFromRequest = strings.Trim(tokenArray[1], " ")
// // get data i.e.Claims from token
// token, err := jwt.Parse(tokenFromRequest, func(token *jwt.Token) (interface{}, error) {
// // Don't forget to validate the alg is what you expect:
// _, ok := token.Method.(*jwt.SigningMethodHMAC)
// if !ok {
// return nil, fmt.Errorf("Unexpected signing method: %v", token.Header["alg"])
// }
// return []byte(jwtKey), nil
// })
// if err != nil {
// loggermdl.LogError("Error while parsing JWT Token: ", err)
// return nil, err
// }
// claims, ok := token.Claims.(jwt.MapClaims)
// if !errormdl.CheckBool1(ok) {
// loggermdl.LogError("Error while parsing claims to MapClaims")
// return nil, errormdl.Wrap("Error while getting claims")
// }
// // validate user session from session id present in token
// if err := sessionmdl.ValidateSessionFromToken(claims); err != nil {
// loggermdl.LogError("session validation failed with err:", err)
// return nil, sessionmdl.ErrSessionValidationFailed
// }
// return claims, nil
return decode(jwt.Parse(tokenFromRequest, keyFunc(jwtKey)))
}
// DecodeToken decode token
func DecodeToken(req *fasthttp.Request) (jwt.MapClaims, error) {
// tokenFromRequest := string(req.Header.Peek("Authorization"))
// tokenArray := strings.Split(tokenFromRequest, "Bearer")
// if len(tokenArray) <= 1 {
// return nil, errormdl.Wrap("Provided JWT token is nil or invalid ")
// }
// tokenFromRequest = strings.Trim(tokenArray[1], " ")
// // get data i.e.Claims from token
// token, err := jwt.Parse(tokenFromRequest, func(token *jwt.Token) (interface{}, error) {
// // Don't forget to validate the alg is what you expect:
// _, ok := token.Method.(*jwt.SigningMethodHMAC)
// if !ok {
// return nil, fmt.Errorf("Unexpected signing method: %v", token.Header["alg"])
// }
// return []byte(GlobalJWTKey), nil
// })
// if err != nil {
// loggermdl.LogError("Error while parsing JWT Token: ", err)
// return nil, err
// }
// claims, ok := token.Claims.(jwt.MapClaims)
// if !errormdl.CheckBool1(ok) {
// loggermdl.LogError("Error while parsing claims to MapClaims")
// return nil, errormdl.Wrap("Error while getting claims")
// }
// return claims, nil
return DecodeTokenWithJWTKey(req, GlobalJWTKey)
}
......@@ -12,49 +12,10 @@ import (
// DecodeTokenWithJWTKey decode token
func DecodeTokenWithJWTKey(req *http.Request, jwtKey string) (jwt.MapClaims, error) {
// token, err := request.ParseFromRequest(req, request.OAuth2Extractor, func(token *jwt.Token) (interface{}, error) {
// b := ([]byte(jwtKey))
// return b, nil
// })
// if errormdl.CheckErr(err) != nil {
// loggermdl.LogError("Error while parsing JWT Token: ", errormdl.CheckErr(err))
// return nil, errormdl.CheckErr(err)
// }
// claims, ok := token.Claims.(jwt.MapClaims)
// if !errormdl.CheckBool1(ok) {
// loggermdl.LogError("Error while parsing claims to MapClaims")
// return nil, errormdl.Wrap("Error while getting claims")
// }
// // validate user session from session id present in token
// if err := sessionmdl.ValidateSessionFromToken(claims); err != nil {
// loggermdl.LogError("session validation failed with err:", err)
// return nil, sessionmdl.ErrSessionValidationFailed
// }
// return claims, nil
return decode(request.ParseFromRequest(req, request.OAuth2Extractor, keyFunc(jwtKey)))
}
// DecodeToken decode token
func DecodeToken(req *http.Request) (jwt.MapClaims, error) {
// token, err := request.ParseFromRequest(req, request.OAuth2Extractor, func(token *jwt.Token) (interface{}, error) {
// b := ([]byte(GlobalJWTKey))
// return b, nil
// })
// if errormdl.CheckErr(err) != nil {
// loggermdl.LogError("Error while parsing JWT Token: ", errormdl.CheckErr(err))
// return nil, errormdl.CheckErr(err)
// }
// claims, ok := token.Claims.(jwt.MapClaims)
// if !errormdl.CheckBool1(ok) {
// loggermdl.LogError("Error while parsing claims to MapClaims")
// return nil, errormdl.Wrap("Error while getting claims")
// }
// return claims, nil
return DecodeTokenWithJWTKey(req, GlobalJWTKey)
}
......@@ -18,6 +18,7 @@ type Options struct {
type Option func(*Options)
// WithKey uses provided jwt key for token generation
func WithKey(k string) Option {
return func(args *Options) {
args.Key = k
......@@ -30,6 +31,7 @@ func WithUserID(uid string) Option {
}
}
// WithSession enables session validation on jwt decode. Required fields must not be empty.
func WithSession(sid, sessionFor string) Option {
return func(args *Options) {
args.Session = sessionmdl.Session{
......@@ -45,6 +47,7 @@ func WithClientIP(ip string) Option {
}
}
// WithMetaData embeds provided data in token. It is available againt `metadata` key. **It must be a valid json**
func WithMetaData(data string) Option {
return func(args *Options) {
args.Metadata = data
......@@ -57,6 +60,7 @@ func WithGroups(gs []string) Option {
}
}
// WithExpiration adds provided expiration to jwt token. Use `0` or ignore this option to generate a token witout expiry.
func WithExpiration(e time.Duration) Option {
return func(args *Options) {
if e == 0 {
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment