diff options
| author | Chris Lu <chris.lu@gmail.com> | 2016-06-02 18:09:14 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2016-06-02 18:09:14 -0700 |
| commit | 5ce6bbf07672bf3f3c8d26cd2ce0e3e853a47c44 (patch) | |
| tree | 2e4dd2ad0a618ab2b7cdebcdb9c503526c31e2e8 /go/security/jwt.go | |
| parent | caeffa3998adc060fa66c4cd77af971ff2d26c57 (diff) | |
| download | seaweedfs-5ce6bbf07672bf3f3c8d26cd2ce0e3e853a47c44.tar.xz seaweedfs-5ce6bbf07672bf3f3c8d26cd2ce0e3e853a47c44.zip | |
directory structure change to work with glide
glide has its own requirements. My previous workaround caused me some
code checkin errors. Need to fix this.
Diffstat (limited to 'go/security/jwt.go')
| -rw-r--r-- | go/security/jwt.go | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/go/security/jwt.go b/go/security/jwt.go deleted file mode 100644 index a29a94b3c..000000000 --- a/go/security/jwt.go +++ /dev/null @@ -1,72 +0,0 @@ -package security - -import ( - "net/http" - "strings" - - "time" - - "github.com/chrislusf/seaweedfs/go/glog" - jwt "github.com/dgrijalva/jwt-go" -) - -type EncodedJwt string -type Secret string - -func GenJwt(secret Secret, fileId string) EncodedJwt { - if secret == "" { - return "" - } - - t := jwt.New(jwt.GetSigningMethod("HS256")) - t.Claims["exp"] = time.Now().Unix() + 10 - t.Claims["sub"] = fileId - encoded, e := t.SignedString(secret) - if e != nil { - glog.V(0).Infof("Failed to sign claims: %v", t.Claims) - return "" - } - return EncodedJwt(encoded) -} - -func GetJwt(r *http.Request) EncodedJwt { - - // Get token from query params - tokenStr := r.URL.Query().Get("jwt") - - // Get token from authorization header - if tokenStr == "" { - bearer := r.Header.Get("Authorization") - if len(bearer) > 7 && strings.ToUpper(bearer[0:6]) == "BEARER" { - tokenStr = bearer[7:] - } - } - - // Get token from cookie - if tokenStr == "" { - cookie, err := r.Cookie("jwt") - if err == nil { - tokenStr = cookie.Value - } - } - - return EncodedJwt(tokenStr) -} - -func EncodeJwt(secret Secret, claims map[string]interface{}) (EncodedJwt, error) { - if secret == "" { - return "", nil - } - - t := jwt.New(jwt.GetSigningMethod("HS256")) - t.Claims = claims - encoded, e := t.SignedString(secret) - return EncodedJwt(encoded), e -} - -func DecodeJwt(secret Secret, tokenString EncodedJwt) (token *jwt.Token, err error) { - // check exp, nbf - return jwt.Parse(string(tokenString), func(token *jwt.Token) (interface{}, error) { - return secret, nil - }) -} |
